Issue #14123 has been updated by k0kubun (Takashi Kokubun).


> also breaks when running ruby chrooted

Regardless of proposed implementation, `require 'pp'` wouldn't work if chrooted. I couldn't understand why it's problematic.

> Regarding visibility, #pp should be a module_function of Kernel like #p.

It's already module_function, isn't it?
 https://github.com/ruby/ruby/blob/246c986eac342ae7bbf05f3be97c92fc71f9d21d/lib/pp.rb#L26

Thus following one would be sufficient.

~~~ ruby
module Kernel
  def pp(*objs)
    require 'pp'
    Kernel.pp(*objs)
  end
end
~~~


----------------------------------------
Feature #14123: Kernel#pp by default
https://bugs.ruby-lang.org/issues/14123#change-67884

* Author: mame (Yusuke Endoh)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: 2.5
----------------------------------------
Matz, may I commit this?  I really want this.

```
diff --git a/prelude.rb b/prelude.rb
index 7b98e28285..87f49ac9fb 100644
--- a/prelude.rb
+++ b/prelude.rb
@@ -141,3 +141,11 @@ def irb
     irb
   end
 end
+
+module Kernel
+  def pp(*objs)
+    undef :pp
+    require 'pp'
+    pp(*objs)
+  end
+end
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>