サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
ruby-trunk-changes.hatenablog.com
今日はいくつかの起動時の GC からの保護漏れの不具合修正や拡張ライブラリ stringio の chilled string 対応などがありました。 [2505c27fdf] Kevin Newton 2024-03-26 19:45:43 UTC prism の更新。 [9ad175c1ee] Peter Zhu 2024-03-26 15:34:28 UTC Init_Numeric() で各数字の fstring を生成しておくところであとでまとめて rb_vm_register_global_object() で mark の root に登録していたので途中で fstring 生成時に GC が発生すると回収されてしまう可能性があったので 1つずつ生成してすぐに登録するようにマクロを定義して修正しています。 [1d99fe430a] Peter Zhu 2024-03-26 1
今日は主に magic comment の frozen_string_literals の指定がないスクリプト内の文字列リテラルが chilled string という文字列となり破壊的メソッドに対して deprecated warning を出力するようにする変更などがありました。 [cb029fa4e8] Cody Cutrer 2023-10-09 17:38:42 UTC bundler の bundle plugin install サブコマンド(サブサブコマンド?)のオプション --local-git を deprecated としています。 --git オプションと同じ働きだったとのこと。 [c73dd96fe4] Kevin Newton 2024-03-18 13:58:53 UTC prism の更新。 [4469729558] Peter Zhu 2024-03-1
今日は Data の子クラスからクラスメソッド define を undef して孫ができないようにする変更や bundled gems の test-unit のバージョン更新などがありました。 [8218cb73ba] Nobuyoshi Nakada 2022-10-03 13:59:22 UTC b6b9a6190def53aa53ac816a51034fa1c96ed70b で macOS 環境で utimensat(2) というシステムコールの利用可能性を実行時に weak 参照の utimensat の symbol 解決の結果をみて判定していたのは configure 時のチェックの結果 HAVE_UTIMENSAT が偽の時には実施しないようにしています。macOS 10.12.6 では utimensat(2) が未定義になったためビルドエラーになるようになったそうです
今日は st_table のリスト操作を ccan/list で書きかえる変更と、Windows での IO#reopen の不具合修正などがありました。 normal: r51064 2015-06-30 03:10:00 +0900 r51034 および r51044 での st_table のリストを ccan/list を利用するようにする変更の3度目のトライです。 st_head() の実装で一旦 uintptr_t の変数に受けてからキャストするようにしています。 gcc 4.4 の不具合? で scrict-aliasing の警告が出ていたのを回避するようにしているようです。 [ruby-core:69726] [misc #10278] svn: r51065 2015-06-30 03:10:20 +0900 version.h の日付更新。 normal: r5106
今日は昨日の universal parser の構造体 rb_parser_config_t からの isascii の削除の続きの変更や String#index の Encoding 変換エラー時のメッセージの変更などがありました。 [2903e9456f] alitaso345 2023-07-08 13:30:05 UTC universal_parser.c の ISASCII() の定義を削除しています。 8b2a0ec8df6a09361fd835b792a5d200bc0e66af で構造体 rb_parser_config_t のメンバー isascii を削除したのでこちらの定義は無効になっていたので。やはり消し漏れだったみたいですね。 https://github.com/ruby/ruby/pull/8029 [b2bccf053b] yui-knk 2023-0
今日は主に Transient Heap という短命オブジェクトによる GC 圧力を低減するための実装の Variable Width Allocation の拡充に伴なう削除がありました。 [0454887a0e] "B. Burt" 2023-07-12 23:02:20 UTC 標準添付ライブラリ getoptlong の rdoc 用コメント内のサンプルコードのインデントを修正。 [fff4773085] Shane Becker 2023-07-12 23:57:03 UTC Thread::Queue クラスの rdoc 用コメントの英文の修正。 [1e7b67f733] Peter Zhu 2023-06-13 20:19:33 UTC 短命なオブジェクトのためのメモリ管理のしくみ Transient Heap の機構を完全に削除しています。 Variable Width A
今日は主に MJIT の再実装、irb の補完処理の不具合修正などがありました。 [1b4c1492c1] Burdette Lamar 2023-03-05 19:06:31 UTC 標準添付ライブラリ net/http の Net::HTTP クラスの rdoc 用コメントにメソッド一覧などを追加しています。 [fc5482d088] Aaron Patterson 2023-03-05 21:00:34 UTC MJIT の C Binding 用のクラス RubyVM::MJIT::CPointer に to_i メソッドを追加してポインタのアドレスを正数として取り出すようにしています。 https://github.com/ruby/ruby/pull/7446 [bab809d98f] Hiroshi SHIBATA 2023-03-03 07:30:39 UTC rubyge
今日は ruby のバージョンが 3.3.0 に上げられました。またいくつかの標準添付ライブラリのバージョンが更新されました。また Float#round のキーワード引数 half: :even を渡した時の不具合修正がありました。 [2a6dbf03a2] "Yukihiro \"Matz\" Matsumoto" 2022-12-25 23:46:59 UTC include/ruby/version.h の RUBY_API_VERSION_MINOR を 3 に更新しています。 3.3.0 の開発が開始されました。 [d8b55d11da] Nobuyoshi Nakada 2022-12-26 00:58:43 UTC minor version が更新されたので include/ruby/internal/abi.h の RUBY_ABI_VERSION マクロを 0 にリセ
最初に説明抜きで結論を CRuby のリポジトリを git で clone した working copy で以下を実行します。 git remote add ruby-trunk-changes https://github.com/nagachika/ruby.git git config --local remote.ruby-trunk-changes.fetch '+refs/notes/commits:refs/notes/ruby-trunk-changes' git config --local notes.displayRef '*' git fetch ruby-trunk-changes git の使いかたにはいろいろ個人の好みがあったりとか既存の設定との相性があると思うので、よりこまかく設定したい人や背景を知りたい人は以下の説明も読んでみてください。 背景 毎日 C
今日は主に YJIT の arm64 アーキテクチャ対応の大量の変更と mspec/rubyspec の更新がありました。 [4bc782ed87] Yusuke Endoh 2022-08-29 11:23:51 UTC 7bdb999d0f28c7bb9d7a35ca775e405674527e5f で rubygems のヘルパーメソッドの FileUtils.rm_rf の例外発生時の調査用コードを入れていたのを revert しています。 MJIT が起動した gcc が一時ディレクトリにファイルを置いているらしいことを確認できたとのこと。 [a319d3cfdc] Benoit Daloze 2022-08-29 13:32:48 UTC GitHub Actions の make test-spec 実行時の workflow にて環境変数 CHECK_LEAKS を指定して
今日は GC.compact のロジックの変更や定数の inline cache の無効化を細かく管理するようにする変更、zlib と rbs の更新などがありました。 [76572e5a7f] Matt Valentine-House 2022-01-06 22:29:03 UTC GC.compact でオブジェクトの slot を移動する時に移動すべきオブジェクトと移動先の空き slot を探すスキャンの順序を逆にするという変更。空きを探す際に page 内を sweep する処理を必要に応じてするので少し効率的にするため? チケットに貼ってある GIF アニメーションがとてもわかりやすいです。チケットをみると Variable Width Allocation により slot のサイズが大きい heap の compaction が未対応なのに対する修正も入っているみたいですが、
今日は主に正規表現のマッチ処理にタイマウトを設定できるようにする新機能の追加や TracePoing#enable にブロックを渡した時の target_thread のデフォルト値の変更などがありました。 [c67088dbae] Nobuyoshi Nakada 2022-03-29 09:42:00 UTC 拡張ライブラリ psych の extconf.rb にバンドルしている libyaml より外部ライブラリとしてインストール済みのものが使えるならそちらを優先するようにしています。 default gems なので他のバージョンの ruby と使っている場合の対応……かな? そういえば gem としてリリースされていた psych には libyaml のソースファイルはバンドルされてなかったのかな。 [b257034ae5] Burdette Lamar 2022-03-29
今日は macOS で大量のオブジェクトを確保するのが遅いというのでヒープサイズを大きくする変更や、標準添付ライブラリ reline の更新などがありました。 [239e71c0af] Hiroshi SHIBATA 2021-12-29 10:29:30 UTC 標準添付ライブラリ reline のテストで skip のかわりに omit を利用するように修正しています。 [002fa28599] Nobuyoshi Nakada 2021-12-29 07:15:36 UTC 大きな文字列の String#lines が macOS で遅くなっている、という現象があるらしくて、HEAP_PAGE_ALIGN_LOG という ObjectSpace のヒープを確保する時のバッファサイズを指定する定数を 16 に増やす(16KiB → 64KiB に増やす)ようにしています。 macOS
今日は IO まわりの C API の仕様変更や did_you_mean の更新、irb, reline の修正などのほかリリース用のツールの修正などがありました。 そして今夜 3.1.0 がリリースされました。 https://www.ruby-lang.org/ja/news/2021/12/25/ruby-3-1-0-released/ [548c8f5f7a] Samuel Williams 2021-12-24 13:26:06 UTC io.c の rb_io_maybe_wait() でイベントがなかった時の戻り値を Integer の 0 から Qfalse に修正しています。またついでに(?)拡張ライブラリ io/wait で rb_io_wait() の戻り値のチェックに RTEST() を使うようにリファクタリングしています。たぶん相互に直接関係はない変更ですよね?
今日は主に YJIT のマージと Refinements の仕様変更と import_methods メソッド追加、いくつかの標準添付ライブラリのバージョン更新がありました。 YJIT のマージは1年以上温められたブランチからマージされたので、今日のコミット数は 765 個となりました。さすがに全部コメントを書いていられないので YJIT マージぶんは固定コメントにしています。 [207a5a5bc1] Benoit Daloze 2021-10-20 19:41:45 UTC mspec の最新版を upstream からマージしています。 [a6c6eef04a] Benoit Daloze 2021-10-20 19:41:46 UTC rubyspec を upstream からマージしています。 [6aa1acb03d] Benoit Daloze 2021-10-20 19:4
今日は Hash リテラルに値を省略した記法の追加や、テスト用のライブラリに MiniTest のモジュールを利用していたのを Test::Unit 配下に吸収して利用するモジュール名を統一するようにする変更などがありました。 [3e038ab1c7] aycabta 2021-09-10 19:30:29 UTC irb で ":::" と3連続するコロンで自動補完が誤って "::" の続きとして候補を探してしまっていた不具合を修正しています。 [c09f8e56bc] git 2021-09-10 19:41:38 UTC version.h の日付更新 [967b9743fa] Burdette Lamar 2021-09-10 22:21:21 UTC Enumerable#to_a, #to_h, #inject の rdoc 用コメントの修正。inject の call-seq
今日は大量の gem がある時などの require のパフォーマンス改善の変更がありました。 [b360588cd3] Nobuyoshi Nakada 2021-07-12 16:03:26 UTC 大量の gem が存在するため $LOADED_FEATURES が大きくなると require が遅くなっていくのを低減するため、内部的にメンテナンスしている feature 名から $LOADED_FEATURE のインデックスのマッピングを保持するテーブルでファイルの拡張子の違いによる優先度を反映したソートをしておくことで不要な繰り返しの探索を避けられるようにしています。同じ feature name だと拡張子が .rb のほうが優先ですが先に .so などの拡張ライブラリのほうが先にヒットすると再度検索する必要があって遅くなっていたようです。 [ruby-core:92686]
今日はついに 3.0.0 がリリースされました。 https://www.ruby-lang.org/ja/news/2020/12/25/ruby-3-0-0-released/ そして master のバージョンは更新されて 3.1.0 の開発がはじまりました。 [c752d29bbf] Soutaro Matsumoto 2020-12-24 12:26:46 UTC bundled gem の rbs のバージョンを 1.0.0 に更新しています。 https://github.com/ruby/ruby/pull/3994 [bdbbfd1fa5] Nobuyoshi Nakada 2020-12-24 07:44:38 UTC Process::Status の実体である構造体 struct rb_process_status にメンバー error を復活させています。 子プ
今日は webrick を標準添付ライブラリから外す変更や Ractor 利用時のメモリ管理の調整、MJIT の linked list 管理の不具合修正などがありました。 [3156fb0f2c] Yusuke Endoh 2020-12-09 15:16:49 UTC fad3023e94c45e7f03478732f7641b6f39ba9d12 で同じテストメソッドを 2つ追加してしまっていたので 1つ削除しています。 [ruby-core:100312] [Bug #17218] [549118b3e2] git 2020-12-09 15:17:44 UTC version.h の日付更新 [bb489aca58] Kenta Murata 2020-12-09 15:24:36 UTC Memory View 機能の C API に rb_memory_view_get_it
今日は GC 時に自動的に GC.compact も実施するように設定する GC.auto_compact= メソッドの追加などがありました。 [79b242260b] Nobuyoshi Nakada 2020-11-02 13:48:28 UTC parse.y で magic comment の frozen-string-literal に不正な値が指定されてた時の警告を rb_compile_warning() を直接読んでたのを rb_warning2() というマクロ経由で呼ぶようにしています。拡張ライブラリ ripper で parse した時に警告を正しく扱えるようにするたみみたいですね。 [67b2c21c32] Aaron Patterson 2020-11-02 22:40:29 UTC GC.auto_compact= というメソッドを追加して GC 実行時に自動
今日はなんといってもお待ちかねの並列化機構 Ractor がコミットされました。 [79df14c04b] Koichi Sasada 2020-03-09 17:22:11 UTC みなさんお待ちかねの新しい並列化機構 Ractor がコミットされました。 [ruby-core:99449] [Feature #17100] Ractor については今日 RubyKaigi takeout でささださんが解説したセッションがあったので、そのうちアーカイブも公開されると思うので RubyKaigi の YouTube チャンネルに登録しておきましょう。 https://www.youtube.com/channel/UCBSg5zH-VFJ42BGQFk4VH2A/featured ざっくりと見所を探していくと、まず ractor.h で構造体 rb_ractor_t が定義されていて、こ
今日はバージョン番号を 2.8.0 から 3.0.0 に変更する matz のコミットやテストなどでのその対応がありました。 [585a659b1e] Burdette Lamar 2020-08-30 15:34:13 UTC Array の rdoc 用コメントで call-seq から alias のぶんを消したり不要なサンプルを消したり。 https://github.com/ruby/ruby/pull/3475 [9b88851c83] git 2020-08-30 15:34:36 UTC version.h の日付更新 [21c62fb670] "Yukihiro \"Matz\" Matsumoto" 2020-08-31 07:38:13 UTC include/ruby/version.h の RUBY_API_VERSION_{MAJOR,MINOR} を更新してバ
今日は => による右代入と Endless method definition という一行メソッド定義の記法という新しい文法が experimental というステータスで追加されました。またクラス変数で警告を出していた挙動を例外発生に変更しています。 [614d816a1f] Nobuyoshi Nakada 2020-04-10 01:37:15 UTC io.c の io_fwritev()、io_writev()、rb_io_writev() の argv 引数に const 修飾子を追加しています。 [230efaf2ae] git 2020-04-10 01:38:38 UTC version.h の日付更新 [63a5412db7] Nobuyoshi Nakada 2020-04-10 01:52:33 UTC fd0222caedf1be56faa004656bbf14
今日は matz によるコミットでバージョンが 2.8.0 に更新されました。また Hash#transform_keys に引数に Hash を受け取って変換を指示する機能が追加されました。 [537a1cd5a9] "Yukihiro \"Matz\" Matsumoto" 2019-12-26 01:55:58 UTC 毎年恒例となった matz による include/ruby/version.h の更新です。 暫定的に 2.8.0 に変更されています(次回リリースは 3.0.0 になる予定)。 あーそっか version.h の RUBY_VERSION は自動的に API VERSION を使うようになったから編集不要になったのか。 [dced0e5745] git 2019-12-26 01:58:26 UTC version.h の日付更新 [b25e27277d] Nob
今日はなんといっても組込みクラスのメソッドを ruby で実装してそこから C 実装の関数(builtin function)を呼び出すという機構を導入して、いくつかのクラスが ruby で定義される(具体的な実装は C の関数を呼ぶだけというものがほとんどですが)ようになっています。また object_id がこれまでの slot のアドレス(struct RVALUE 構造体のポインタ)を利用していたのを、単調増加する整数になるようにしたという変更もありました。 [d62abc47c8] Nobuyoshi Nakada 2019-11-07 14:33:45 UTC ext/ripper/tools/dsl.rb で警告抑制のため二重代入するようにしています。 [b99833baec] John Hawthorn 2019-11-01 00:21:01 UTC bd2b314a05a
今日は別のメソッドに引数をそのまま委譲するための記法 m(...) のような引数の書きかたの追加や Fiber#transfer の挙動のちょっとした変更のほか、NEWS ファイルの更新や整理がありました。 [f364564e66] Yusuke Endoh 2019-10-21 12:22:53 UTC Bignum な整数(今は Bignum というクラスはなくなったので内部的な表現が T_BIGNUM な Integer ということですが)の二乗を計算する時に整数の話によるオーバーフローを考慮しないといけない部分が残っていたのを修正しています。とても大きな数の二乗を計算するとその後の assertion にひっかかって rb_bug() で異常終了してしまう可能性があったようです。 [ruby-core:95453] [Bug #16269] [228ebdbf2f] Yusuke
今日は irb の循環参照のあるオブジェクトの表示の不具合修正や rubygems のバージョン更新などがありました。 [c3a6260302] Masatoshi SEKI 2019-10-14 13:56:37 UTC 8488d5b5b6cc9205e8e0641c514f1f2e38bf7d1e で drb で MonitorMixin を利用するようになってたのに require "monitor" が抜けてたので追加しています。 [978276a7d9] Jeremy Evans 2019-10-15 00:43:11 UTC File.readable?、File.writable?、File.readable_real?、File.writable_real?、File.executable?、File.rxecutable_real? というったメソッドの rdoc 用コ
今日は拡張ライブラリ json のいくつかの最適化や標準添付ライブラリ drb の修正や機能強化などがありました。 [26fae9aa9d] Takashi Kokubun 2019-10-13 16:59:43 UTC MJIT の JIT コンパイルのコンパイラを起動する mjit_worker を停止する時に static 変数 mjit_pause_wait_p を使って早期停止を促す処理を消しています。現状だとこれはもう不要になってそうな感じというのと、これから入れようとしている変更がこの処理と相性がよくないらしい。 [673f3842dd] git 2019-10-13 17:05:30 UTC version.h の日付更新 [183b421509] Takashi Kokubun 2019-10-13 21:11:02 UTC mjit_worker.c のコンパイル失敗時
今日は CI に Drone を使う設定の追加や RubyVM::InstructionSequence.compile でメインスクリプトとして compile していたのを require されたファイルや eval されている時のように? compile するようにダミーの context を渡すようにする変更などがありました。 [711c40ebdc] Yusuke Endoh 2019-10-03 16:29:21 UTC parse.y の struct parser_param から in_main というフラグ(トップレベル、とはちょっと違うのか。直接実行するスクリプト毎の最上位のみ?)を削除し、main のスクリプトの parse 時にも base_block を NULL にするようにしています。eval 系の時は base_block に値が入るらしい。 [b43af
次のページ
このページを最初にブックマークしてみませんか?
『ruby trunk changes』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く