ruby-trunk-changes 2020-01-04

今日は Object#clone の freeze キーワード引数をそこから呼ばれる initialize_copy メソッドにも渡すようにする変更などがありました。

[0eeed5bcc5] Jeremy Evans 2019-07-30 23:15:19 UTC

r61483 (3802fb92ff8c83eed3e867db20f72c53932f542d) というだいぶ前の変更で eval 内で __FILE__ と __LINE__ が使われたら警告を発するようにしていたのをやめています。 [ruby-core:35027] [Bug #4352]

[04eb7c7e46] Jeremy Evans 2019-08-26 04:11:46 UTC

Object#clone のキーワード引数 freeze (r55786、320ae01c5fb091eab0926c186f304a9caeda1ace で追加された引数でこれに false を指定すると元のオブジェクトが freeze されていても freeze されてない状態のコピーを作る) が新規作成されたオブジェクトに呼ばれる initialize_copy のキーワード引数 freeze にも渡されるようにしています。ライブラリで initialize_copy を再定義して状態のコピーを自分で実装している時に freeze の指定を考慮できるようにしています。ただし initialize_copy が freeze キーワード引数がないようなメソッド定義がされているオブジェクトに対して clone(freeze: false) を指定すると無視するのではなく ArgumentError 例外が発生するようにしています。 [ruby-core:84581] [Bug #14266]

[b594005c72] git 2020-01-04 04:13:37 UTC

version.h の日付更新

ruby-trunk-changes 2020-01-03

今日は 3.0 に向けて通常引数の最後の Hash (オプション引数)とキーワード引数の暗黙の変換をやめる変更が入りました。

[bba4916122] Kazuhiro NISHIYAMA 2020-01-02 15:02:28 UTC

RubyVM::AbstractSyntaxTree::Node#type の rdoc 用コメントのサンプルの結果の表示が実際のものと合ってなかったのを修正しています。

[db22b36862] git 2020-01-02 15:03:31 UTC

version.h の日付更新

[b884eb59eb] Kazuhiro NISHIYAMA 2020-01-02 16:26:32 UTC

bba491612283e5e2b3a05f578350f84ce02274bc の続きで RubyVM::AbstractSyntaxTree::Node#type の rdoc 用コメントのサンプルにコードを少し追加しています。

[27fae1d4ad] Koichi Sasada 2020-01-02 17:00:58 UTC

configure 時に $CC で指定されているコンパイラが ccache のものだったら MJIT 用の MJIT_CC にはこれを使わせないようにしています。

[6f5ee1f092] Koichi Sasada 2020-01-02 19:39:34 UTC

27fae1d4adfef26d30d43f2d0d6653e99aaaba3d の追加修正。RUBY_DEBUG=ci が指定されていた時だけ MJIT_CC で ccache を使わせないように調整するようにしています。これは一部の CI で様子をみるためかな?

[9f460e017b] Koichi Sasada 2020-01-02 19:46:51 UTC

internal/debug.h 内の prototype 宣言やマクロ定義を internal.h に移動しています。

[8ba261c754] Lourens Naudé 2020-01-02 22:26:20 UTC

make benchmark で使う benchmark_driver の checkout に使うタグを v0.15.7 に更新しています。 https://github.com/ruby/ruby/pull/2811

[beae6cbf0f] Jeremy Evans 2019-10-04 19:51:57 UTC

2.7 で移行のために警告を出しつつ残していた通常引数の最後の Hash と keyword splat 引数の相互の暗黙の変換をやめています。もうやめるのか〜。2.7 の keyword argument 関連の不具合があった時の対応が大変そうだけど、まあやめるのは既定路線なので早いほうが良いといえば良い。

[ff96565686] Jeremy Evans 2019-10-04 22:41:13 UTC

キーワード引数の仕様変更に関連してテストを書き換えています。

[e014e6bf66] Jeremy Evans 2019-10-06 16:26:58 UTC

rubyspec でも 2.8 以降でキーワード引数の挙動変更に対応しています。

[170f4dbb9b] Kazuhiro NISHIYAMA 2020-01-03 05:53:25 UTC

vm_args.c の args_stored_kw_argv_to_hash() という static 関数がどこでも使われてなかったので削除しています。また class.c の rb_scan_args_parse() でも未使用変数を削除して警告を抑制しています。

ruby-trunk-changes 2020-01-02

今日は Module#ruby2_keywords に引数が渡されなかった時の挙動の変更などがありました。

[076f24c227] Kenta Murata 2020-01-01 13:55:12 UTC

Bignum の GMP を使った実装 bary_mul_gmp() と bary_divmod_gmp()、str2big_gmp()、bary_powm_gmp() などから mzp_t 型と BDIGIT 型の相互変換の処理を bdigits_to_mpz()、bdigits_from_mpz() として切り出すリファクタリングhttps://github.com/ruby/ruby/pull/2805

[34bc15c86b] Nobuyoshi Nakada 2020-01-02 01:06:16 UTC

Module#ruby2_keywords に引数が1つも渡されてなかった時に ArgumentError を発生させるようにしています。

[71ae2acee1] git 2020-01-02 01:55:58 UTC

version.h の日付更新

[749915e940] Kazuhiro NISHIYAMA 2020-01-02 03:12:05 UTC

warning.rb の frozen-string-literal magic comment が typo してたので修正。

ruby-trunk-changes 2020-01-01

今日は Set#& の最適化や MinGW 向け GitHub Actions の導入後の調整などの他、rubyリポジトリのブランチから trunk を消したのに対応する変更などがありました。

[4ce28b58cb] Oleg Zubchenko 2018-11-03 12:27:10 UTC

標準添付ライブラリ set の Set#& で引数も Set の時にサイズの大きさを比較して小さいほうを each でイテレートするようにちょっとした最適化パスを追加しています。

[e082f41611] Kenta Murata 2019-12-31 13:48:23 UTC

T_BIGNUM のオブジェクトで struct RVALUE 内に値を埋め込んでいる時の flag チェックを BIGNUM_EMBED_P() という inline 関数を定義してこれを使うようにしています。 https://github.com/ruby/ruby/pull/2802

[337ba56aff] Yusuke Endoh 2019-12-29 00:01:00 UTC

標準添付ライブラリ reline の Reline::ANSI.get_screen_size で IO#winsize が正常な値を返さなかったら環境変数 LINES と COLUMNS を参照する実装に fallback するようにしています。またそれもだめだったら [24, 80] というのをデフォルトの値として返すようにしています。

[a118bb805f] Ben 2019-12-27 18:17:02 UTC

test/irb/test_ruby_lex.rb を追加して irb に含まれている RubyLex のテストを追加しています。

[9deb942715] aycabta 2019-12-31 14:31:51 UTC

a118bb805f022a915a4b075ddd9dd49c04e68591 で追加された test/irb/test_ruby_lex.rb に require "openstruct" を追加しています。 ostruct じゃなかったっけ? と思いましたが後で修正されてました。

[1a1862236d] Kazuhiro NISHIYAMA 2019-12-31 15:02:01 UTC

README.md および README.ja.md の GitHub Actions のバッジに MinGW のぶんを追加。ついでに記法をちょっと変更しています。

[287bfb69d2] git 2019-12-31 15:02:24 UTC

version.h の日付更新

[66e6055c11] aycabta 2019-12-31 16:37:38 UTC

というわけで 9deb9427154587549661bd8f51cbf382c1658111 で追加した require "openstruct" を require "ostruct" に修正しています。

[049292e302] aycabta 2019-12-31 17:04:41 UTC

さらに a118bb805f022a915a4b075ddd9dd49c04e68591 で追加された test/irb/test_ruby_lex.rb に require "irb/ruby-lex" も漏れてたので追加しています。

[139f0d90d9] Takashi Kokubun 2019-12-31 17:34:29 UTC

139f0d90d98441ac54c6385acaf6d39eb61de63e で GitHub Actions の MinGW ビルドでチェックアウト処理を独自のコマンドに書き変えたのを pull request 向けのビルド時には公式のアクションを利用するようにしています。コメントによると pull request のブランチを取得するために環境変数を伝播させるのが難しかったためとのこと。 https://github.com/ruby/ruby/pull/2804

[860753eabb] MSP-Greg 2019-12-31 17:35:43 UTC

MinGW 向け GitHub Actions の make test-all の実行時のオプションから一部テストを除外してたものを消しています。 https://github.com/ruby/ruby/pull/2803

[52c228604b] Takashi Kokubun 2019-12-31 17:37:03 UTC

.github/workflows/mingw.yml のリポジトリのチェックアウトに独自にコマンドを直書きしているところのコメントを修正。

[74cb414885] Takashi Kokubun 2019-12-31 18:24:00 UTC

.github/workflows/mingw.yml でテスト実行する順番を test-all、test-spec に修正(逆になってた)。

[e1c363f847] Sutou Kouhei 2019-12-30 17:22:00 UTC

bundler のテストで利用する gem パッケージから ruby2_keywords.gem のものを追加しています。

[a6864f6d2f] Hiroshi SHIBATA 2019-12-31 22:42:42 UTC

racc2y および y2racc というコマンドを bin/ と libexec/ から削除しています。 [ruby-core:93516] [Feature #15982]

[69731b248f] Hiroshi SHIBATA 2019-12-31 22:53:27 UTC

racc の gemspec ファイルからも spec.executables と spec.files から racc2y と y2racc を削除しています。

[47c84c74d4] Takashi Kokubun 2019-12-31 23:27:40 UTC

.github/workflows/mingw.yml に前のテストのステップが失敗しても make test-all と make test-spec を実行させるようにする記述があったのを削っています。他の環境のテストに合わせるため。

[ab9f56b615] Takashi Kokubun 2019-12-31 23:58:06 UTC

appveyor.yml でもビルドが失敗から成功に戻った時の通知を抑制するようにしています。

[eca964c24e] Takashi Kokubun 2020-01-01 05:26:39 UTC

.github/workflows/cygwin.yml にもプラグイン k0kubun/action-slack を使った Slack 通知を追加して、他の環境の Slack 通知のメッセージもフォーマットをそろえるように調整しています。

[8c9450e7b8] Takashi Kokubun 2020-01-01 06:03:07 UTC

GitHub Actions および AppVeyor の設定から trunk を除外するために master を明示したりしていたところを削っています。

[afd3f64f8c] Takashi Kokubun 2020-01-01 06:06:18 UTC

ドキュメント類や tool/redmine-backporter.rb から Redmine の /projects/ruby-trunk の URL を参照していたところを /projects/ruby-master に変更しています。あーここも変わるのか。

ruby-trunk-changes 2019-12-31

今日は Proc#<< が返す Proc オブジェクトの lambda かどうかの判定の基準になる Proc の変更、GitHub Actions に MinGW でのビルドの追加や NEWS ファイルの次のバージョンに向けてのリセットなどがありました。

[99c7b0b7ea] Alan Wu 2019-12-30 22:47:58 UTC

Proc#<< で Proc オブジェクトの合成をした時に結果の Proc オブジェクトの lambda フラグを右辺側 (f << g で作った場合は g のほう)のフラグを引き継ぐようにしています。 https://github.com/ruby/ruby/pull/2729
まあ対称性でいうと(f >> g との)そうかも。

[f1ea5d22dc] git 2019-12-30 22:48:19 UTC

version.h の日付更新

[3264a00958] Alan Wu 2019-12-30 23:13:55 UTC

99c7b0b7ea789643bef60085ab59e4b62011ef8b の変更に対応して rubyspec のテストの修正。 [ruby-core:96139] [Bug #16406]

[179e402d8a] Nobuyoshi Nakada 2019-12-31 02:12:11 UTC

依存関係の再生成。主に internal/warnings.h への依存が不足していたのを追加しています。

[79c4202676] Takashi Kokubun 2019-12-31 07:09:24 UTC

75e8dd58f69c190c9698d0133942032903fb2f07 で GitHub Actions の bundled gems のテストで minitest のエラー無視をやめたのを revert しています。ランダムなエラーが発生しているようです。

[eb2b425821] MSP-Greg 2019-12-31 07:19:31 UTC

GitHub Actions に MinGW でのビルドの action を追加しています。またこれに関連してテストの guard 追加や skip 処理などがいくつか追加されています。 https://github.com/ruby/ruby/pull/2791

[b00418732c] Takashi Kokubun 2019-12-31 07:20:17 UTC

eb2b4258214337f165eb994e2c5b9c2a3f6ae0a8 で GitHub Actions による MinGW ビルドが追加されたので AppVeyor 上でのビルド設定は削除しています。 https://github.com/ruby/ruby/pull/2791

[fe158e4c65] Takashi Kokubun 2019-12-31 07:23:25 UTC

.github/workflows/mingw.yml のビルド対象ブランチを master に限定するように修正しています。

[f98650e9f8] Takashi Kokubun 2019-12-31 07:30:34 UTC

さらに .github/workflows/mingw.yml のジョブ名を Windows -> MinGW と変更しています。

[8136fec6e4] Takashi Kokubun 2019-12-31 07:42:20 UTC

.github/workflows/mingw.yml のステップ名に make compile というのがあったので make all に修正しています。

[38c35dd22d] Takashi Kokubun 2019-12-31 07:46:17 UTC

.github/workflows/mingw.yml に Slack 通知の設定を追加。 また .github/workflows/mjit.yml の Slack 通知の設定のメッセージに build matrix のタスク名を追加するようにしています。

[d912393e09] MSP-Greg 2019-12-31 08:29:58 UTC

標準添付ライブラリ readline のテストで MinGW で skip しているものが Reline ベースのテストの場合は通るそうなので、Readline を使ったテストの時だけ skip するように条件を修正しています。 https://github.com/ruby/ruby/pull/2743

[26ee0af4b3] Nobuyoshi Nakada 2019-12-31 08:12:01 UTC

tool/fetch-bundled_gems.rb から minitest 向けの分岐を削除しています。 minitest にタグが正しく打たれるようになったからとのこと。

[3096baec0e] Kazuhiro NISHIYAMA 2019-12-31 09:16:21 UTC

doc/NEWS-2.7.0 を追加。 NEWS からコピー。

[db58b4a48d] Kazuhiro NISHIYAMA 2019-12-31 09:18:21 UTC

NEWS ファイルを 2.8.0 (いずれ 3.0.0 になる予定)向けにリセットしています。

[918fe2ed7c] Joao Fernandes 2019-12-30 14:07:35 UTC

Object#inspect の rdoc 用コメントに、inspect で表示される16進数の値が object_id と関係していると記述がありましたが、2.7 からは object_id は VALUE の値とは関係ない単調増加する値になったので書き直しています。

[2e1fd4e2d7] Takashi Kokubun 2019-12-31 09:49:08 UTC

.github/workflows/mingw.yml で GitHub Actions の標準のリポジトリチェックアウトのアクションのかわりに独自に git clone するコマンドを書くようにしています。

[8caeef7c1d] Nobuyoshi Nakada 2019-12-31 09:04:08 UTC

freeze したオブジェクトに特異メソッドを定義しようとした時の FrozenError のテストに assert_raise を利用するようにして確かに FrozenError が発生していることを確認するようにしています。

[ee4ead8098] Nobuyoshi Nakada 2019-12-31 05:28:57 UTC

test/ruby/test_exception.rb から FrozenError についてのテストを独立したファイル test/ruby/test_frozen_error.rb に切り出しています。

[a580a3757b] Nobuyoshi Nakada 2019-12-31 05:33:03 UTC

同じく test/ruby/test_exception.rb から NameError についてのテスト群を test/ruby/test_name_error.rb というファイルに分割しています。

[0cf75e3850] Nobuyoshi Nakada 2019-12-31 05:36:54 UTC

同じく test/ruby/test_exception.rb から NoMethodError に関するテストを test/ruby/test_nomethod_error.rb に分割しています。

ruby-trunk-changes 2019-12-30

今日はドキュメントの変更や拡張ライブラリ io/console のバージョンの更新がありました。

[2ef8d5beee] Hiroshi SHIBATA 2019-12-29 13:09:15 UTC

拡張ライブラリ openssl の private メソッド OpenSSL::SSL::SSLSocket#sysread_nonblock や #syswrite_nonblock、#stop などの rdoc 用コメントに :nodoc: タグをつけて rdoc によるドキュメント生成を抑制するようにしています。 [ruby-core:71565] [Misc #11712]

[e882187612] Vladimir Dementyev 2019-12-30 00:59:07 UTC

doc/syntax.rdoc の syntax/refinements.rdoc へのリンクに experimental な機能と記述があったのを削っています。 https://github.com/ruby/ruby/pull/2796

[aed5afdaa0] git 2019-12-30 00:59:25 UTC

version.h の日付更新

[3e2418e2a6] Nobuyoshi Nakada 2019-12-30 08:38:28 UTC

拡張ライブラリ io/console のバージョンを 0.5.4 に更新しています。

ruby-trunk-changes 2019-12-29

今日は OpenBSD 向けのビルド修正や Array#rotate! の特定の引数向けの最適化などがありました。

[bb5b8ace8d] Kazuhiro NISHIYAMA 2019-12-28 12:09:52 UTC

33e9601938a79dae149caa88ff1bc06d376dd376 で導入した変数名の typo 修正。

[a04c535967] Jeremy Evans 2019-12-28 08:25:11 UTC

C ソースコード上の関数名に展開されるマクロ RUBY_FUNCTION_NAME_STRING として OpenBSD では configure 時のコンパイルによるチェックによらず __func__ を利用するようにバイパス処理を追加しています。

[290711e1ce] git 2019-12-28 22:13:25 UTC

version.h の日付更新

[8ce5d46e66] Nobuyoshi Nakada 2019-12-28 23:19:43 UTC

ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS マクロの定義で address sanitizer は使えるけど memory sanitizer は使えないという preprocessor の分岐内で memory sanitizer を利用するように指定してしまっていたのを修正しています。

[d7bef803ac] Nobuyoshi Nakada 2019-12-29 01:07:17 UTC

Warning や TracePoint など ruby 実装による組み込みメソッド実装したものを読み込む処理を元の実装のあるソースコードの Init_xxx() から呼び出していたのを rb_call_inits() 内から BUILTIN() というマクロを使って呼ぶようにしています。

[a0d1fd16d1] Seiei Miyagi 2019-12-25 12:55:49 UTC

Dir#each_child の rdoc 用コメントの call-seq に戻り値が nil だと表記されていたのを修正。実際は self が返され、ブロックなしで呼ぶと Enumerator が生成されます。

[e5c441a4a2] Ary Borenszweig 2019-11-29 20:59:47 UTC

Array の要素をずらす Array#rotate! メソッドに引数が 1 または -1 の時のための最適化実装を追加しています。

[31e2f03512] Nobuyoshi Nakada 2019-12-29 07:12:19 UTC

拡張ライブラリ io/console の set_rawmode() で IO.getch の intr キーワード引数が真に指定されてた時の termios のフラグから IXON を消しています。