ruby-trunk-changes 2021-03-24

今日は irb と reline の補完まわりの機能追加や a.out 形式のサポートの削除などがありました。

[417c648f08] Aaron Patterson 2021-03-23 19:02:27 UTC

インスタンス変数の名前からインデックスを管理するためのテーブルの解放時にメモリリークしていたのを修正しています。使い捨ての Class/Module でなおかつ一定数以上のインスタンス変数を使うものを大量に使うとメモリが増えていってしまうというものです。

[061edf6b05] git 2021-03-23 20:10:41 UTC

version.h の日付更新

[850448abd5] Peter Zhu 2021-03-23 15:35:44 UTC

拡張ライブラリ etc のテストでスキップするために Etc.passwd を呼び出してるので fd leak を防ぐため Etc.endpwent を呼んでおくようにしています。これが必要だというの知らなかった……。

[c9d0053e67] Nobuyoshi Nakada 2021-03-12 11:01:03 UTC

USE_DLN_A_OUT というマクロを真にしてビルドした時のコンパイルエラーを修正。 a.out という古い実行形式をサポートする時のコードが追随されなくなってたみたいです。

[0259ee6008] aycabta 2021-03-24 05:33:53 UTC

irbIRB::RubyLex#ripper_lex_without_warning をクラスメソッド IRB::RubyLex.ripper_lex_without_warning に変更しています。

[0927756e58] aycabta 2021-03-24 05:55:05 UTC

irb の completion で require の引数を $LOAD_PATH を使って require 可能なファイル名を取得して補完できるようにしているみたいです。便利そう! だけどちょっと重そう。Dir.glob の時点で actual_target を prefix として加えるのはだめなんだろうか?

[a5b6baae97] Kazuhiro NISHIYAMA 2021-03-24 06:26:49 UTC

bundler のテストのユーティリティに Spec::Path.xdg_config_home というメソッドを追加してテスト前に環境変数 XDG_CONFIG_HOME をセットしておくようにしています。

[b764c8d3c0] aycabta 2021-03-22 15:49:58 UTC

標準添付ライブラリ reline に Reline.ungetc メソッドを追加しています。 Reline::IOGate に委譲しています。

[4b33d860e8] aycabta 2021-03-22 15:56:32 UTC

標準添付ライブラリ reline の Reline::LineEditor#delete_text で複数行編集時に全体でなく現在の行だけ削除されるようにしています。

[758f2b35f9] aycabta 2021-03-23 12:43:39 UTC

標準添付ライブラリ reline に補完用の Proc オブジェクトを登録する Reline.completion_proc に 3つのブロックパラメーターを受け取るものをサポートして preposing と postposing という文字列(補完対象のトークンの前後の文字列?)も渡せるようにしています。また複数行編集の時に preposing と postposing に前後の行のバッファも加えるようにしています。どう使うのかな。

[89caf51d93] aycabta 2021-03-24 05:25:06 UTC

標準添付ライブラリ reline の Reline::LineEditor#retrieve_completion_block で Reline.completer_word_break_characters が空文字列にセットされてるとエラーになっていたのを修正しています。

[2dcbc6ef96] Nobuyoshi Nakada 2021-03-24 07:10:27 UTC

0927756e58c7d68517a1468f2327ce50989ff3f2irb の require_relative の引数の completion のテストでビルドディレクトリがソースディレクトリであることが前提になっていたので一時的に Dir.chdir で移動して実行するようにしています。

[1f08b0d18d] Nobuyoshi Nakada 2021-03-24 11:13:55 UTC

configure の --with-dln-a-out オプションを指定するとエラーになるようにして a.out 形式サポートのためのコードを削除しています。