ruby-trunk-changes 2021-12-24

今日は主に標準添付ライブラリの rubygems, bundler, reline, irb, bigdecimal, csv などの同期/更新や IO::Buffer のメソッド追加などがありました。もうすぐリリースなので変更が多くなりました。

[daf4a8884b] aycabta 2021-12-21 15:01:58 UTC

lib/reline/line_editor.rb にコメントを追加。

[726cc8122e] aycabta 2021-12-23 14:08:37 UTC

標準添付ライブラリ reline で半角カナの濁点/半濁点つきの文字を1つの grapheme として扱うため Reline::Unicode.escape_for_print にて判定を増やしています。

[4bb65ee4fe] aycabta 2021-12-23 15:16:31 UTC

標準添付ライブラリ reline の Reline::LineEditor#finish で複数の文字をまとめて 1つの文字(grapheme)として扱う時に表示幅が変化する可能性を考慮しているようです。

[547c27e9e7] aycabta 2021-12-23 15:41:46 UTC

標準添付ライブラリ reline に半角カナの扱いについてのテストを追加しています。

[2f2aa21238] git 2021-12-23 15:52:06 UTC

version.h の日付更新

[a8f4cc2bfa] Burdette Lamar 2021-12-23 16:27:10 UTC

IO#gets の rdoc 用コメントにサンプルを追加して説明を強化しています。 https://github.com/ruby/ruby/pull/5324

[03507498b6] Olle Jonsson 2021-10-15 12:42:49 UTC

拡張ライブラリ bigdecimal の例外メッセージの英文法の修正。

[c539cfd235] Kenta Murata 2021-10-27 08:29:40 UTC

拡張ライブラリ bigdecimal のテストを 03507498b6be06bea89343fba52f2736de76bd35 の変更に追随させて期待する例外メッセージのチェックを修正しています。

[ec478d947f] Jean Boussier 2021-11-09 11:56:45 UTC

拡張ライブラリ bigdecimal で T_BIGNUM 型の整数オブジェクトから変換する時に必要なバッファサイズを計算する時に符号のぶんが含まれない可能性があったのを修正しています。

[247d8d2815] Kenta Murata 2021-11-12 14:08:53 UTC

ec478d947f218e1b94856941135701fe37e88fbc で追加した拡張ライブラリ bigdecimal のテストのテストメソッドを改名して assertion のメッセージに GitHub の issue の参照を追加しています。

[70f2b62dfe] Kenta Murata 2021-11-12 14:18:27 UTC

拡張ライブラリ bigdecimal のテストでシステムの整数のサイズ(精度)を RbConfig::LIMITS を使って得るようにしています。ない時は拡張ライブラリ fiddle を使った代替実装で得ています。

[01b2ccaa95] BurdetteLamar 2021-10-14 18:57:36 UTC

拡張ライブラリ bigdecimal の rdoc 用コメントの手直し。

[5888d3030d] BurdetteLamar 2021-10-15 17:27:26 UTC

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

[973e508472] BurdetteLamar 2021-11-12 14:46:30 UTC

拡張ライブラリ bigdecimalBigDecimal#precision の rdoc 用コメントのサンプルをループを使って書いてあったものを1行ずつサンプルとその結果が対応がわかりやすいように展開して書くようにしています。

[44acab76af] BurdetteLamar 2021-11-12 15:14:09 UTC

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

[ed8ec5dcb3] BurdetteLamar 2021-11-12 15:27:52 UTC

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

[ed7f4c24d7] BurdetteLamar 2021-11-12 15:52:10 UTC

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

[b2a74948b6] Kenta Murata 2021-10-27 08:31:45 UTC

拡張ライブラリ bigdecimal のテストに次の 8ee8ac64239626a9adea4e02ba3f0c4be4895e36 で修正される浮動小数点数表記からの変換のテストを追加しています。

[8ee8ac6423] Kenta Murata 2021-11-18 01:59:12 UTC

拡張ライブラリ bigdecimalBigDecimal の Float からの変換で小数点以下に 0 が連続している時の処理に不具合があったのを修正しています。 https://github.com/ruby/bigdecimal/issues/192

[e1265c8198] Kenta Murata 2021-01-22 03:03:37 UTC

拡張ライブラリ bigdecimalBigDecimal#/ で必要な精度の計算にミスがあって精度が減ってしまうことがあった不具合を修正しています。 https://github.com/ruby/bigdecimal/issue/94 [ruby-core:82107] [Bug #13754]

[7b2cfce543] Kenta Murata 2021-01-22 04:49:46 UTC

拡張ライブラリ bigdecimalBigDecimal#divmod でも 7b2cfce543b876744544c8b43abdee3c72cab910 と同様に結果の精度の計算を修正しています。

[75f552e973] Kenta Murata 2021-01-22 04:50:26 UTC

拡張ライブラリ bigdecimalBigDecimal#divmod の精度計算をさらに修正しています。

[38e98cbdb7] Kenta Murata 2021-11-23 15:20:42 UTC

拡張ライブラリ bigdecimal の VpReallocReal() をマクロから static 関数に変更して確保した Real をオブジェクトに wrap するところまで同時に行うようにしています。realloc() 時にポインタが変化した時に追随していなかったみたいです。本当にそれで動いてたのかな。

[d905abb457] Kenta Murata 2021-11-25 05:55:29 UTC

拡張ライブラリ bigdecimalBigDecimal#precision が実際より小さな値を返す場合があった不具合を修正しています。

[e043829a7f] BurdetteLamar 2021-11-19 17:53:55 UTC

拡張ライブラリ bigdecimalBigDecimal#+ の rdoc 用コメントの強化や BigDecimal#add の rdoc 用コメント追加。

[de5c14d4d8] BurdetteLamar 2021-11-19 18:07:34 UTC

拡張ライブラリ bigdecimal の rdoc 用コメントの call-seq の修正。

[a8243d07e1] BurdetteLamar 2021-11-23 19:26:14 UTC

拡張ライブラリ bigdecimalBigDecimal#add の rdoc 用コメントのサンプルコードを追加しています。

[0c63aa11bc] BurdetteLamar 2021-11-25 16:42:34 UTC

a8243d07e16cea77dfc9cd323e7cbf8ba478f127 で追記した拡張ライブラリ bigdecimalBigDecimal#add の rdoc 用コメントのサンプルコードで BigDecimal.mode の引数を定数名を書いてたのを :half_up と Symbol リテラルを書くようにリファクタリングしています。

[aca96f7ec7] Kenta Murata 2021-11-25 05:51:13 UTC

拡張ライブラリ bigdecimalBigDecimal#scale というメソッドを新規追加しています。

[ea713009ba] Kenta Murata 2021-12-02 08:03:33 UTC

拡張ライブラリ bigdecimalBigDecimal#n_significant_digits の rdoc 用 コメントを追加しています。

[84ae7a5df9] Kenta Murata 2021-12-02 08:06:52 UTC

拡張ライブラリ bigdecimalBigDecimal#precision_scale というメソッドを新規追加しています。

[d0897e3f3a] Jean Boussier 2021-12-02 11:02:21 UTC

拡張ライブラリ bigdecimal の extconf.rb で gemspec ファイルからバージョンを取得する方法を変更しています。Gemfile に GitHubリポジトリから直接参照している時にうまくバージョンが取れてないことがあったみたいです。gemspec ファイルが再生成されると一旦ローカル変数に入れてるところが消えるので spec.version の行を切り出すようにしたみたいです。

[98918209b7] Kenta Murata 2021-12-09 12:35:33 UTC

拡張ライブラリ bigdecimalBigDecimal#div で第2引数の精度が有効に使われないケースがあったのを修正しています。

[0b8638cd74] Kenta Murata 2021-12-09 12:50:46 UTC

拡張ライブラリ bigdecimalBigDecimal_div2() に TODO コメントを追加しています。

[79712fc083] Kenta Murata 2021-12-09 13:24:12 UTC

拡張ライブラリ bigdecimalBigDecimal#quo にも第2引数に精度を受け付けるように拡張しています。

[0262f34905] Burdette Lamar 2021-12-21 08:17:16 UTC

拡張ライブラリ bigdecimal の rddoc 用コメントの全体的な手直し。

[680a4ebb3c] Kenta Murata 2021-12-21 09:40:45 UTC

拡張ライブラリ bigdecimal の gemspec ファイルでバージョンを 3.1.0 に更新しています。

[a1d9fbef05] Kenta Murata 2021-12-23 15:26:34 UTC

拡張ライブラリ bigdecimalBigDecimal#divmod の精度計算を再度修正しています。

[65d35502bd] Kenta Murata 2021-12-23 16:20:15 UTC

拡張ライブラリ bigdecimal の gemspec ファイルのバージョンを 3.1.1 に更新しています。

[eba05029b0] git 2021-12-23 17:30:04 UTC

NEWS の default gems のバージョン番号記載部分の bigdecimal のバージョンを更新しています。

[0b999bef29] Victor Shepelev 2021-12-23 20:58:13 UTC

String#unpack と String#unpack1 の rdoc 用コメントの offset キーワード引数の説明の記載位置を移動しています。 https://github.com/ruby/ruby/pull/5331

[69380c60ce] Kazuhiro NISHIYAMA 2021-12-24 00:05:12 UTC

README.ja.md の CI のバッジの記載を README.md に追随させています。

[9ccfc78346] Kenta Murata 2021-12-24 00:43:22 UTC

拡張ライブラリ bigdecimal の ext/bigdecimal/bigdecimal.c の未使用のローカル変数を削除しています。

[fed1629ada] zverok 2021-12-15 21:59:33 UTC

Struct から生成したクラスの keyword_init? や members などのクラスメソッドについての rdoc 用コメントを Struct のクラスメソッドとして rdoc に生成させるようにコメントアウトされたダミーのコードを追加しています。

[34deea3b42] zverok 2021-12-14 22:08:36 UTC

Refinement クラスについての rdoc 用コメントとそれを rdoc に認識させるためのダミーの関数や rb_define_method() を追加しています。

[de0523fedd] YO4 2021-12-23 16:54:09 UTC

irbirb_info 組み込みコマンドが Windows 環境で chcp コマンドを実行して codepage を得るところで結果を String#b で ASCII-8BIT にして出力の Encoding を無視して処理するようにしています。

[b0ad6cb371] Hiroshi SHIBATA 2021-12-24 00:32:59 UTC

rubygems と bundler のバージョンをそれぞれ 3.3.2 と 2.3.2 に更新しています。

[cf83ba1da7] zverok 2021-12-20 07:20:55 UTC

GC.measure_total_time などの新しい GC の統計情報についての rdoc 用コメントのマークアップ修正。

[ae770cc372] aycabta 2021-12-24 02:04:07 UTC

標準添付ライブラリ reline のテストで使う assertion メソッド assert_byte_pointer_size で不一致の時のメッセージに Encoding も表示するようにしています。

[e029560b22] git 2021-12-24 02:20:07 UTC

NEWS の default gems のバージョン記載の RubyGems と bundler のバージョンを更新しています。

[6050e3e2a6] Koichi Sasada 2021-12-24 03:26:21 UTC

複数 Ractor を利用している時に main ractor 以外ではクラス変数は参照できないという仕様ですが、inline cache に格納されているものが invalidate されていなかった時に main Ractor 以外からクラス変数へのアクセスがエラーになってなかったのを修正しています。 [ruby-core:105057] [Bug #18128]

[3a59abab08] aycabta 2021-12-24 04:58:19 UTC

標準添付ライブラリ reline の Reline::Windows.process_key_event でサロゲートペアの処理のためのチェックで char_code の範囲をビット演算でチェックしていたのを整数としての比較でチェックするように変更しています。ビット演算だけだと判定の範囲が間違ってて本当はサロゲートペアでないものもサロゲートペアとして判定してしまってたみたいです。

[097c4a2adf] Nobuyoshi Nakada 2021-12-24 05:12:53 UTC

tool/sync_default_gems.rb のコミットログの GitHub の参照を URL に置換するための正規表現で \b で単語境界もみるようにして誤検出を避けるようにしています。

[083cf6a577] Nobuyoshi Nakada 2021-12-24 05:24:45 UTC

tool/sync_default_gems.rb のコミットログの置換で GH-### のような記法にも対応するようにしています。

[47c53af168] Nobuyoshi Nakada 2021-11-04 00:02:47 UTC

標準添付ライブラリ csv のテストメソッド名の typo 修正しています。

[c70dc3cafb] adamroyjones 2021-11-18 21:20:09 UTC

標準添付ライブラリ csv でオプション col_sep に strip で指定された文字が含まれているなど矛盾があった時に例外を発生させるようにしています。

[d137ce50a1] Sutou Kouhei 2021-12-02 21:29:57 UTC

標準添付ライブラリ csv のバージョンを 3.2.2 に更新しています。

[56a5ae9f52] Sutou Kouhei 2021-12-02 21:30:01 UTC

標準添付ライブラリ csv で読み込み元が ARGF の時の不具合修正。

[4a5d372ca8] Sutou Kouhei 2021-12-24 01:18:18 UTC

標準添付ライブラリ csv で区切り文字が複数バイトの時に parse 結果の文字欠けることがある不具合を修正しています。 [ruby-core:105587] [Bug #18245]

[002ce9f515] Sutou Kouhei 2021-12-24 01:18:35 UTC

標準添付ライブラリ csv の parser で改行コードを引数に渡して IO#gets を呼び出すようにしています。少し速くなるはずだからとのこと。

[22ef4f6445] Sutou Kouhei 2021-12-24 01:44:11 UTC

4a5d372ca8902a649928eb0689aca7edcfaa07b6 の標準添付ライブラリ csv の不具合修正を revert しています。なにか別の不具合が誘発されていまったとのこと。

[1a1550ba5d] Sutou Kouhei 2021-12-24 01:55:10 UTC

標準添付ライブラリ csv のテストで大きな入力として準備するテキストの行数を 1024 から 512 に減らしています。大きすぎて GitHub Actions でエラーになることがあったみたいです。

[167dd73c6c] git 2021-12-24 05:41:11 UTC

NEWS の default gems のバージョン記述の csv のバージョンを追随させています。

[424800f707] Yusuke Endoh 2021-12-24 05:46:58 UTC

標準添付ライブラリ reline の半角カナのテストで入力時に 8bit 目を落とす変換を抑制して入力するヘルパーメソッドを新設してこれを用いるようにしています。 Windows 環境で meta キーつきの入力と誤判定される可能性があったようです。

[71e85ec9b5] Yusuke Endoh 2021-12-24 05:24:09 UTC

rubygems でファイルを IO#flock でロック取得する実装に変更したものが Solaris で動かなかったとのことで JRuby の時と同様に Solaris 環境でもファイルロックを利用しないようにしています。

[61ca29be1b] aycabta 2021-12-24 06:54:18 UTC

AppVeyor の設定で環境変数 RELINE_TEST_ENCODING を Windows-31J から UTF-8 に変更しています。 半角カナのテストのためかな?

[03f16d37bf] aycabta 2021-12-24 08:01:24 UTC

標準添付ライブラリ rdoc のバージョン番号を 6.4.0 に更新しています。

[f8a0ef30b2] aycabta 2021-12-24 07:26:17 UTC

拡張ライブラリ readline のシグナル処理のテストで子プロセスを待つのに Timeout.timeout によるタイムアウトを設定するようにしています。

[d81046b2d6] git 2021-12-24 08:12:56 UTC

NEWS の default gems のバージョン記述における rdoc のバージョンを追随させています。

[517964d57b] Nobuyoshi Nakada 2021-10-09 14:11:38 UTC

拡張ライブラリ readline のシグナルハンドラまわりのテストで readline と reline どっちを使ったテストなのかをメッセージに含めるための判定処理をヒアドキュメント内の埋め込み式から外に移動しています。

[106a0e5195] Hiroshi SHIBATA 2021-12-24 08:51:33 UTC

拡張ライブラリ readline の gemspec ファイル(readline-ext のほう)のバージョンを 0.1.4 に更新しています。

[35d779c57b] Hiroshi SHIBATA 2021-12-24 08:53:06 UTC

標準添付ライブラリの readline の gemspec ファイルのバージョンを 0.0.3 に更新しています。

[1706d1a7f3] Victor Shepelev 2021-12-24 08:55:09 UTC

Marshal.load の rdoc 用コメントにキーワード引数 freeze についての説明を追記しています。 https://github.com/ruby/ruby/pull/5332

[f2592f2812] git 2021-12-24 09:04:07 UTC

NEWS の default gems のバージョン記載の readline, readline-ext のバージョンを追随させています。

[15fab6fb17] aycabta 2021-09-19 13:24:43 UTC

標準添付ライブラリ reline の Reline::ANSI.set_default_key_bindings で Shift-TAB のキーバインディングを vi mode の時にも設定するようにしています。

[9de42d3b34] aycabta 2021-09-26 17:49:30 UTC

標準添付ライブラリ reline の emacs mode での Ctrl-u を em_kill_line という機能にマッピングしていたのを ed_kill_line に変更しています。 em は emacs の略で ed はラインエディタの ed (vi の祖先)かなぁ。

[fd60a235f5] aycabta 2021-09-26 17:32:12 UTC

標準添付ライブラリ reline の Reline::LineEditor#ed_kill_line と #em_kill_line の rdoc 用のコメントを追加しています。

[6c3cc9c58a] aycabta 2021-09-26 18:58:19 UTC

標準添付ライブラリ reline の Reline::LineEditor の #em_kill_line を #vi_kill_line_prev と改名しています。 em_kill_line という名前は alias としても残さないみたいですね。

[bad1e153d4] aycabta 2021-09-26 19:24:06 UTC

標準添付ライブラリ reline に 6c3cc9c58ab95e963d6255d719e2248cafef7b49 で改名することで消えた Reline::LineEditor#em_kill_line を再度別の実装として追加しています。カーソルの位置によらずその行全体を削除して kill ring に保存するという挙動をするようです。

[a9c59b13da] aycabta 2021-09-26 19:24:26 UTC

標準添付ライブラリ reline の bad1e153d485cf7b68981a78e78e23c3f118c5a8 で追加した Reline::LineEditor#em_kill_line の rdoc 用コメントを追加しています。

[fc5bc378e5] aycabta 2021-10-03 06:25:25 UTC

標準添付ライブラリ reline の Reline::LineEditor の alias で定義される編集コマンド群を private にしています。

[4fccefef05] aycabta 2021-10-03 09:31:36 UTC

fc5bc378e54bebc4ef254fa36c3736fbe2e17c43 で reline の Reline::LineEditor の alias によるメソッド群を private にしたのは revert しています。 2.5 では private alias_method のような書きかたができなかったので。

[acfe2f2655] Samuel Williams 2021-12-24 10:11:02 UTC

IO::Buffer の実装で rb_io_maybe_wait() が 0 を返した時の処理を修正しています。 https://github.com/ruby/ruby/pull/5340

[c87c027f18] Nobuyoshi Nakada 2021-12-21 07:31:43 UTC

configure で prefix を付加する対象の変数に $includedir を追加しています。 --prefix を指定した時の default gems の拡張ライブラリでヘッダも必要なもののインストールのためでしょうか。 [ruby-core:106355] [Bug #18373]

[67aab88a22] Akinori MUSHA 2021-12-24 11:06:23 UTC

拡張ライブラリ digest に upstream から 3.1.0 をマージしています。主に ext/digest/install_headers.rb を削除して gemspec のバージョン番号を抽出する処理を Gem::Specification.new のブロックの外に出す変更だけなので大きな変更はなさそう。

[babc200ee8] git 2021-12-24 11:10:13 UTC

NEWS の default gems のバージョン記載部分の digest のバージョンを追随しています。

[f279d41847] manga_osyo 2021-12-06 01:04:12 UTC

irb の RubyLex::Lexer::Elem の check_string_literal メソッドで token がない時に空文字列を返していたのを nil を返すように変更して、呼び元で safe guard 演算子を使って nil を許容するようにしています。警告抑制のためとのこと。

[5138ef3875] aycabta 2021-12-24 11:42:09 UTC

拡張ライブラリ readline のシグナルハンドラのテストでタイムアウト検出時に子プロセスを SIGKILL で殺すようにしています。確か f8a0ef30b20207aa57cce9537babcc283d8f6a4d で既に kill するようにしてたような気が……と思ったらそれはこの後の Process.waitpid2 の部分でのタイムアウトで、こちらはその前の出力待ちの時点でのタイムアウトでした。こっちで sigkill するなら Process.waitpid2 のほうはたぶんタイムアウトしなくなったでしょうね。

[0fbf1f193a] aycabta 2021-12-24 11:55:59 UTC

拡張ライブラリ readline のシグナルハンドラのテストで f8a0ef30b20207aa57cce9537babcc283d8f6a4d および 5138ef3875ca3ee7fc94cea536cb4f9cb50ea3fd のあたりのタイムアウトした時にメッセージにタイムアウトしたので SIGKILL で kill したことを表示するようにしています。

[4f74153846] Nobuyoshi Nakada 2021-12-24 10:52:44 UTC

eval_intern.h、file.c、io.c のコーディングスタイルの修正。