ruby-trunk-changes 2022-08-12

今日は Integer#ceildiv という余剰を切り上げる除算のメソッドの新規追加や bundled gems の拡張ライブラリビルドのためのビルドプロセス変更の追随などがありました。

[c361cf44c0] Burdette Lamar 2022-08-11 13:51:04 UTC

doc/rdoc/markup_reference.rb の rdoc 用コメントのサンプルの先頭に # が置かれてたのを削るなどの整形。

[49517b3bb4] Jeremy Evans 2021-02-26 20:14:48 UTC

String#inspect が Unicode の U+0085 という制御文字をエスケープせずに表示してしまうので特別扱いしてエスケープさせるようにしています。 [ruby-core:98231] [Bug #16842]

[a677aa0fcf] git 2022-08-11 15:47:48 UTC

version.h の日付更新

[8a3f401b24] Burdette Lamar 2022-08-11 16:43:39 UTC

doc/rdoc/markup_reference.rb のサンプルの文章を変更しています。

[5e3e4bc984] Burdette Lamar 2022-08-11 20:08:57 UTC

doc/rdoc/markup_reference.rb の文字の修飾についての記述の変更やセクション分けのレベルの修正など。

[d9f1b8baa3] Yusuke Endoh 2022-08-12 05:04:04 UTC

標準添付ライブラリ error_highlight の ErrorHighlight.spot の rdoc 用コメントに Limitation のセクションを追加して複数行のスクリプト片は処理できないことを明記しています。

[04815ea968] Nobuyoshi Nakada 2022-08-12 04:38:21 UTC

tool/rbinstall.rb で RbInstall::GemInstaller#build_extensions メソッドを再定義するかどうかを configure のオプションや環境変数 DESTDIR の指定有無によって変えてたのをやめています。ビルドプロセスの変更により不要になったみたいです。

[a3a6d2d9a3] Nobuyoshi Nakada 2022-08-12 04:40:36 UTC

同じく tool/rbinstall.rb で bundled gems を gem パッケージからインストールするためのコードを消しています。

[9a11d50dc7] Nobuyoshi Nakada 2022-08-12 01:18:38 UTC

include/ruby/internal/encoding/ctype.h の戻り値が bool の関数の Doxygen 用コメントの retval の記述を 0/1 でなく true/false に変更しています。

[a201cfd0cd] Nobuyoshi Nakada 2022-08-12 04:36:11 UTC

include/ruby/internal/encoding/ctype.h に rb_enc_iscntrl() という ONIGENC_IS_CODE_CNTRL() の wrapper となる inline 関数を追加しています。

[cd1a0b3caa] Nobuyoshi Nakada 2022-07-12 07:44:57 UTC

RUBY_ABI_VERSION というマクロがリリースパッケージ版では定義されないようにしているみたいです。うーんこういう開発版と安定版とで preprocessor でコードが変わるようなことをするとリリース時に急に不具合が出たりビルドできなくて困ることがある(RUBY_DEVEL をデフォルトで定義しなくしたのもたぶんそういう動機だと思う)ので消さなくてもいいような。

[4165fd0e76] Kouhei Yanagita 2022-05-27 06:46:46 UTC

Numeric#ceildiv および Integer#ceildiv というメソッドを追加しています。余剰が出たら切り上げた整数を返す除算ですね。たしかに(特に整数で) (n-1)/x+1 みたいなことをよくするので、便利そうですね。 Complex では undef しています。また Numeric に追加したメソッドは次で消しているので、最終的に Integer のみ追加みたいです。

[24e33b84b5] Kouhei Yanagita 2022-07-21 09:57:13 UTC

4165fd0e763439421296fbc95d754ad53e6ae84f で追加したメソッドのうち Numeric#ceildiv のほうは削除しています。

[803a072630] Kouhei Yanagita 2022-07-22 03:05:16 UTC

4165fd0e763439421296fbc95d754ad53e6ae84f で追加した Integer#ceildiv ですが C 実装から ruby 実装に変更しています。そのほうが高速なのでとのこと。

[844a0edbae] Nobuyoshi Nakada 2022-08-11 13:24:47 UTC

拡張ライブラリ ripper で EOF を受け取った後で再度読み込みを続ける(端末からの読み込みだと Ctrl-D とかで明示的に EOF を送信できるのでありえる)のをやめるように修正しています。 [ruby-core:109474] [Bug #18962]

[b2205cd45c] Nobuyoshi Nakada 2022-07-14 08:39:03 UTC

Kernel#fork などの呼び出し時にコールバックとして呼ばれる Process._fork メソッドの呼び出しを Process._fork が再定義されているかをチェックしてされていなければ rb_funcall() によるメソッド呼び出しを介さず直接関数呼び出しするように最適化しています。

error.c に可変長引数の va_start()/va_end() を利用して warn_vsprintf() を呼び出す処理をまとめた with_warn_vsprintf() というマクロを導入して使いまわすようリファクタリングしています。