ruby-trunk-changes 2020-01-10

今日は Random の内部状態がメモリにコピーされた後をクリアして残らないようにする変更や URI.decode/URI.encode を使った時の警告メッセージの修正などがありました。

[661e07c97e] Nobuyoshi Nakada 2020-01-09 10:08:54 UTC

マクロ rb_define_method_if_constexpr() の定義を include/ruby/ruby.h から include/ruby/intern.h に移動して HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P が定義されてる時だけ定義するようにしています。

[4c5eac7323] Nobuyoshi Nakada 2020-01-09 12:39:12 UTC

random.c の関数 init_seed() も 23fbee0311d34da4f623a828bf0c015a90d8edc9 と同様にまぎらわしいので init_hash_salt() に改名しています。

[c6b26f5ccf] Yusuke Endoh 2020-01-09 14:52:01 UTC

io.c と ruby.c に #include "internal/variable.h" を追加しています。 emscripten で WASM にビルドするのに必要だったとのこと。

[d3b28ebc7a] Jeremy Evans 2020-01-09 21:09:06 UTC

URI.escape と URI.unescape の deprecated 警告メッセージで alias 経由で呼ばれた時にメッセージ内のメソッド名も変更するため __callee__ を参照するようにしています。 URI.encode/URI.decode を呼んだ時のため。 [ruby-dev:50907] [Bug #16469]

[5bdc6a0123] git 2020-01-09 21:11:12 UTC

version.h の日付更新

[54e31f4a5f] Nobuyoshi Nakada 2020-01-10 00:09:39 UTC

io.c と ruby.c のヘッダ追加による依存関係追加。

[499de0a0f6] Nobuyoshi Nakada 2020-01-08 14:21:42 UTC

random.c の初期化関数 Init_RandomSeedCore() で hash_salt に初期値を詰めるのに init_hash_salt() で MT(メルセンヌツイスター)を使う前に fill_random_bytes() でもっと質の良い? 乱数ソースを試してみてこれが失敗した時だけ init_hash_salt() を使うようにしています。

[0a67c21401] Nobuyoshi Nakada 2020-01-08 15:27:29 UTC

Random の実装で seed のデータを参照する都度その変数などをクリアしてメモリ上に情報が残らないようにしています。なるほどー。