ruby-trunk-changes 2020-08-27

今日は今日は主に % 記法によるリテラルでデリミタに非 ASCII 文字を使うのを SyntaxError にする変更や、include/ruby/backward/ 配下のヘッダの deprecated 化や削除などの掃除がありました。

[cc36b5d4ac] Nobuyoshi Nakada 2020-08-26 12:16:51 UTC

parse.y の parse_percent() の条件分岐で常に偽なので意味がなかった条件を削除しています。

[445e5548c9] Nobuyoshi Nakada 2020-08-26 12:36:22 UTC

文字列などのリテラル % 記法でデリミタに非ASCII 文字を使った時に SyntaxError になるようにしています。

[b2e1688e7d] 卜部昌平 2020-07-21 06:22:18 UTC

include/ruby/backward/2/extern.h というヘッダファイルを削除しています。 backward の配下のヘッダは拡張ライブラリで #include "ruby/xxx.h" のように include すべきヘッダファイルを昔は #include "xxx.h" で #include できてしまっていたので、その互換性のために作ったもので、コンパイル時に警告を出しているのでもう include/ruby/backward/ の配下は消そうということになったようです。

[0da2a3f1fc] 卜部昌平 2020-07-21 06:35:26 UTC

b2e1688e7d44d45e772ac9d5e79f4ad6e70141d5 で消した include/ruby/backward/2/extern.h の依存関係や #include しているヘッダの削除。

[4bc3846389] 卜部昌平 2020-07-22 01:10:25 UTC

同様に include/ruby/backward/classext.h の削除。

[6b6a4471d6] 卜部昌平 2020-07-22 01:23:42 UTC

4bc3846389eea28da2ef8c95a199f28b43060779 の include/ruby/backward/classext.h の削除に追随して internal/class.h で定義していたダミーの構造体 struct rb_deprecated_classext_struct を削除しています。

[d9c93a0d90] git 2020-08-27 05:08:21 UTC

version.h の日付更新

[5ca7b6abde] 卜部昌平 2020-07-22 04:55:20 UTC

include/ruby/backward/st.h と include/ruby/backward/util.h を削除しています。

[6ec6dd3ed7] 卜部昌平 2020-07-22 04:08:18 UTC

include/ruby/backward/rubysig.h を削除しています。

[5ae2c1b093] 卜部昌平 2020-07-22 04:15:36 UTC

include/ruby/backward/rubyio.h の削除。

[3353baac3d] Kazuhiro NISHIYAMA 2020-08-27 05:34:42 UTC

sample/drb/name.rb で deprecated なメソッド Thread.exclusive を使ってたので Mutex を使う実装に変更しています。 [ruby-core:99636] [Feature #17125]

[3437e6247d] 卜部昌平 2020-07-22 01:40:41 UTC

include/ruby/backward.h で警告を出しつつ定義してた構造体 struct RClass (正確にはマクロで struct RClassDeprecated にすりかえられてた)の定義を削除しています。

[21b3bc10d3] 卜部昌平 2020-07-22 01:55:30 UTC

configure での DEPRECATED_TYPE() マクロの定義を削除しています。かわりに include/ruby/backward/2/attributes.h に警告つきで代替実装を追加しています。

[442525527e] 卜部昌平 2020-07-22 04:02:33 UTC

21b3bc10d3626272683e085b2b3ea62d2c05b1d7 で include/ruby/backward/2/attributes.h で定義した DEPRECATED_TYPE() の警告で代替として RBIMPL_ATTR_DEPRECATED() を提示するのをやめています。

[cd1d6d9029] 卜部昌平 2020-07-22 05:44:25 UTC

R_CAST() というマクロの利用をやめて include/ruby/backward/2/r_cast.h での定義部分で deprecated 警告を出すようにしています。

[756403d775] 卜部昌平 2020-07-22 05:47:40 UTC

cd1d6d90299d727ad4a87c42f3ba09c87df2bce3 での R_CAST() 依存を消したのにあわせて common.mk や depend ファイルでの include/ruby/backward/2/r_cast.h への依存関係を削除しています。

[1035a3b202] 卜部昌平 2020-07-22 02:30:05 UTC

rubyコマンドラインオプションに --copyright をつけるとその処理をする ruby_show_copyright() の中で exit(3) を呼んでプロセスを終了させていたのですが、7aab062ef3772c7e8e50fc872a1647918c76dbba でこれが変更されていて、この時点では RUBY_SHOW_COPYRIGHT_TO_DIE を 0 にセットしないと処理を続けないで結局すぐ後で exit(3) してたのですが、デフォルトで処理を続けるようにしています。つまり -v オプションと同様になるってことですかね。

[2038cc6cab] Kir Shatrov 2020-08-27 07:39:13 UTC

拡張ライブラリ socket の getaddrinfo(3) を使う名前解決でブロックしてしまって割り込みがきかなくなることがあったのを rb_getaddrinfo_a() という GVL を解放する実装を利用して割り込みがきくようにしています。getaddrinfo_a(3) の wrapper 実装自体はだいぶ昔から存在してたんですね。 [ruby-core:88500] [Bug #14997] [ruby-core:96027] [Feature #16381] [ruby-core:96642] [Feature #16476] https://github.com/ruby/ruby/pull/2827

[5ca44076f4] 卜部昌平 2020-07-22 06:37:28 UTC

RMODULE_xxxx なマクロを定義している include/ruby/backward/2/rmodule.h 全体を deprecated にして本体では利用しないようにしています。

[490010084e] 卜部昌平 2020-07-22 06:40:46 UTC

5ca44076f47dce3a70b5f4755f5195f0f9093fc4 で include/ruby/backward/2/rmodule.h を deprecated にして include/ruby/ruby.h での #include も削除したのに追随して common.mk や depend ファイルでの依存関係から削除しています。