pockestrap

Programmer's memo

Ruby 2.7では require 'stringio' が必要になりそう

github.com

今まではrubygemsrequire 'stringio'をしていたけど、高速化のためにlazy loadingするようにして起動時に読み込まないようになった模様。 結構な数のプログラムが壊れそう(実際壊れた)。1

$ ruby -v -e 'p require "stringio"' 
ruby 2.7.0dev (2019-07-31T01:22:47Z master e315f3a134) [x86_64-linux]
true

$ ruby -v -e 'p require "stringio"' 
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
false

該当のruby/rubyのコミットはこれ https://github.com/ruby/ruby/commit/6c5170634af21ff90c2d80604ae5c2808a597a9e

個人的には移行パスとして警告が欲しいような気もする…


  1. 2019-07-31 14:23追記。実際にcuculus.vimは壊れた( https://github.com/pocke/cuculus.vim/commit/055d32a149a5981c5bff634ac92a1927e4e89d5a )のだけど、他のgemは今のところ壊れているのを観測していなくて、意外とrequireされているものな気がしてきた。