ruby-trunk-changes 2019-05-24

今日は Time#ceil メソッドの追加や Unicode のバージョンを 12.1.0 の正式版にする変更(内容は同じ)などがありました。

[f5415a95ce] manga_osyo 2019-05-23 22:30:19 +0900

r67632 で追加された Time#floor があるので Time#ceil も新規追加しています。 NEWS ファイルにも追記が必要ですね。 https://github.com/ruby/ruby/pull/2133

[0b4d51b055] git 2019-05-23 22:39:54 +0900

f5415a95ce1d393a3fd1d7f657ba85d85171356a のインデントのタブを空白に展開。

[ccb1652929] Nobuyoshi Nakada 2019-05-23 22:47:55 +0900

と思ったら Time#floor も NEWS に追記されてなかったので f5415a95ce1d393a3fd1d7f657ba85d85171356a の Time#ceil と一緒に NEWS ファイルに追記しています。

[e72769ef81] Nobuyoshi Nakada 2019-05-23 23:24:22 +0900

Enumerable#filter_map の追加についても NEWS ファイルに追記しています。

[c04ef141d2] Yusuke Endoh 2019-05-23 23:35:26 +0900

Enumearble#tally の rdoc 用コメントのサンプルが整数の Range を使った例だったので結果の解釈が難しかったので文字列の配列にしてわかりやすくしています。

[4fe908c164] Takashi Kokubun 2019-05-23 07:53:42 -0700

GC.compact のオブジェクト移動中は MJIT を一時停止するようにしています。GC.compact で不正な ISeq が MJIT にみえてしまうんじゃないかという疑惑があってその対策のようです。

[187ef00a41] Takashi Kokubun 2019-05-23 08:41:19 -0700

Wercker で エラー時に MJIT の生成したソースファイルの残っているものを出力してたのですが、出力が長すぎると Wercker は全て表示してくれないそうなので、ruby/mjit-debug という専用のリポジトリを作って、残ってるファイルをそこへ push するようにしています。力技だ。

[dde8ceaf70] git 2019-05-24 00:42:54 +0900

version.h の日付更新。

[1ee1e8fccd] Takashi Kokubun 2019-05-23 09:03:34 -0700

GC.compact のテストで一部 MJIT 有効化時に skip していたのを、再度実行するように戻しています。

[498113d5d3] Yusuke Endoh 2019-05-24 11:20:12 +0900

環境変数 RUBY_DEBUG に gc_stress をつけて起動する時のテストで assert_in_out_err のタイムアウトを 60秒に増やしています。

[50e993d4e3] Yusuke Endoh 2019-05-24 12:17:05 +0900

rubyspec の Process.clock_getres のテストを FreeBSD に加えて AIX でも skip するようにしています。

[7f2f56b2f5] Nobuyoshi Nakada 2019-05-24 12:22:17 +0900

common.mk で make up 時の git pull のオプションを指定する変数 GITPULLOPTIONS に --rebase --autostash をセットしておくようにしています。 --autostash っていうのがるのか。

[dfc21a0467] Nobuyoshi Nakada 2019-05-24 12:23:26 +0900

.gitignore に bin/ と lib/ruby の配下の生成ファイルを追加しています。 [ruby-core:92808] [Bug #15870]

[35caedc828] Nobuyoshi Nakada 2019-05-24 14:11:00 +0900

7f2f56b2f51269f42f822ecf346375b040267595 の続き。 GITPULLOPTIONS に指定してた --autostash は Git 2.6 からのオプションなので削っています。2.6 って結構昔のような気はしますけど。 [ruby-core:92809] [Bug #15871]

[e713c2bde8] Martin Dürst 2019-05-24 14:12:06 +0900

コミットログによると tool/downloader.rb の変更を意図してたみたいなんですけど、lib/ の配下のファイルが追加されていてなんだかコミットミスっぽいです。

[14778125b1] Nobuyoshi Nakada 2019-05-24 14:24:38 +0900

dfc21a0467d39af00666aec5098530529924cf48 で .gitignore に追加した lib/ruby 配下のファイルパターンをディレクトリ以外も無視させるようにしています。シンボリックリンクがマッチしなくて誤ってコミットされてしまったみたいですね。

[491d2b8063] Nobuyoshi Nakada 2019-05-24 14:25:46 +0900

e713c2bde8117f3aaf39d827d3fc504cd5866976 はやはりコミットミスだったようで削除しています。

[2541578096] Kazuhiro NISHIYAMA 2019-05-24 14:32:29 +0900

.travis.yml でテスト後に make leaked-globals を実行して意図しないシンボル公開をチェックさせるようにしています。

[54d5b599e8] Kazuhiro NISHIYAMA 2019-05-24 14:32:30 +0900

878a06efecbd2d71bf1a852a6367fbcd3e8edf93 で追記したコメントの typo 修正。

[1a4080cb0a] Nobuyoshi Nakada 2019-05-24 15:16:19 +0900

Time#round, Time#ceil, Time#floor の実装から共通部分を ndigits_denominator() という関数に切り出して共有しています。

[45ad375acc] Nobuyoshi Nakada 2019-05-24 16:10:10 +0900

Time#round, Time#floor, Time#ceil の rdoc 用コメントのサンプルで Rational の引数を 1.1r のようなリテラル表記を使うようにしています。

[2893550452] Nobuyoshi Nakada 2019-05-24 16:12:17 +0900

?a のような1文字文字列リテラルに不正な Unicode エンコーディングを渡した時のエラーがわかりやすい例外になるようにしています。結果として parser_tokadd_utf8() という関数は戻り値を判定する必要がある箇所がなくなったので戻り値を void に変更しています。

[10927b5925] Koichi Sasada 2019-05-24 17:08:15 +0900

gc.c の rb_raw_obj_info() でデバッグ出力で T_IMEMO 型のオブジェクト表示する時の表示を少し修正しています。

[712c027524] Koichi Sasada 2019-05-24 17:35:22 +0900

is_pointer_to_heap() で tomb ページ内へのポインタはオブジェクトではないと判定するようにしています。少し正確に生きてるオブジェクトか判定できるようになるので GC が効率的になるかも。と思ったけどデバッグ用にしか使われてないかも。

[b0a4d81fc3] Koichi Sasada 2019-05-24 17:52:58 +0900

GC.verify_internal_consistency というメソッドで check_rvalue_consistency() という関数を呼んでオブジェクトのチェックを行なえるようになってましたが、この関数はビルド時に RGENGC_CHECK_MODE が 1以上に指定してビルドされてないとなにもしない関数なので、普通にビルドしてもチェックが行なわれるようにしています。

[c06f9e1d24] Martin Dürst 2019-05-24 18:22:36 +0900

Unicode 12.1.0 が正式にリリースされたということで beta 版でなく正式版をダウンロードするようにしています。

[6ae9d5c85f] Kazuhiro NISHIYAMA 2019-05-24 18:59:58 +0900

712c027524e3a03500b3098d950fc2f0608ce897 を revert しています。ふむ、だめだったのかなこれ。

[a4da223c9a] git 2019-05-24 19:00:50 +0900

6ae9d5c85f3a2a7002b8fc0525e3aca645ec1709 のインデントのタブを空白に展開。

[706c816ad2] Kazuhiro NISHIYAMA 2019-05-24 19:03:29 +0900

c06f9e1d24e0e164506c6b5946a02814319485cc の再修正。正規表現内のドット(.)は任意の文字にマッチするメタキャラクタなのでエスケープするようにしています。