ruby-trunk-changes 2021-07-18

今日は主に拡張ライブラリ openssl の更新がありました。利用する OpenSSL と LibreSSL の最低バージョンの引き上げや多数メソッドの新規追加などがありました。

[e0e12202c7] Nobuyoshi Nakada 2021-07-18 02:40:21 UTC

rubyspec の C API のテストのための拡張ライブラリで fd0df9c4fb36597e5e3f500670b29dbd77a14eca で deprecated にした C API rb_iterate() のかわりに rb_block_call() を利用するように変更しています。

[ed1e5663a4] git 2021-07-18 03:40:58 UTC

version.h の日付更新

[01fcb8f45b] Rick Mark 2021-04-01 19:29:21 UTC

拡張ライブラリ openssl に OpenSSL::BN#abs メソッドを追加しています。また OpenSSL::BN#+@ が self をそのまま返していたのを複製したオブジェクトを返すようにしています。

[decce40da7] Kazuki Yamaguchi 2021-04-02 13:08:13 UTC

拡張ライブラリ openssl の OpenSSL::BN.new と OpenSSL::BN#to_s の rdoc 用コメントに説明を追記しています。

[cd002305f0] Kazuki Yamaguchi 2020-08-04 14:14:44 UTC

拡張ライブラリ openssl の依存ライブラリを OpenSSL の 1.0.2 以降または LibreSSL の 3.1 以降として、古いバージョンのための代替実装などを削除しています。

[50332c4071] Kazuki Yamaguchi 2020-08-06 06:24:42 UTC

拡張ライブラリ openssl で SSL_CTX_set_ecdh_auto() という API を利用する条件として OpenSSL とリンクしていてそのバージョンが 1.0.2 以前(つまり 1.0.2 のみ)の時だけになるよう preprocessor 分岐の条件を追加しています。

[88d64418dd] Kazuki Yamaguchi 2020-08-06 06:35:30 UTC

拡張ライブラリ openssl で TLS_method() という関数を利用するのを OpenSSL 利用時のみにしていましたが LibreSSL 利用時にも使うようにしています。

[b7a908af34] Kazuki Yamaguchi 2020-08-21 08:33:25 UTC

拡張ライブラリ openssl で Thread safe にするためのロック取得のためのコールバック群の利用を CRYPTO_lock() という関数の存在チェックで制御していたのを LIBRESSL_VERSION_NUMBER と OPENSSL_VERSION_NUMBER だけで判定するように変更しています。

[1706302be5] Kazuki Yamaguchi 2020-06-12 05:12:59 UTC

拡張ライブラリ openssl の OpenSSL::PKey::PKey#sign の整数オーバーフローによるエラー時のメモリリークを修正しています。

[e2014d0354] Kazuki Yamaguchi 2021-04-02 14:58:48 UTC

拡張ライブラリ openssl のリファクタリング。 pkey_ctx_apply_options() という関数を追加しています。

[8cfe92b8a2] Kazuki Yamaguchi 2020-07-18 11:40:39 UTC

拡張ライブラリ openssl の OpenSSL::PKey::PKey#sign と #verify に Hash でオプションを引数として渡せるようにしています。キーワード引数じゃないんだなぁ。

[595644e4f6] Kazuki Yamaguchi 2021-04-04 15:30:01 UTC

拡張ライブラリ openssl の OpenSSL::PKey::PKey.generate_key がシグナルの受信など続行可能な割り込みの時にも処理を止めてしまっていたのをリトライするように修正しています。

[098985a5e6] Kazuki Yamaguchi 2020-05-17 11:48:23 UTC

拡張ライブラリ OpenSSL::PKey::DH.generate と OpenSSL::PKey::DH#generate_key! メソッドを C 実装から ruby 実装に移動しています。

[b8dcf9c8fd] Kazuki Yamaguchi 2020-05-17 11:48:23 UTC

拡張ライブラリ openssl の OpenSSL::PKey::RSA.generate の実装も C 実装から ruby 実装に移動しています。

[38436d1f5c] Kazuki Yamaguchi 2020-05-17 13:14:03 UTC

拡張ライブラリ openssl の OpenSSL::PKey::DSA.generate の実装も C 実装から ruby 実装に移動しています。

[436aecb520] Kazuki Yamaguchi 2021-04-04 15:39:04 UTC

拡張ライブラリ openssl の ossl_generate_cb_2() という関数が各種 PKey の generate メソッドの ruby 実装への移動で不要になったので削除しています。

[5d1693aac5] Kazuki Yamaguchi 2020-05-17 09:25:38 UTC

拡張ライブラリ openssl の OpenSSL::PKey の各種クラスの to_text メソッドの実装を共通の親クラス OpenSSL::PKey::PKey に定義して EVP_PKEY_print_xxxx() という関数群を利用するように変更しています。OpenSSL 1.0.0 以降で追加された API とのこと。

[3fe8387950] Kazuki Yamaguchi 2021-04-15 10:11:32 UTC

拡張ライブラリ openssl の OpenSSL::PKey::{DH,DSA,RSA} の public_key メソッドの実装を ruby 実装に移動しています。

[6d71918d94] Kazuki Yamaguchi 2020-07-10 05:34:51 UTC

拡張ライブラリ openssl で OpenSSL 1.1.1 で追加された EVP_PKEY_check() という関数を一部の OpenSSL::PKey の check_key メソッドで利用するようにしています。

[593164c2be] Aaron Patterson 2021-04-15 23:53:47 UTC

拡張ライブラリ openssl の OpenSSL::Buffering に getbyte メソッドを追加しています。 OpenSSL::SSL::SSLSocket が通常の Socket と同じメソッドを備えるようにするため。

[29ad4ab3d0] Ryuta Kamizono 2021-04-25 15:31:08 UTC

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

[a01daab656] Kazuki Yamaguchi 2021-05-19 08:58:18 UTC

拡張ライブラリ openssl の OpenSSL::PKCS7.new や OpenSSL::X509::Certificate.new などで DER 方式と PEM 方式どちらも受付けるものが常に DER として先に parse しようとしてみるようにしています。PEM のほうが寛容なので DER 方式を PEM 方式として読むと単に無視されてしまう可能性があるみたいです。

[1146a94aee] Samuel Williams 2021-05-21 20:47:20 UTC

拡張ライブラリ openssl に OpenSSL::X509::Certificate.load メソッドおよび load_file メソッドを新規追加しています。

[eac7fd57f8] Kazuki Yamaguchi 2021-05-25 08:31:08 UTC

拡張ライブラリ OpenSSL::PKey::{RSA,DSA,DH} の構成要素をセットする代入記号つきメソッドを削除しています。対応する OpenSSL の関数群がなくなったため。

[87458ff2ae] Kazuki Yamaguchi 2020-05-18 11:06:16 UTC

拡張ライブラリ OpenSSL::PKey::PKey#encrypt と #decrypt メソッドを追加しています。

[cbc560e38f] Kazuki Yamaguchi 2021-05-25 09:43:29 UTC

拡張ライブラリ openssl に 8cfe92b8a249465457ebef1d49b9e14a9fdaaddd で OpenSSL::PKey::PKey#sign や #verify の options 引数を追加した時の rdoc 用コメントに追記したバージョンを 2.3 から 3.0 に変更しています。次のリリース時に openssl.gem のバージョンを 3.0 系にすることにしたみたいです。

[4ebff35971] Kazuki Yamaguchi 2020-05-22 07:10:35 UTC

拡張ライブラリ openssl に OpenSSL::PKey::PKey#sign_raw および #verify_raw、#verify_recover メソッドを追加しています。あらかじめ渡すデータを hash 計算したものを渡すことを前提とした API みたいです。

[857a177b03] Kazuki Yamaguchi 2020-05-18 11:24:08 UTC

拡張ライブラリ openssl の OpenSSL::PKey::RSA#private_encrypt と #public_encrypt、#private_decrypt と #public_decrypt メソッドを新規追加しています。 それぞれ RSA の公開鍵と秘密鍵による暗号化/復号を簡単にできるようにしています。

[0c23e4a7aa] Kazuki Yamaguchi 2020-07-10 04:43:20 UTC

拡張ライブラリ openssl の OpenSSL::PKey::EC#dsa_sign_asn1 と #dsa_verify_asn1 メソッドを ruby 実装に移動して 4ebff35971d499f4ddd13f48bff0444f77d63421 で追加した sign_raw と verify_raw を利用するようにしています。

[5fc2912e60] Kazuki Yamaguchi 2020-07-10 04:51:18 UTC

拡張ライブラリ openssl の OpenSSL::PKey::DSA#syssign, #sysverify の実装も ruby 実装に移動して sign_raw と verify_raw を利用するように書きかえています。

[3d37e5d11c] Yusuke Endoh 2021-02-16 09:21:51 UTC

拡張ライブラリ openssl に OpenSSL::BN#set_flags と OpenSSL::BN#get_flags メソッドを新規追加しています。OpenSSL の side channel attack の対策としてフラグを設定する機能が追加されたようでそれを ruby レベルでも使えるようにしたということみたいです。

[4f7c3f631a] Vinicius Stock 2021-02-25 23:18:44 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket の例外発生時に例外メッセージに peer の IPアドレスを含めるようにしています。

[70f0a802fe] Kazuki Yamaguchi 2021-06-25 11:27:14 UTC

拡張ライブラリ openssl の gemspec から add_development_dependency を削除しています。

[11651ab703] Yusuke Nakamura 2021-06-27 07:37:18 UTC

拡張ライブラリ openssl の OpenSSL::KDF.hkdf の rdoc 用コメントにサンプルコードを追記しています。

[3975840780] Benoit Daloze 2021-07-06 17:25:22 UTC

拡張ライブラリ openssl で rb_iterate() を使っているところが残ってたので rb_block_call() を使うように書きかえています。

[3f1d8a18ea] Samuel Williams 2021-06-19 01:47:16 UTC

拡張ライブラリ openssl で rb_io_maybe_wait_readable()/rb_io_maybe_wait_writable() という C API (こんなのあったっけ……)を使っていたところをバージョンに応じて rb_io_wait_readable()/rb_io_wait_writable() を使うようにした wrapper 関数 io_wait_readable()/io_wait_writable() を定義してこれを利用するようにリファクタリングしています。

[bd356c6899] Kazuki Yamaguchi 2021-07-18 09:04:25 UTC

拡張ライブラリ openssl の行末の空白除去。

[803eb1ee83] Nobuyoshi Nakada 2021-07-13 15:51:53 UTC

load.c の features_index_add_single() で st_lookup() の引数に直接 & 演算子によるポインタ化とキャストしたものを渡してたのを一旦 st_data 型の変数を使うようにしています。

[ab37e6ee7e] Nobuyoshi Nakada 2021-07-18 10:55:07 UTC

cont.c の C の関数定義のコーディングスタイルの修正。

[56d983697f] Nobuyoshi Nakada 2021-07-18 10:55:33 UTC

object.c の rb_opts_exception_p() 内の配列変数宣言に const 修飾子を追加しています。

[23c4b93e54] Bruno Arueira 2021-06-17 22:42:45 UTC

拡張ライブラリ racc の gemspec ファイルの spec.files からテストやサンプルのファイルを削っています。

[9b972310fa] Benoit Daloze 2021-07-06 16:23:01 UTC

拡張ライブラリ racc の extconf.rb に rb_block_call() の存在チェックを追加しています。

ruby-trunk-changes 2021-07-17

今日は主に 1行 pattern match の構文で experimental 警告を出していたのをやめる変更がありました。

[eed5e8f796] Kazuki Tsujimoto 2021-07-17 02:13:52 UTC

3.1 から pattern match の "=>" 演算子や後置 in による一行 pattern match の文法は experimental の警告を出さないようにしています。

[f36a5a7624] git 2021-07-17 02:16:40 UTC

version.h の日付更新

[503fa1620c] Kazuhiro NISHIYAMA 2021-07-17 04:16:48 UTC

eed5e8f796ab18e2e0a436dab83e35504ae3ded0 の変更に追随して rubyspec の -W オプションのテストで experimental の警告を出力するのに 1行 pattern match の構文を利用していたのを Kernel#warn にキーワード引数で category: :experimental を渡すことで実現するように書き換えています。

[2a5b5ff49a] Kazuhiro NISHIYAMA 2021-07-17 04:24:08 UTC

503fa1620c1da74a15831bf864320cae4b17dc56 と同様に eed5e8f796ab18e2e0a436dab83e35504ae3ded0 の変更に追随して Warning[] の機能のテストでも experimental の警告を出力させるのに 1行 pattern match を利用してたので Kernel#warn の category キーワード引数を利用するように書き換えています。

[f11f9fc921] Kazuhiro NISHIYAMA 2021-07-17 04:24:23 UTC

同じく eed5e8f796ab18e2e0a436dab83e35504ae3ded0 の変更に追随して rubyspec でそもそも 1行 pattern match が experimental であるというテストがあったので 3.1 以降は実行しないようにしています。

[4885c44bca] Kazuki Yamaguchi 2021-07-17 04:37:28 UTC

Fiber クラスの rdoc 用コメントの行頭が # になってるところがあったので修正しています。

ruby-trunk-changes 2021-07-16

今日は rubygems と bundler の更新や Ractor 利用時のメモリリーク修正、Integer.try_convert メソッドの新規追加などがありました。

[33bea3bdff] Nobuyoshi Nakada 2021-07-15 12:30:15 UTC

1a637544166eca6b917fb6f32baeb771f4914b7a の Struct が生成したクラスのクラスメソッド keyword_init? で Struct.new に明示的に keyword_init キーワード引数に ture/false 以外のオブジェクトが渡されてた場合に対応するように? しています。 [ruby-core:104410] [Feature #18008]

[3e7a7fb28a] Nobuyoshi Nakada 2021-07-15 12:33:39 UTC

1a637544166eca6b917fb6f32baeb771f4914b7a で追加した Struct で生成したクラスの keyword_init? メソッドは keyword_init キーワード引数が指定されずに生成された場合は nil を返すようにしています。 [ruby-core:104410] [Feature #18008]

[119697f61e] Peter Zhu 2021-06-29 18:32:28 UTC

rb_gc_force_recycle() で mark フラグを記録している bitmap のクリアする条件が判定していたのを修正しています。 [ruby-core:104443] [Bug #18014]

[4a627dbdfd] Peter Zhu 2021-06-29 18:32:50 UTC

Ractor 利用時にパフォーマンスのために追加さえた Ractor ごとに管理されているオブジェクトの slot が返却されなくて再利用できずメモリリークしていたのを修正しています。 [ruby-core:104443] [Bug #18014]

[e5fe48646c] Peter Zhu 2021-06-29 18:32:54 UTC

4a627dbdfd1165022fa9e716ba845e937b03773d の続きで gc_page_sweep() に struct heap_page::free_slots と freelist の要素数が一致していることを確認するチェックを RGENGC_CHECK_MODE が真の時に実行するようにしています。 [ruby-core:104443] [Bug #18014]

[feec80a362] git 2021-07-15 15:49:08 UTC

version.h の日付更新

[456d0019dd] aycabta 2021-07-14 07:27:17 UTC

irb のテストで出力のチェック用の正規表現で空白を \s で表現するようにしています。

[f1035248af] aycabta 2021-07-15 14:42:11 UTC

irb のテストで irb_info コマンドで Windows 版の時 code page (chcp コマンドの出力)も出力するようにしています。

[fa87f72e1e] Jeremy Evans 2021-05-13 22:31:46 UTC

pattern match の文法の式の値を埋め込む "^" の後にグローバル変数インスタンス変数、クラス変数が書けなくなってたのを書けるように文法を拡張しています。 [ruby-core:102851] [Feature #17724]

[95f8ffa5f6] Jeremy Evans 2021-07-15 17:04:17 UTC

Hash のメソッド群 except, merge, reject, select, slice, transform_values など新しい Hash オブジェクトを返すものが compare_by_identity でキーの同一性で比較するようにした Hash に対しても通常の Hash を返してしまっていたので、receiver の compare_by_identity のフラグを保持した Hash を返すようにしています。 [ruby-core:103071] [Bug #17757]

[25689024cf] Nobuyoshi Nakada 2021-07-16 02:23:36 UTC

fa87f72e1e84e2b55516be188f00434a683b924c の pattern match の文法拡張についての NEWS の記述でサンプルコードがコードとして表示されるようにマークアップを追加しています。 [ruby-core:102851] [Feature #17724]

[55a79b648c] Hiroshi SHIBATA 2021-07-16 04:50:15 UTC

lib/ruby2_keywords.gemspec のバージョンを 0.0.5 に変更しています。3.1 の添付のバージョンが 1.0.0 以降になってしまうとまずいみたいなので巻き戻しています。

[6073a8bdc0] Samuel Williams 2021-07-16 03:43:57 UTC

rb_funcallv() および rb_funcallv_kw() に VM_ASSERT() で現在の Thread が GVL を確保していることを確認するようにしています。拡張ライブラリでうっかり GVL 解放中に ruby の呼び出しがありえる API を呼んだりするとありえるか。

[29ed9d1aaa] Nobuyoshi Nakada 2021-07-15 12:08:57 UTC

標準添付ライブラリ error_highlight のテストで一時ファイルの閉じ忘れがあったのを修正しています。

[bbaebbf529] Jared Beck 2021-07-08 15:27:50 UTC

rubygems の Gem::Uninstaller で default gem の削除時に特別なメッセージを出力するようにしています。

[227c2deff4] David Rodríguez 2021-07-12 08:30:16 UTC

bundler の依存関係解決時に gemspec の development_dependency と Gemfile に書かれた依存関係が重複してた時の処理に問題があったようで修正していますがよくわからない。

[44ba77d16d] Andre Arko 2021-07-13 09:25:21 UTC

bundler の生成するリポジトリでの Gemfile.lock ファイルの PLATFORM に arm64-darwin-20 を追加しています。 M1 Mac での対応ですかね。

[5cce96891e] Andre Arko 2021-07-13 09:12:00 UTC

bundler のテストの :focused というタグがついてた spec のひとつからタグを外しています。

[a3d2200b2a] Andre Arko 2021-07-13 09:25:09 UTC

bundler の plugin ロード時に名前が空だったら無視するようにしています。

[c5f78ade5a] Andre Arko 2021-07-13 09:13:48 UTC

bundler の plugin 管理のサブコマンドで bundle plugin uninstall 時のフックを呼ぶ機能が動いていなかったのを修正しているようです。

[71d3c9bbfa] David Rodríguez 2021-07-13 11:00:02 UTC

bundler の bundle plugin install --help で bundle install のヘルプメッセージが表示されてしまっていたのを修正。

[650a65c6fc] Masafumi Koba 2021-07-15 11:25:12 UTC

rubygems で FileUtils 利用時に require "fileutils" するようにしています。

[eee709595c] Yusuke Endoh 2021-06-17 02:34:20 UTC

IO.read、IO.foreach、IO.binread、IO.write、IO.binwrite などのメソッドの rdoc 用コメントの call-seq に File を receiver として呼ぶ形式も追加して、パイプが使えるのは IO を receiver として呼んだ場合と明記しています。そういう実装なんでしたっけ。File 以外の IO を継承したクラスでもパイプは無効なんだっけ。

[301d194ee3] Nobuyoshi Nakada 2018-10-07 04:02:46 UTC

Integer.try_convert メソッドを追加しています。今までなかったんだっけ。 to_int による変換が可能なら変換して、なかったら nil を返します。 [ruby-core:89301] [Feature #15211]

[fd0df9c4fb] Benoit Daloze 2021-07-06 16:52:29 UTC

C API rb_iterate() を DEPRECATED_BY() つきで宣言して利用時に警告が出るようにしています。 [ruby-core:104520] [Misc #18025]

ruby-trunk-changes 2021-07-15

今日は Struct の生成したクラスに keyword_init? というクラスメソッドを追加する変更や拡張ライブラリ fiddle のテストの再修正などがありました。

[2fa3209a35] Nobuyoshi Nakada 2021-07-14 13:00:56 UTC

67897762cf3cabad99effd636b50a2db26fb0f3f で追加した拡張ライブラリ fiddle の Fiddle::Handler#file_name のテストでファイルシステムが大文字小文字を無視する場合は casecmp? でチェックするように修正しています。

[c67c83fb68] Nobuyoshi Nakada 2021-07-15 00:19:58 UTC

67897762cf3cabad99effd636b50a2db26fb0f3f2fa3209a350f21f31d65e0d85f9903244d40f8f1 のテストのさらに追加修正で libc のファイル名を得るのに File.realpath を通してシンボリックリンクを解決しておくようにしています。

[0d74ddc5ff] git 2021-07-15 00:26:19 UTC

version.h の日付更新

[f347b586fb] Nobuyoshi Nakada 2021-07-15 00:49:56 UTC

さらに 67897762cf3cabad99effd636b50a2db26fb0f3f で追加したテストを修正して Fiddle::Handle#file_name が nil を返した時に許容するようにしています。そのかわり macOS でテストメソッド自体の定義を省略していたのはやめています。

[8f62f12c35] Patrik Ragnarsson 2021-07-15 06:38:39 UTC

NEWS の --backtrace-limit オプションについての記述の typo 修正。

[645616c273] Yusuke Endoh 2021-07-15 07:41:54 UTC

fork(2) の呼び出し時の rb_thread_atfork() の呼び出しを rb_f_fork() や pipe_open()、rb_daemon() などから個別に呼んでたのをその直前の rb_fork_ruby() の中で呼ぶようにしています。リファクタリングですが ruby レベルで fork 時のコールバックを設定できるようにしようというチケットがあって、その地均しのようです。 [ruby-core:103400] [Feature #17795]

[2d9aacf644] 卜部昌平 2021-07-15 07:46:59 UTC

include/ruby/encoding.h から rb_enc_casefold() という存在しない関数の宣言を削除しています。

[3ce2bf4d90] 卜部昌平 2021-07-15 07:49:55 UTC

include/ruby/encoding.h から rb_interned_id_p() という存在しない関数の宣言を削除しています。

[1a63754416] hkdnet 2021-07-15 09:14:27 UTC

Struct が生成したクラスのスラスメソッドに keyword_init? というメソッドを追加して、Struct からクラスを生成する時に keyword_init: true が渡されたかどうかを ruby レベルで取得できるようにしています。 [ruby-core:104410] [Feature #18008]

[835c63cd88] "NARUSE, Yui" 2021-07-15 09:21:49 UTC

1a637544166eca6b917fb6f32baeb771f4914b7a の Struct の keyword_init? メソッにド追加についてテストの追加と NEWS への追記をしています。 [ruby-core:104410] [Feature #18008]

ruby-trunk-changes 2021-07-14

今日は rubygems と bundler の更新や拡張ライブラリ fiddle の機能追加などがありました。

[29f6f79e73] xtkoba 2021-04-29 14:26:16 UTC

include/ruby/internal/memory.h の ruby_nonempty_memcpy() という inline 関数の定義/宣言を RBIMPL_SYMBOL_EXPORT_BEGIN() と RBIMPL_SYMBOL_EXPORT_END() で囲んで明示的に公開関数にするようにしています。 [ruby-core:103323] [Bug #17788]

[896bbb9fad] Hiroshi SHIBATA 2021-07-13 11:58:08 UTC

rubygems と bundler を upstream からマージしています。

[57a743efa4] git 2021-07-14 01:48:29 UTC

version.h の日付更新

[818c74b7f4] Kenta Murata 2021-07-14 02:26:52 UTC

拡張ライブラリ fiddle に Fiddle::Handle#to_ptr というメソッドを新規追加しています。その名の通り共有ライブラリを dlopen した struct dl_handle の ptr を Fiddle::Pointer で wrap して返すメソッドのようです。 https://github.com/ruby/fiddle/pull/87

[169529a0c0] Nobuyoshi Nakada 2021-07-14 06:38:55 UTC

昨日の bb868f4814c09c978f20f224c5e99656bc8b9bee40d45ab093fbd03fa71a5f3ca1982166f12693ef で拡張ライブラリ fiddle で MemoryView が使えるかどうかの判定の方法を変更してた続きで HAVE_RUBY_MEMORY_VIEW_H でヘッダがあるかどうかで分岐するようにしてさらに不要になる関数の定義などもこの preprocessor 分岐で囲むようにしています。 https://github.com/ruby/fiddle/pull/86

[67897762cf] Kenta Murata 2021-07-14 06:51:26 UTC

拡張ライブラリ fiddle の Fiddle::Handle#file_name というメソッドを新規追加しています。その名の通り実行環境で可能であれば対象のライブラリのファイル名を返すようです。 https://github.com/ruby/fiddle/pull/88

ruby-trunk-changes 2021-07-13

今日は主に拡張ライブラリ fiddle の更新や標準添付ライブラリ error_highlight のタブ対応などがありました。

[9df712a0e2] Samuel Williams 2021-07-13 06:46:32 UTC

rb_obj_is_fiber() の宣言を internal/cont.h から include/ruby/internal/intern/cont.h に移動して公開関数にしています。

[b18f6fff69] git 2021-07-13 07:28:57 UTC

version.h の日付更新

[23c8bc367c] Yusuke Endoh 2021-07-13 07:47:35 UTC

標準添付ライブラリ error_highlight のマーカーを表示する時にタブを空白に変換しておくことでタブのせいでずれるのを防ぐようにしています。

[5fd5d71a4b] Yusuke Endoh 2021-07-13 07:53:52 UTC

標準添付ライブラリ error_highlight でスクリプトファイルの末尾に改行がないファイルだった時のことを考慮して最後に改行を加えるようにしています。

[f9c559a0a2] Nobuyoshi Nakada 2021-07-13 10:05:50 UTC

tool/sync_default_gems.rb を --message-filter オプションつきで実行してコミットメッセージの内容をフィルタリングする機能で GitHub の pull request の参照を URL に展開するようにしています。

[4c039a2ea0] Nobuyoshi Nakada 2021-07-13 10:36:52 UTC

tool/sync_default_gems.rb の --message-filter 機能で改行コードが CR+LF だった時に CR を削るようにしています。

[c0f9191ab6] Sutou Kouhei 2021-04-19 07:48:17 UTC

拡張ライブラリ fiddle のバージョンを 1.0.9 に更新しています。

[d1eeb9fec9] Sutou Kouhei 2021-04-20 01:58:23 UTC

拡張ライブラリ fiddle の Windows での WSAGetLastError() でエラーを取得する機能を追加しています。

[303ab5da8b] Sutou Kouhei 2021-04-20 02:07:27 UTC

拡張ライブラリ fiddle の d1eeb9fec953c41ebaf312d7a56948bca43e9f93 で追加したテストで dlopen を呼んでたところを Fiddle.dlopen と receiver を明示するように修正しています。

[5516d74ad2] Sutou Kouhei 2021-04-20 02:11:16 UTC

拡張ライブラリ fiddle のテストに Windows 版での Fiddle.win32_last_socket_error を利用するテストを追加しています。

[37d16bb9dc] Sutou Kouhei 2021-04-20 02:17:25 UTC

拡張ライブラリ fiddle の d1eeb9fec953c41ebaf312d7a56948bca43e9f93 で追加したテストで使ってる文字列リテラルをシングルクオートからダブルクオートを使うように変更しています。

[8c905349bb] Sutou Kouhei 2021-04-20 02:17:38 UTC

同じく拡張ライブラリ fiddle の d1eeb9fec953c41ebaf312d7a56948bca43e9f93 で追加したテストで Fiddle::Function.new に渡す型の引数で TYPE_LONG を負の値にして渡すように変更しています。

[9988f6ac4e] Sutou Kouhei 2021-05-19 21:29:26 UTC

拡張ライブラリ fiddle の Fiddle::MemoryView#to_s というメソッドを追加しています。 MemoryView が示してるメモリ内容をそのままマッピングした文字列オブジェクトを返すみたいです。 https://github.com/ruby/fiddle/issues/74 https://github.com/ruby/fiddle/pull/78

[10e26cfa76] Sutou Kouhei 2021-06-17 04:36:18 UTC

拡張ライブラリ fiddle に Fiddle::MemoryView#release メソッドおよび Fiddle::MemoryView.export メソッドを追加しています。release は対応するメモリ領域を明示的に解放し、export はブロックつきで呼ぶとそのブロック内でのみメモリ領域を確保する MemoryView を作成するようです。 https://github.com/ruby/fiddle/issues/79 https://github.com/ruby/fiddle/pull/80

[9f86e50e1e] Sutou Kouhei 2021-06-17 04:40:11 UTC

拡張ライブラリ fiddle の Fiddle::Pointer#to_ptr で引数が文字列オブジェクトの時に StringValuePtr() で変換後のオブジェクトを wrap という変数に再代入しておくようにしています。共有文字列などの場合にオブジェクトが変わることがあるのでそれに追随するため。

[70b0318646] Sutou Kouhei 2021-06-18 00:29:46 UTC

拡張ライブラリ fiddle の Fiddle::MemoryView で 10e26cfa76468dea6f828dbe8031b5ffcff543cb の変更で struct memview_data::view::obj が Qnil の状態を未初期化として扱うようにしたので Fiddle::MemoryView#initialize の実装で例外発生時に Qnil をセットしておくように修正しています。

[a2c9e1b58a] Sutou Kouhei 2021-06-19 00:44:36 UTC

拡張ライブラリ fiddle のバージョンを 1.1.0 に更新しています。

[5c0d8c6369] Aaron Patterson 2021-07-01 00:35:04 UTC

拡張ライブラリ fiddle の Fiddle::CStruct.offsetof メソッドを追加して構造体内のレイアウト上での先頭からの位置を返すようにしています。 https://github.com/ruby/fiddle/pull/83

[bb868f4814] Sutou Kouhei 2021-07-05 01:45:48 UTC

拡張ライブラリ fiddle で MemoryView が使えるかどうかを RUBY_API_VERSION_MAJOR が 3以降かどうかで判定するようにしています。ヘッダのチェックだと誤って利用中の ruby とは別の ruby のヘッダをみてしまうかもしれないから、みたいなことが書かれてますが、それ間違えてたら RUBY_API_VERSION_MAJOR も間違う気はする。 https://github.com/ruby/fiddle/issues/84

[472d8c5555] Nobuyoshi Nakada 2021-07-11 20:26:58 UTC

拡張ライブラリ fiddle の gemspec ファイルの required_ruby_version を 2.5.0 以降に変更しています。

[a5d6ea9266] Yusuke Endoh 2021-07-13 11:29:30 UTC

標準添付ライブラリ error_highlight の 23c8bc367c6d700789a4059b831606966efb674c のタブ対応のテストで利用するファイルを binmode: true で開くようにしています。Windows で改行コードが変換されないようにかな。

[40d45ab093] Nobuyoshi Nakada 2021-07-13 11:32:13 UTC

bb868f4814c09c978f20f224c5e99656bc8b9bee の拡張ライブラリ fiddle で MemoryView を有効にするかどうかの判定を HAVE_RUBY_MEMORY_VIEW_H マクロによるチェックに再度変更しています。

[1d03c7da04] aycabta 2021-07-13 12:21:35 UTC

標準添付ライブラリ irb の builtin command measure の実装の設定可能な type について lib/irb/init.rb で設定している MEASURE_PROC のキーが対応してる旨コメントを追記しています。

[cb955dc9ac] Nobuyoshi Nakada 2021-07-13 12:34:28 UTC

ext/fiddle/depend を更新しています。

ruby-trunk-changes 2021-07-12

今日は標準添付ライブラリ error_highlight のマルチバイト文字を含むスクリプトをハイライト対象から外す変更などがありました。

[6504ca006b] Nobuyoshi Nakada 2021-07-12 03:10:16 UTC

コマンドラインオプション --dump=parsetree や --dump=parsetre_with_comment で構文木をダンプする時に NODE の nd_node_id() で取得した ID も表示するように追加しています。

[0895d57d31] git 2021-07-12 04:45:15 UTC

version.h の日付更新

[028441d22f] Samuel Williams 2021-07-12 04:28:43 UTC

拡張ライブラリ socket の Windows 以外の環境で fd が socket かどうかチェックするために fstat(2) を呼ぶのを rsock_init_sock() から bsock_s_for_fd() に移動して、不明な fd から Socket オブジェクトを作る時にだけチェックを実施するようにしているようです。

[8b01d16ad6] Yusuke Endoh 2021-07-12 07:47:24 UTC

標準添付ライブラリ error_highlight でハイライトするエラー発生箇所にマルチバイト文字が含まれていたら無視するようにしています。

[84fea8ee39] Yusuke Endoh 2021-07-12 07:48:28 UTC

8b01d16ad661a02157311a6a24f415713d69a8a4 の変更に追随して標準添付ライブラリ error_highlight のテストでマルチバイト文字を含むコードの時の表示のテスト結果からエラー箇所の指摘部分を消しています。