ruby-trunk-changes 2020-11-20

今日は拡張ライブラリ ripper の修正や defined?(super) が respond_to_missing? を認識するようにする変更などがありました。

[0026f644d7] Kevin Murphy 2020-11-19 21:38:43 UTC

拡張ライブラリ coverage の rdoc 用コメントに Lines coverage, Branches coverage, Methods coverage, Oneshot Line coverage など種類毎の説明と利用例が追記されています。

[80d3f21994] git 2020-11-20 00:25:12 UTC

version.h の日付更新

[1800f3fa5c] Nobuhiro IMAI 2020-11-19 14:19:08 UTC

拡張ライブラリ ripper の Ripper.lex と Ripper.tokenize で渡されたスクリプトが途中で SyntaxError になっても最後の token まで返すようにしています。 [ruby-core:100470] [Feature #17276]

[d79cdcb113] S-H-GAMELINKS 2020-11-16 04:22:47 UTC

Float の浮動小数点数の実装の精度でその値の前後ひとつだけ大きい/小さい値を得る Float#next_float, Float#prev_float の実装を flo_prev_or_next() という関数に切り出してどちらがわに動かすかをフラグで指定するようにして共有するリファクタリング

[c11c25baef] S-H-GAMELINKS 2020-11-17 09:41:21 UTC

d79cdcb113ed63705f857ac2a7c323db398c4256 の再修正。フラグではなく nextafter() に渡す第2引数を直接渡すように flo_prev_or_next() の引数を変更しています。

[8cbd5f218b] S-H-GAMELINKS 2020-11-17 13:53:41 UTC

d79cdcb113ed63705f857ac2a7c323db398c4256c11c25baefa996fd16ac6b03e2c4cbe8a98b7237 の続き。 flo_prev_or_next() を flo_nextafter() に改名しています。

[4b899f9164] Kazuhiro NISHIYAMA 2020-11-20 04:11:05 UTC

tool/downloader.rb で GNU のサイトからの config.guess や config.sub のダウンロード時に jsDelivr の CDN が使えなかった時に GitHub のミラー? を利用するように fallback を追加しています。

[fac2498e02] Nobuyoshi Nakada 2020-11-17 12:17:19 UTC

defined?(super) が respond_to_missing? で動的に respond_to? に反応するようにされてた時にそれで定義されてるとみなして "super" を返すようにしています。 method_missing は元からみてたんですね。なおこのために basic_obj_respond_to() の引数にオブジェクトの class も渡すようにしています。 どうでもいいですけどコミットログの先頭にチケットの参照を書くのは新しいスタイルですね。 [ruby-dev:49013] [Bug #11213]

[69d871eeeb] Nobuyoshi Nakada 2020-11-20 03:25:24 UTC

cd0877a93e91fecb3066984b3fa2a762e6977caf1800f3fa5c29515113ecdcc5695e8a96f462b74c の再修正。 Ripper.lex や Ripper.tokenize のクラスメソッドで変更/修正していたのをさらに内部の Ripper::Lexer のインスタンスメソッドに raise_errors キーワード引数を追加しています。 [ruby-core:100470] [Feature #17276]

[1f7b557890] Nobuyoshi Nakada 2020-11-20 09:30:05 UTC

標準添付ライブラリ irb のテストで色付けで ruby 本体のバージョンによって結果が変わりうるものに対処しています。

ruby-trunk-changes 2020-11-19

今日は RubyVM::InstructionSequence.compile_file の修正などがありました。

[ce3c9a3437] Cristian Greco 2020-11-18 18:04:09 UTC

hash.c で USE_TRANSIENT_HEAP マクロで preprocessor 分岐していたところのマクロ名が typo していたのを修正。これはひどい。これは 2.7 にバックポートがいるかな、と思いきや 2325017477e0ee9f557b07a73f187a83ae5036a4 で入ったもののようなので、これをバックポートしなければ不要ですね。 そして transient_heap.c のデバッグ用メッセージなどの typo 修正しています。

[fee0073726] git 2020-11-18 22:11:57 UTC

version.h の日付更新

[4a5c42db88] Jeremy Evans 2020-11-18 19:39:59 UTC

RubyVM::InstructionSequence.compile_file でファイルの内容を読み込む時の Encoding の処理を Encoding.default_external を考慮するようにしています。ファイルから AST にするまでの処理に利用する関数を rb_parser_compile_file_path() から rb_parser_load_file() に変更しています。他にも magic comment の解釈や shebang の解釈なども行なわれてそうです。なんか副作用あるものはないかな。 [ruby-core:100726] [Bug #17308]

[9c1e2a99fc] Hiroshi SHIBATA 2020-11-19 06:36:21 UTC

NEWS の新規 default gems の一覧をソートしなおして、さらに拡張ライブラリはリストを分けています。

[44ad72fa21] Nobuyoshi Nakada 2020-11-19 06:41:38 UTC

4a5c42db88d30532bd4fbcdff89615ebf961d2a2 で追加した RubyVM::InstructionSequence.compile_file のテストで Encoding.default_external を一時的に差し替えるのは EnvUtil.with_default_external というヘルパーメソッドがあったのでそれを使うようにリファクタリングし、また警告が出力されないことや SyntaxError が発生しないことを確認する assertion を追加しています。

ruby-trunk-changes 2020-11-18

今日は拡張ライブラリ fiddle の機能追加/バージョン更新や拡張ライブラリ ripper のメソッドにキーワード引数 raise_errors を追加する変更などがありました。

[5e3259ea74] Koichi Sasada 2020-11-17 07:40:47 UTC

include/ruby/ractor.h を追加して Ractor 関連の拡張ライブラリが作れるようにいくつかの関数を C API 化しています。

[0829f14704] git 2020-11-17 18:53:08 UTC

version.h の日付更新

[898aff954e] Jeremy Evans 2020-11-17 21:58:27 UTC

NEWS の taint フラグについての警告がデフォルトで出るようになったという項目を削除しています。 deprecation warning 全般がデフォルトでは出ないようになったため記述が嘘になってたので。

[2ef3b979bd] Junichi Ito 2020-11-17 22:09:00 UTC

NEWS にコマンドラインオプション --backtrace-limit について追記しています。そういえばこんなのあったな。 [Feature #8661]

[64926d5007] MSP-Greg 2020-11-17 14:24:34 UTC

標準添付ライブラリ net/smtp のテストで UNIXSocket を使っているところを UNIXSocket がなかったらただの Socket.pair を使うように対応して、Windows でテストを実施しないようにしてたのを戻しています。

[ae7b53546c] Sutou Kouhei 2020-07-09 11:19:20 UTC

拡張ライブラリ fiddle の C の型を指定する定数に Fiddle::TYPE_CONST_STRING や Fiddle::SIZEOF_CONST_STRING を追加しています。 const char * に対応する型のようです。

[e2dfc0c26b] Sutou Kouhei 2020-07-09 12:39:51 UTC

拡張ライブラリ fiddle の型の指定を定数ではなく "voidp" とか :voidp のようにキーワードの文字列や Symbol での指定を可能にしているようです。

[307388ea19] Aaron Patterson 2020-08-02 21:26:40 UTC

拡張ライブラリ fiddle に Fiddle::Pinned というクラスを導入して、確保したオブジェクトを GC.compact で移動できない pin されたオブジェクトにする参照を作れるようにしています。また fiddle 内で使う例外のベースクラスとして Fiddle::Error という例外クラスを導入しています。 https://github.com/ruby/fiddle/pull/44

[aff5eaced4] Sutou Kouhei 2020-08-15 04:19:23 UTC

拡張ライブラリ fiddle の Windows の RubyInstaller 版向けの対応。 Fiddle::DLError の定数の削除をしているのですが、コメントによると RubyInstaller 版では起動時に常に fiddle がロードされるので require した時に再定義の警告を抑制するためかな?

[1867088d90] Sutou Kouhei 2020-09-27 22:06:27 UTC

拡張ライブラリ fiddle の fiddle/import.rb で Fiddle.dlopen から発生した Fiddle::DLError を捕捉してメッセージを変えて再 raise してたのをやめています。

[e27701291a] Sutou Kouhei 2020-11-16 21:04:00 UTC

拡張ライブラリ fiddle の rb_fiddle_malloc() で ruby_xmalloc() を利用して後で memset() でゼロクリアしていたのを ruby_xcalloc() を利用するようにリファクタリングしています。

[821cfa74cb] Sutou Kouhei 2020-11-16 21:44:04 UTC

拡張ライブラリ fiddle の gemspec ファイルの spec.metadata に msys および mingw 向けの外部依存関係として libffi を追加しています。

[3b385c33b8] Sutou Kouhei 2020-11-16 21:54:18 UTC

821cfa74cb6c5b778928e880c08d61265e539c60 の続きで fiddle の gemspec ファイルでの spec.metadata の設定で freeze された文字列リテラルを代入するとその後 String#sub! で置換しようとしてエラーになるそうなので String#+@ を使って dup しておくようにしています。

[ceccc16589] Sutou Kouhei 2020-11-16 23:51:36 UTC

と思ったら 3b385c33b840218a51736946624de5b0226d52c8 は revert されています。 String#sub! してるほうを修正したのかな。

[5c7ef89db4] Sutou Kouhei 2020-11-17 02:12:09 UTC

拡張ライブラリ fiddle のテストでブロックパラメーターによるローカル変数の遮蔽の警告除去。

[aa22b6658a] Sutou Kouhei 2020-11-17 02:57:12 UTC

拡張ライブラリ fiddle のバージョン Fiddle::VERSION 定数の内容を 1.0.2 に更新しています。

[fcd680fbf0] Sutou Kouhei 2020-11-17 20:18:55 UTC

拡張ライブラリ fiddle の value_to_generic() が戻り値が void 型なのに不要な return 文が書かれてたのを削除しています。

[0915a02068] Sutou Kouhei 2020-11-17 20:26:15 UTC

ext/fiddle/depend の依存関係を再生成しています。

[519062b350] Sutou Kouhei 2020-11-17 20:26:35 UTC

NEWS に fiddle のバージョン更新について追記しています。

[a776032ef1] Kazuhiro NISHIYAMA 2020-11-18 01:52:56 UTC

5e3259ea7490a2542d78c433eb8c9d44c7819e61 で追加した include/ruby/ractor.h の rb_ractor_shareable_p_continue() の宣言はコメントで直接呼ぶなって書かれてましたが、利用している inline 関数の中で宣言することでヘッダを include しただけで宣言がみえるのを避けるようにしています。

[cd0877a93e] Jeremy Evans 2020-11-18 05:15:50 UTC

拡張ライブラリ ripper の Ripper.lex, Ripper.tokenize, Ripper.sexp などにキーワード引数 raise_errors を追加して、これに true を指定するとエラー時に戻り値で返すかわりに SyntaxError 例外を発生させるようにしています。 [ruby-core:100470] [Feature #17276]

[1301bd8ca9] Jeremy Evans 2020-11-18 05:26:24 UTC

cd0877a93e91fecb3066984b3fa2a762e6977caf に追随して拡張ライブラリ ripper の rdoc 用コメントにキーワード引数 raise_errors についての記述を追加しています。

[6e487719b4] Yusuke Endoh 2020-11-18 05:47:37 UTC

bundled gem の typeprof のバージョンを 0.6.1 に更新しています。

[dc3a65bd99] Hiroshi SHIBATA 2020-11-18 06:43:46 UTC

標準添付ライブラリ net/smtp の Net::SMTP::VERSION の定数の内容を "0.2.1" に更新しています。

ruby-trunk-changes 2020-11-17

今日は TracePoint の不具合修正や特異クラスを持つオブジェクトを clone した時の不具合修正、標準添付ライブラリ net/smtp の更新などがありました。

[0f37f384d4] Nobuyoshi Nakada 2020-11-16 13:14:37 UTC

String#pack の rdoc 用コメントの "w" 指示子の説明のメソッド名の参照を修正。

[1271782f9d] git 2020-11-16 17:38:31 UTC

version.h の日付更新

[084e7e31b2] Koichi Sasada 2020-11-16 07:40:04 UTC

同じメソッド内で別の行を対象にした TracePoint を複数有効化すると、元から有効化されていたほうの TracePoint が無効になってしまうという不具合があったのを修正しています。 [ruby-core:100684] [Bug #17302]

[ebb96fa880] Alan Wu 2020-11-11 21:38:03 UTC

特異クラスが作られているオブジェクトを clone した時に clone 後のオブジェクトの特異クラスから、インスタンスが所属するクラスのクラスメソッドが呼べてしまっていた不具合を修正しています。すごくややこしい。 https://github.com/ruby/ruby/pull/3761 [ruby-core:100801] [Bug #17321]

[68ffc8db08] Alan Wu 2020-11-12 20:15:30 UTC

vm_declare_class() で作成した Class に rb_define_alloc_func() でインスタンス作成時の allocate 用の関数を指定しておくようにしています。ベンチマークと共に追加れているのでパフォーマンス改善が目的のようです。Ruby でクラス定義をする時には問題ないけど拡張ライブラリで Ruby で定義されたクラスを継承してなにかする時など非互換になる可能性があるとコミットログに書かれています。 https://github.com/ruby/ruby/pull/3764

[ef19fb111a] Jean Boussier 2020-09-25 12:46:59 UTC

rb_enc_interned_str()、rb_enc_interned_str_cstr() といった fstring 用の wrapper 関数を定義して include/ruby/encoding.h で C API として公開しています。 [ruby-core:80447] [Feature #13381]

[fcc88da5eb] Sergei Trofimovich 2020-11-16 08:42:15 UTC

configure.ac を autoconf の 2.70 でうまく動かなくなってたのを修正。 https://github.com/ruby/ruby/pull/3773

[cada6d85d0] Hiroshi SHIBATA 2020-11-17 05:17:45 UTC

標準添付ライブラリ net/smtp を upstream から 0.2.0 をマージして更新しています。

[0683912db8] Hiroshi SHIBATA 2020-11-17 08:06:06 UTC

cada6d85d0c1402463fa6066011169898933dd4e の net/smtp の更新で追加されたテストの Windows で動かないものをテストメソッドを省略するようにしています。

ruby-trunk-changes 2020-11-16

今日はかっこなしのメソッド引数の先頭に "/" ではじまる正規表現リテラルがあった時の警告メッセージの変更と bundled gems の rbs と typeprof の更新などがありました。

[fd46ff9d42] Marc-Andre Lafortune 2020-11-15 22:44:48 UTC

NEWS の Range と Regexpインスタンスが freeze されるようになったという項目を 1つにまとめています。

[45fd53e0a2] git 2020-11-15 22:45:16 UTC

version.h の日付更新

[f5bb9115a7] Jeremy Evans 2020-11-15 06:14:35 UTC

かっこなしのメソッド引数の最初に 演算子として解釈できるトークンがあるとまぎらわしいという警告が出ますが、この時に "/" ではじまるトークン(つまり正規表現リテラル)の時には特に regexp とまぎらわしいというメッセージを出すようにしています。 [ruby-core:99633] [Bug #17124]

[ef82a0efa3] Kazuhiro NISHIYAMA 2020-11-16 01:59:58 UTC

fd46ff9d421dd1ad20bf3275f3289477e836ce8c の NEWS.md の変更でチケット参照の記法でかっこが足りてなかったのを修正しています。

[0ba096df17] Kazuhiro NISHIYAMA 2020-11-16 02:01:21 UTC

fd46ff9d421dd1ad20bf3275f3289477e836ce8c の NEWS.md の修正でチケット参照のための footnote が足りてなかったので追加しています。

[57ab779a9c] Soutaro Matsumoto 2020-11-14 13:36:49 UTC

bundled gems の rbs のバージョンを 0.17.0 に更新しています。

[bcd29fed69] Soutaro Matsumoto 2020-11-14 15:00:21 UTC

bundled gems の typeprof のバージョンを 0.5.1 に更新しています。

[8985add9eb] Yusuke Endoh 2020-11-16 08:44:52 UTC

再度 bundled gems の typeprof のバージョンを 0.5.2 に更新しています。

ruby-trunk-changes 2020-11-15

今日は関数をひとつ inline 関数化する変更だけでした。

[0433f5ae4d] Nobuyoshi Nakada 2020-11-15 00:56:16 UTC

52bd8f6f68a45cb990a827e4a1c276251cdf471cvm_insnhelper.h に定義を切り出した vm_call_iseq_optimizable_p() という関数がヘッダにあるのに inline 関数になってなかったので inline 修飾子を追加しています。

[cd50ff8082] git 2020-11-15 01:04:28 UTC

version.h の日付更新

ruby-trunk-changes 2020-11-14

今日は class 文で継承元に Class じゃないものを渡した時の例外メッセージの修正や bundled gems の typeprof のバージョン更新などがありました。

[acbe7aa197] Benoit Daloze 2020-11-13 12:17:22 UTC

mspec の未使用の helper メソッドを削除。

[6d05967468] Benoit Daloze 2020-11-13 12:17:24 UTC

rubyspec を upstream からマージしています。

[ce9beb9d20] Jeremy Evans 2020-07-18 15:18:39 UTC

class 文で既に定義済みの Class を再度 open する時に継承元として Class じゃないものを渡したりした時の例外メッセージを修正しています。 [ruby-dev:50527] [Bug #14726]

[1bd98ee295] git 2020-11-13 15:06:43 UTC

version.h の日付更新

[7826210541] Alan Wu 2020-11-12 18:19:41 UTC

特異クラスを取得する C API の実装で内部的インスタンス変数("@" ではじまらないもの)を取得するのに rb_ivar_get() を使っていたため未初期化の状態だと警告が出ていたので rb_attr_get() を使うように修正しています。

[311a66b7f5] Yusuke Endoh 2020-11-14 10:22:38 UTC

bundled gems の typeprof のバージョンを 0.5.0 に更新しています。