ruby-trunk-changes 2023-08-25

今日は yarp の更新やスクリプトに BOM が付いていた時の位置情報の修正、GitHub Actions の clang-18 対応などたくさんの変更がありました

[554b370b72] Nobuyoshi Nakada 2023-08-24 10:48:50 UTC

GitHub Actions の check_misc.yml で事前準備のアクションで make up を実行するようにしています。

[5ec1fc52c1] Nobuyoshi Nakada 2023-08-24 10:10:33 UTC

prelude.c のコメント内の非 ASCII 文字があると警告が出ることがあるので \xXX にエスケープするようにしています。

[e1d7066a5f] Stan Lo 2023-08-24 15:35:36 UTC

irb の RubyLex クラスを IRB::RubyLex にネストさせています。 https://github.com/ruby/irb/pull/692

[9aba46c666] Kevin Newton 2023-08-24 15:56:09 UTC

tool/sync_default_gems.rb の yarp の同期時に無視するファイルのパターンに fuzz/ ディレクトリの配下を追加しています。

[58ca0cfa07] HParker 2023-08-23 22:08:07 UTC

yarp のテスト用ファイルの変更。

[05e827427f] Alan Wu 2023-08-24 18:40:52 UTC

vm.c の vm_exec_handle_exception() のリファクタリング。 変数 cfp に const 修飾子を追加しています。

[ebb9034710] Alan Wu 2023-08-24 21:32:45 UTC

vm.c の hook_before_rewind() という関数の引数 cfp は ec から辿れるため渡さずに関数内で ec->cfp を参照するようにリファクタリングしています。

[f9aea75747] Burdette Lamar 2023-08-24 21:41:43 UTC

Process.exit, Process.abort などのメソッドの rdoc 用コメントを強化しています。 https://github.com/ruby/ruby/pull/8282

[97a97d6d6c] Takashi Kokubun 2023-08-24 22:05:01 UTC

yarp の同期でテストファイルが test/ 直下に追加されてしまっていたのを test/yarp/ 配下に移動しています。

[40d774bec6] Samuel Williams 2023-08-25 01:28:33 UTC

Fiber 用の coroutine 実装の amd64 アークテクチャ向けの実装でレジスタの退避/復帰に pushhq/popq を利用していたのを movq 命令を利用するように変更しています。性能のためみたいです。 https://github.com/ruby/ruby/pull/8284

[775df74feb] Peter Zhu 2023-08-25 01:45:34 UTC

NEWS のチケット参照のためのマークアップのミスを修正。

[6f1dfa7411] Takashi Kokubun 2023-08-25 01:46:06 UTC

common.mk の srcs から yarp の自動生成ファイルへの依存関係を追加しています。前もこれ一度追加されてましたね。 https://github.com/ruby/ruby/pull/8285

[eb5eeb6f19] Peter Zhu 2023-08-25 01:46:33 UTC

NEWS にチケット参照のリンクのための footnote を追加しています。

[945e79c996] "dependabot[bot]" 2023-08-25 02:29:10 UTC

GitHub Actions で利用している actions/checkout アクションのバージョンを更新しています。

[b635388a90] Jeremy Evans 2023-08-24 20:44:03 UTC

MUL_OVERFLOW_LONG_LONG_P() マクロの定義をする時に __builtin_mul_overflow() が long long 型をサポートしているかどうか configure でチェックしておくようにしています。 [Bug #17646]

[bdd535eac6] Hiroshi SHIBATA 2023-08-25 03:33:23 UTC

lib/bundled_gems.rb のスタイルの修正。

[28b2cb10d5] Hiroshi SHIBATA 2023-08-25 03:52:06 UTC

bundler の上書きする require で警告を出す(元) default gems でネストしたファイルも対象する gem のリストに bigdecimal を追加しています。

[3a70afad32] Hiroshi SHIBATA 2023-08-25 03:56:47 UTC

bundler の上書きする require で警告を出す(元) default gems のリストに prime も追加しています。

[70272ca65c] Hiroshi SHIBATA 2023-08-25 04:10:59 UTC

bundler の上書きする require で警告を出す(元) default gems で bigdecimal を拡張子つきで require しても警告するようにしています。

[f7359e112a] Hiroshi SHIBATA 2023-08-25 06:53:26 UTC

bundler の上書きする require で警告出力する時に require しているのが gem の中だったらその gem の依存関係に追加することも suggest するようにしています。 [ruby-core:114479] [Feature #19846]

[5b407450f5] Nobuyoshi Nakada 2023-08-25 03:07:00 UTC

GitHub Actions のテスト実行 dependabot による push イベントでは実行しないようにしています。pull request が作られるはずなのでそっちで実行されるので。

[eb57b6ba82] 卜部昌平 2023-08-24 04:44:34 UTC

GitHub Actions のいろんなコンパイラでのビルドを試す workflow に clang 18 でのビルドを追加しています。またデフォルトを clang 17 に更新しています。

[b88bdf1ebb] 卜部昌平 2023-08-25 03:19:13 UTC

GitHub Actions のいろんなコンパイラでのビルドを試す workflow でコンパイラオプションの追加を環境変数 append_cc のかわりに CFLAGS を利用するように変更しています。

[fa2712981f] 卜部昌平 2023-08-25 04:28:12 UTC

clang 17 で -std=c2x オプションを追加した時に警告が出てたみたいで RBIMPL_HAS_C_ATTRIBUTE() の定義時にチェックを追加しています。

[c914382db2] 卜部昌平 2023-08-25 04:47:10 UTC

rb_imemo_tmpbuf_t の typedef が重複していたのを修正しています。 C99 でのコンパイル時にエラーになる可能性があったみたいです。

[097b766b41] 卜部昌平 2023-08-25 04:51:07 UTC

同じく rb_io_t の typedef が重複していたのを修正しています。

[eec85a6309] 卜部昌平 2023-08-25 05:06:56 UTC

拡張ライブラリ ripper の depend ファイルを更新しています。

[fa54406f50] 卜部昌平 2023-08-25 05:07:09 UTC

addr2line.c の変数の初期化子で空の {} を使ってたところを {0} に修正しています。 {} が書けるのは C++ みたいです。

[12ec1fb2b1] 卜部昌平 2023-08-25 05:21:55 UTC

拡張ライブラリ fiddle の ALIGN_OF() マクロの定義で _Alignof() が定義済みかどうかのチェックを追加しています。

[197e91f357] 卜部昌平 2023-08-25 05:28:15 UTC

GitHub Actions のいろんなコンパイラ/コンパイルオプションを試す workflow で -DUNIVERSAL_PARSER を追加したビルドを追加しています。

[ddc5c204b2] 卜部昌平 2023-08-25 05:37:05 UTC

rubyparser.h から #include "parser_value.h" を preprocessor で本体では含めないようにしています。

[81620ed9b5] 卜部昌平 2023-08-25 05:39:44 UTC

rb_parser_config_t の typedef の重複を修正しています。

[1614e5ebb2] 卜部昌平 2023-08-25 05:42:11 UTC

universal_parser.c で struct rb_imemo_tmpbuf_struct の定義が重複していたので imemo.h が #include 済みだったら消すようにしています。

[fa327472ca] 卜部昌平 2023-08-25 05:54:38 UTC

rubyparser.h の構造体 rb_parser_config_t の定義で snprintf メンバーの宣言の前に #undef snprintf を追加しています。 include/ruby/subst.h で別名に #define されているのでその影響をなくすため。

[140daab5ac] 卜部昌平 2023-08-25 05:58:33 UTC

rubyparser.h に #include <stdarg.h> を追加しています。

[26cb3b5617] 卜部昌平 2023-08-25 06:24:50 UTC

parse.y に #include "ruby/internal/config.h" を追加しています。

[a736420ce5] 卜部昌平 2023-08-25 07:05:02 UTC

fa327472caaa66a05ea0dcac2dd6cf58e30025e3 の続きで rubyparser.h で構造体の snprintf メンバーのために #undef でマクロ定義を消しておいたのを後で復活させるようにしています。 include/ruby/subst.h を変更したりファイル名を変更したらここも変更しないといけないですね。

[d9cba2fc74] 卜部昌平 2023-08-25 07:06:53 UTC

拡張ライブラリ ripper の C ファイルに #include "internal/imemo.h" を追加しています。

[6aa16f9ec1] Nobuyoshi Nakada 2023-08-25 07:53:29 UTC

AST と ISeq に対象のスクリプトの行の内容を保持させる RubyVM.keep_script_lines の処理のリファクタリング?

[503f98ebd3] Nobuyoshi Nakada 2023-08-25 08:09:22 UTC

ruby_parser.c から 6aa16f9ec14a296f549dc955774ad2293d1c54d6 で不要になった関数を削除しています。

[b5d0374635] Jun Aruga 2023-08-22 17:44:25 UTC

拡張ライブラリ openssl の rdoc 用コメントの typo 修正。

[023b8ddd22] David Rodríguez 2023-08-24 21:08:56 UTC

bundler で Gemfile に複数の source が書かれていた場合の処理の簡素化?

[1f76e42b85] Nobuyoshi Nakada 2023-08-24 17:20:39 UTC

スクリプトの先頭に BOM がついていた時に parser が AST などに保持させる位置情報がずれてしまうので BOM の後を行頭として扱うように修正しています。 [ruby-core:114495] [Bug #19848]

[fe8f6dfed1] Nobuyoshi Nakada 2023-08-25 02:19:03 UTC

yarp に BOM に関する特別処理? があったのを削除しています。 1f76e42b85be4031bdedcc3e457e8fa949195304 で不要になったということかな? yarp って parse.y を利用するのかな。