2016/05/07(土) [n年前の日記]
#1 [ruby] Rubyのirbが時々固まる問題
Windows7 x64 (or Windows10 x64) + Ruby ruby 2.2.4 p230 mingw32版で、irb や pry を使うと、固まるというかフリーズする件。readline がダメダメだからそうなるのだ、てな話を今頃知った。
_Windows7 64bitにおけるirbを速くする。 - DUMMY remonbonbon's weblog
_irbの入力が遅いときはreadlineをオフにしてみては? - Survive in Net.
_Windows7 64bitでirb.batが異常に重い時 - komorebikoboshiのブログ
_RailsInstaller付属のRubyのirbが妙に重い件
_Ruby 1.9以降のirbでBackspaceで表示が崩れる - 色々日記(ざ・めも)
readline を使わないようにすることもできるらしい。
このあたり、どうにかならんものか。あちらを立てれば、こちらが立たず。
_Windows7 64bitにおけるirbを速くする。 - DUMMY remonbonbon's weblog
_irbの入力が遅いときはreadlineをオフにしてみては? - Survive in Net.
_Windows7 64bitでirb.batが異常に重い時 - komorebikoboshiのブログ
_RailsInstaller付属のRubyのirbが妙に重い件
_Ruby 1.9以降のirbでBackspaceで表示が崩れる - 色々日記(ざ・めも)
readline を使わないようにすることもできるらしい。
- irb --noreadline で起動する。
- もしくは、~/.irbrc に IRB.conf[:USE_READLINE] = false を追加。
このあたり、どうにかならんものか。あちらを立てれば、こちらが立たず。
◎ readline.dllをインストールしてみたらどうなるだろう。 :
「irbを使う時は readline.dll をインストールせよ」みたいな話を見かけた。Ruby 1.9時代の話だから、現状でも有効な話なのか分からんけど。
_readlineモジュール - 追加ライブラリ - Rubyインストール
_WindowsにRuby1.9.1をインストールする − @IT
試しに、 _Index of /win32 から、readline-4.3-2-mingw32.zip をDLして解凍、binフォルダ内の readline.dll を、Rubyインストールフォルダ\bin にコピーしてみた。
む。もしかして、コレだと固まらない? 単に気のせい?
と思ったけど、pry は固まるな…。さらに、日本語入力もおかしく…。いや、これは readline.dll を入れなくても最初からおかしいみたい。
pry も readline を使っているのだろうと想像してるけど、実際はどうなんだろう。
_readlineモジュール - 追加ライブラリ - Rubyインストール
_WindowsにRuby1.9.1をインストールする − @IT
試しに、 _Index of /win32 から、readline-4.3-2-mingw32.zip をDLして解凍、binフォルダ内の readline.dll を、Rubyインストールフォルダ\bin にコピーしてみた。
む。もしかして、コレだと固まらない? 単に気のせい?
と思ったけど、pry は固まるな…。さらに、日本語入力もおかしく…。いや、これは readline.dll を入れなくても最初からおかしいみたい。
pry も readline を使っているのだろうと想像してるけど、実際はどうなんだろう。
◎ rb-readlineなるライブラリがあるらしい。 :
readline.dll はC言語で書かれてるらしいけど、それをRubyだけで書き直した rb-readline なるライブラリだかモジュールだかがあるようで。Rubyで書かれてるから処理は遅いだろうけど、Rubyさえ動く環境なら readline が動くはず、てなあたりがメリットなのかなと。
_Big Sky :: rb-readlineを試験するスクリプト書いた。
gem install rb-readline でインストールしてみた。readline.rb というファイルがインストールされるので、おそらくコレが呼び出されるのではないか…。たぶん。
使ってみたら、irb が固まりにくくなった、ような気がしたけど気のせいかもしれない。本当に使われてるのかちょっと自信が無い。キー入力した時の反応が遅くなった感じがするので、おそらく使われてそうな気もするのだけど。
ただ、日本語を入力すると恐ろしいことになる…。
rb-readline の作者さんは「多言語対応なんか知るかボケ」ってスタイルらしいので、rb-readline を導入したら、その後は英数字オンリーで使わないといかんらしいなと。
_Big Sky :: rb-readlineを試験するスクリプト書いた。
gem install rb-readline でインストールしてみた。readline.rb というファイルがインストールされるので、おそらくコレが呼び出されるのではないか…。たぶん。
使ってみたら、irb が固まりにくくなった、ような気がしたけど気のせいかもしれない。本当に使われてるのかちょっと自信が無い。キー入力した時の反応が遅くなった感じがするので、おそらく使われてそうな気もするのだけど。
ただ、日本語を入力すると恐ろしいことになる…。
rb-readline の作者さんは「多言語対応なんか知るかボケ」ってスタイルらしいので、rb-readline を導入したら、その後は英数字オンリーで使わないといかんらしいなと。
◎ Linux上で試してみた。 :
VMware Player + Ubuntu Linux 上で irb を動かしてみた。
固まることもないし、補完も利くし、日本語入力もOK。…チッ。Rubyはこれだから。なんちてぽっくん。
やはりRubyは、基本的には*NIX文化圏の道具なんだなと再認識。もっとも、GIMP や Inkscape もそうだけど、*NIX文化圏のアレコレをWindows上でそこそこ動くようにしてくれているだけでも、かなり御の字なのですが。
そういえば、Windows10上でbashが動くという話があったっけ。その場合、irb というか readline は、どんな結果になるのだろう。
固まることもないし、補完も利くし、日本語入力もOK。…チッ。Rubyはこれだから。なんちてぽっくん。
やはりRubyは、基本的には*NIX文化圏の道具なんだなと再認識。もっとも、GIMP や Inkscape もそうだけど、*NIX文化圏のアレコレをWindows上でそこそこ動くようにしてくれているだけでも、かなり御の字なのですが。
そういえば、Windows10上でbashが動くという話があったっけ。その場合、irb というか readline は、どんな結果になるのだろう。
*1: 履歴は、数文字打ってから上キーを押すと出てくるようではある。
[ ツッコむ ]
以上です。