ruby-trunk-changes r63987 - r63994

今日は Time.localtime の高速化や jemalloc などを利用した時のビルドエラーの修正などがありました。

hsbt: r63987 2018-07-17 21:21:29 +0900

標準添付ライブラリ sync を default gem 化しています。

k0kubun: r63988 2018-07-18 00:09:41 +0900

MJIT で実行時のコンパイルをする時に命令のオペランドVM スタックに乗せないようにする最適化? けど後ほど revert されています。

svn: r63989 2018-07-18 00:09:42 +0900

version.h の日付更新。

k0kubun: r63990 2018-07-18 00:15:31 +0900

r63988 で冗長になってた preprocessor の分岐があったので削っています。

k0kubun: r63991 2018-07-18 01:20:15 +0900

r63988 および r63990 を revert しています。 CI が失敗したとのこと。

tenderlove: r63992 2018-07-18 07:27:52 +0900

gc.c で RUBY_ALTERNATIVE_MALLOC_HEADER というマクロが定義されていると malloc.h のかわりにこれを #include するようにしています。 jemalloc などを利用する時に malloc.h を #include してると conflict がおきてコンパイルエラーになることがあるようです。

normal: r63993 2018-07-18 17:16:18 +0900

拡張ライブラリ zlib の構造体 struct gzfile のメンバー cbuf を削除して、これを利用している gzfile_getc() のローカル変数として文字列オブジェクト(つまり VALUE 型の)の cbuf を定義してバッファとして使うようにしています。

nobu: r63994 2018-07-18 19:30:41 +0900

time.c の rb_localtime_r() で tzset(3) の呼び出しを環境変数 TZ が更新された時だけ呼ぶようにしています。このために hash.c で ENV の更新時の特別扱いに追加して TZ の更新時にフラグを更新するようにしています。ちなみに PATH にも同様の特別扱いがあるんですね。