Issue #16427 has been updated by vo.x (Vit Ondruch).

Assignee set to nobu (Nobuyoshi Nakada)

mame (Yusuke Endoh) wrote:
> But it's just like saying that "ruby cannot start when I remove lib/rubygems.rb".

Speaking of which is problematic by itself. But the difference is that 99% of Ruby applications needs RubyGems for their runtime, while 99% of Ruby applications does not need did_you_mean. Audience of this site might be biased, because they are Ruby developers, who use IRB, Rake, generate new Rails apps and runs other Ruby applications during development and they find the output of did_you_mean helpful. But in production environment

1) 99 % of applications run in non-interactive mode.
2) These applications are presumably well tested and did_you_mean provides no service at all.

But all these applications have to pay for longer startup time, higher memory and disk consumption. All these are not negligible in the age of cloud. I am pretty sure there is also performance hit during exception handling.

Also, you perceive Ruby as monolith distributed in via tarball where everything is available. On Fedora (and RHEL subsequently), rubygem-did_you_mean was always installed by default with Ruby, but there was option to easily exclude it from installation for all the reasons mentioned above. SInce, this change, it won't be easily possible. I am really considering reverting the change for Fedora.


----------------------------------------
Bug #16427: Revert did_you_mean promotion to default gem.
https://bugs.ruby-lang.org/issues/16427#change-83211

* Author: vo.x (Vit Ondruch)
* Status: Rejected
* Priority: Normal
* Assignee: nobu (Nobuyoshi Nakada)
* Target version: 
* ruby -v: ruby 2.7.0dev (2019-12-10 master af11efd377) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
One of the points made in #16363 was:

> so we can always reliably require it whenever we want to.

That is not true anymore, because did_you_mean is always required when RubyGems are enabled since [1]:

~~~
$ ruby -e 'puts $LOADED_FEATURES' | grep did
~~~

Removing all traces of did_you_mean from my system only results in:

~~~
$ ruby -e 'puts $LOADED_FEATURES' | grep did
Traceback (most recent call last):
	2: from <internal:gem_prelude>:2:in `<internal:gem_prelude>'
	1: from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- did_you_mean (LoadError)
~~~

just confirming what I said above.

IMO, did_you_mean gem might be useful for development, but should not be required for runtime at all. On one hand there are taken steps to improve Ruby speed, but this is going contrary to that goal.

[1]: https://github.com/ruby/ruby/commit/0fef526606c72e7d2a3c83aebd9204da34016d96



-- 
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>