ruby-trunk-changes 2021-05-07

今日は T_PAYLOAD 型という新たなオブジェクトの内部的な型の追加をしてオブジェクトの heap 上に複数の slot をまとめて確保する方法の追加や、RubyVM::AbstractSyntaxTree::Node から node_id を取得できるようにする機能の実験的実装の追加などがありました。

[ddc29e2989] Nobuyoshi Nakada 2021-05-06 13:04:14 UTC

364044e0909692315bd6c2f0e1d968ede9c2beb8 で標準添付ライブラリ net/http が stringio を require しなくなったので、rubyspec の net/http のテストで逆に StringIO を使ってるところで明示的に require を追加しています。

[8bbd319806] Matt Valentine-House 2021-03-30 12:34:14 UTC

オブジェクトの種類に T_PAYLOAD というのを追加して、ここを先頭にして(?) heap 内の連続した slot をまとめて確保するというのに使っているようです。struct RPayload の先頭メンバーの flags の一部のビット範囲を使って確保する slot 数を持つようにしています。Ractor 毎の slot 範囲を事前に予約する実装のために導入したのかな。複雑になってきたなぁ。ただし USE_RVARGC というマクロが定義された時だけ有効になるようにしているようです。

[d1bd4e233c] Matt Valentine-House 2021-03-30 12:36:58 UTC

8bbd3198068f5e8335ab01f0b29cdae225b25b5b の続きで class_alloc() で T_PAYLOAD を利用して rb_classext_t のためのメモリ領域をオブジェクト用の heap 上に slot と連続した領域に確保するようにしているようです。あーなるほどオブジェクトのための slot としてではなくて、オブジェクトに追加で必要になる領域も heap 上に置いちゃおうということなのか。

[b0b7751f3b] Matt Valentine-House 2021-04-28 13:56:02 UTC

misc/lldb_cruby.py の lldb_inspect で T_PAYLOAD 型オブジェクトの表示の対応を追加しています。

[99644514db] Nobuyoshi Nakada 2021-05-06 14:53:26 UTC

8bbd3198068f5e8335ab01f0b29cdae225b25b5b の変更の C のスタイルの修正や USE_RVARGC が定義されてる時だけ使われる関数の宣言を preprocessor の分岐でかこむ変更。

[0bbab1e515] Nobuyoshi Nakada 2021-05-06 15:04:36 UTC

無引数の関数の宣言などで明示的に f(void) のように void を書くスタイルに統一しています。

[550b02e479] git 2021-05-06 15:13:45 UTC

version.h の日付更新

[578e6416e7] Peter Zhu 2021-05-06 15:51:47 UTC

misc/lldb_cruby.py に 5a451c4b1f7f7bbd6607cb3f32f3ddd98e064971 で導入した dump_page の page 指定が正常かどうかチェックする is_valid メソッドで / による除算の結果が float になる(Python 3 系では)ので明示的に int に直すようにしています。

[ff69ef27b0] Yusuke Endoh 2021-04-30 09:54:46 UTC

compile.c の ADD_INSN() などのマクロに行番号を渡す時に行番号そのものを渡すのではなくて、対応する NODE を渡して、new_insn_core() の中で nd_line() で行番号を取り出すようにしています。さらに INSN::insn_info::node_id という構造体メンバーを追加してこの NODE の node_id の値も格納しておくようにしています。また EXPERIMENTAL_ISEQ_NODE_ID というマクロを定義してビルドすると RubyVM::AbstractSyntaxTree::Node#node_id メソッドを追加して ruby レベルでも node_id が取り出せるようにしています。NoMethodError の位置をより細かく取得できるようにするための布石だそうです。

ruby-trunk-changes 2021-05-06

今日は主に mmap() 利用につての判定の変更の続きや標準添付ライブラリ net/imapリファクタリング、標準添付ライブラリ timeout のちょっとした不具合の修正などがありました。

[3d5b6ddff8] Nobuyoshi Nakada 2021-05-05 14:54:36 UTC

M1 チップの macOS で PAGE_SIZE が定数マクロとしてでなく const 変数? として定義されている場合があるみたいで、メモリ確保に mmap() を使うかどうかの判定に PAGE_SIZE を preprocessor の分岐で利用していたのがうまく判定できなくなっていたそうなので configure 時に判定用のプログラムをコンパイルして判定して USE_MMAP_ALIGNED_ALLOC マクロを定義しておくようにしています。

[d2afb03287] git 2021-05-05 15:03:00 UTC

version.h の日付更新

[1921500511] Nobuyoshi Nakada 2021-05-05 15:29:20 UTC

3d5b6ddff8def49e59fb9a9ddd28a653498ae861 の続き。HAVE_MMAP マクロのチェックの条件が削られてしまってたので復活させています。

[23a98237df] Peter Zhu 2021-05-05 16:20:40 UTC

3d5b6ddff8def49e59fb9a9ddd28a653498ae861 の再修正。 PAGE_SIZE が使えるかどうかの判定で使うソースコードにヘッダファイルが足りてなくて判定に失敗する環境があったみたいなので修正しています。ついでに gc.c の preprocessor 分岐も変更してますが、defined(PAGE_SIZE) が復活されてるところがあって、これって -Werror=undef でひっかからないのかな。 defined だからいいのか。

[b655a3fa5b] Peter Zhu 2021-05-05 21:06:56 UTC

23a98237df28ad01d17b163eb650dfbd321b13ba の再修正。やっぱり PAGE_SIZE がマクロで定義されていない場合に sysconf(_SC_PAGE_SIZE) でメモリページサイズを取得して判定に使うようにしています。

[921d8ac99d] Nobuyoshi Nakada 2021-05-06 00:39:47 UTC

23a98237df28ad01d17b163eb650dfbd321b13ba の再修正。 configure で mmap() 利用の判定のためのビルド時に sys/user.h を追加したのが今度は sys/queue.h というヘッダで定義される LIST_HEAD というマクロの再定義の警告が発生してしまってたので macOS では使わないようにしています。

[a1fdc5f71c] Nobuyoshi Nakada 2021-05-06 02:15:24 UTC

3d5b6ddff8def49e59fb9a9ddd28a653498ae86123a98237df28ad01d17b163eb650dfbd321b13ba などの再修正。 configure で PAGE_SIZE が参照できるかの判定のためのプログラムで変数として実際に参照することまではせず、型宣言に使ってみてコンパイル時に参照できる定数かどうかだけ判定するようにしています。なにか違いがあるのかな。

[0dd9ac7721] Nobuyoshi Nakada 2021-05-06 02:38:14 UTC

3d5b6ddff8def49e59fb9a9ddd28a653498ae861 で追加した gc.c での PAGE_MAX_SIZE 定数マクロを使った判定が 23a98237df28ad01d17b163eb650dfbd321b13ba で削除されてたのを復活させています。いろんな環境で動くようにするのまじ大変ですね。

[f941dd5a9f] Nobuyoshi Nakada 2021-05-06 03:09:57 UTC

b655a3fa5b8d1a30565e19425c28a1cfd8631165macOS で PAGE_SIZE が使えない場合に sysconf(_SC_PAGE_SIZE) でメモリページサイズを取得するようにしていましたが、これは元々同じことをしてる箇所があったので Init_heap() の前のほうに移動して結果を変数へ格納しておいて使いまわすようにリファクタリングしています。

[a7f7479872] Takashi Kokubun 2021-05-06 06:13:26 UTC

標準添付ライブラリ erb の rdoc 用コメントの <%# の説明のところに、空白を入れて <% # のようにするとコメントとして扱かわれないという注意書きを追記しています。 [ruby-core:103690] [Bug #17846]

[331005812f] "nicholas a. evans" 2021-04-27 20:33:27 UTC

標準添付ライブラリ net/imap の lib/net/imap.rb から認証関連の実装を lib/net/imap/authenticators/ の配下に分割するリファクタリング

[912f39b2c3] "nicholas a. evans" 2021-04-27 21:49:22 UTC

標準添付ライブラリ net/imap の PLAIN タイプの認証の username, password などに NUL 文字が含まれてたらエラーにするなど規格(RFC4616)に沿ったチェック強化をしています。

[2fc91da86c] "nicholas a. evans" 2021-04-28 21:43:34 UTC

標準添付ライブラリ net/imap の rdoc 用コメントに認証タイプごとに参考 URL を追記しています。

[395a287736] "nicholas a. evans" 2021-05-03 21:07:36 UTC

標準添付ライブラリ net/imap から Net::IMAP::ResponseParser クラスの実装を lib/net/imap/response_parser.rb というファイルに切り出すリファクタリング

[affb51045c] "nicholas a. evans" 2021-05-03 21:13:03 UTC

同じく標準添付ライブラリ net/imap でレスポンスの解析に使う Struct を格納する定数群の定義を lib/net/imap/response_data.rb というファイルに分離するリファクタリング

[4dc7b82427] "nicholas a. evans" 2021-05-03 21:18:43 UTC

標準添付ライブラリ net/imap の Net::IMAP::RawData や Net::IMAP::Atom などのプロトコル上のコンポーネント? に対応するクラスの定義を lib/net/imap/command_data.rb というファイルに分離するリファクタリング

[337c0e312b] "nicholas a. evans" 2021-05-04 18:52:38 UTC

標準添付ライブラリ net/imap の Net::IMAP.encode_utf7 と Net::IMAP.decode_utf7 の実装を lib/net/imap/data_encoding.rb というファイルに分離するリファクタリング

[deae61e939] "nicholas a. evans" 2021-05-04 19:33:21 UTC

標準添付ライブラリ net/imapプロトコルのフラグに対応する定数の定義を lib/net/imap/flags.rb というファイルに分離するリファクタリング

[b0de2e7fe9] "nicholas a. evans" 2021-05-05 17:15:52 UTC

標準添付ライブラリ net/imap の Net::IMAP#validata_data と Net::IMAP#send_xxx_data といった名称のメソッド群の定義を lib/net/imap/command_data.rb に移動しています。

[5a02281fab] "nicholas a. evans" 2021-05-05 19:01:35 UTC

標準添付ライブラリ net/imap の rdoc 用コメントの追加や参照リンクの追記など。

[5de6f1ab47] Hiroshi SHIBATA 2021-05-06 05:16:41 UTC

標準添付ライブラリ net/imap の gemspec ファイルを lib/net/ の下から lib/net/imap/ の下に配置するように変更して、tool/sync_default_gems.rb の同期処理もこれに追随するようにしています。

[965719f5eb] Hiroshi SHIBATA 2021-05-06 06:24:49 UTC

標準添付ライブラリ net/imap の gemspec ファイルでバージョンを取得するためのファイルを探索する時に遡るディレクトリ数を1つ増やしています。 ruby リポジトリ上でのファイル配置に対応するためですね。

[364044e090] Kazuki Yamaguchi 2021-04-29 12:35:57 UTC

標準添付ライブラリ net/http で拡張ライブラリ stringio を require していたのがもう不要になっているということで削っています。

[822eb94563] Hiroshi SHIBATA 2021-04-14 03:15:25 UTC

標準添付ライブラリ strscan の gemspec ファイルで add_development_dependency を使ってたのを削っています。 Gemfile に書くのがいまどきということですね。またテストで skip を使ってたところを pend に変更しています。

[564ccd095a] Kenichi Kamiya 2021-03-31 05:56:28 UTC

標準添付ライブラリ strscan の StringScanner#charpos で byteslice メソッドを呼び出した後に戻り値をチェックせずに rb_str_length() に渡してて SEGV する可能性があった不具合を修正しています。 [ruby-core:103064] [Bug #17756]

[a42b7de436] Gannon McGibbon 2021-01-21 01:39:21 UTC

拡張ライブラリ strscan の rdoc 用コメントの iff を "if and only if" に変更しています。

[33b5e179a8] Jeremy Evans 2021-04-20 17:34:11 UTC

標準添付ライブラリ timeout が定義する例外クラス Timeout::Error の exception メソッドが super を呼び出してなかったので、raise に例外クラスのオブジェクトを渡しつつ第2引数でメッセージを上書きするように渡す(第1引数がクラスじゃなくても第2引数でメッセージが渡せたんだ、知らなかった)という使いかたをした時に他の例外と挙動が変わるのを修正しています。 [ruby-core:103502] [Bug #17812]

[44e8575ca6] Jeremy Evans 2021-05-03 15:31:59 UTC

標準添付ライブラリ timeout でデフォルトで例外クラスを指定せず対象の Thread 内で throw-catch を使った大域脱出(タイムアウト時の大域脱出を rescue で捕捉させないようにするため)のタグに使うオブエクトの生成を抑制して、例外オブジェクト自身をタグとして使うようにしています。まあ Object.new も ObjectSpace で無理矢理取り出せば catch できてしまうし、対象 Thread 内で普通にその例外オブジェクトは見えないと思うので変わりないか。

[120b835fae] Jeremy Evans 2021-05-03 15:38:54 UTC

標準添付ライブラリ timeout の blocking fiber 対応のために Fiber.current_scheduler を呼び出してるところで、古い ruby 対応のため respond_to? でチェックしてから呼び出すようにしています。

[f2d6fa16e1] Hiroshi SHIBATA 2021-05-06 08:19:41 UTC

標準添付ライブラリ prime のテストでコメントアウトされていた Ractor を使うテストを assert_ractor を利用して子プロセスで実行するようにしてコメントアウトをはずしています。

ruby-trunk-changes 2021-05-05

今日は主にビルド時のコンパイラオプションに -Werror=undef を追加して未定義警告のエラー化を行ない、それに伴なうビルドエラーの修正をする変更がありました。

[8b32de2ec9] Benoit Daloze 2021-04-29 12:14:52 UTC

configure でコンパイラオプションに加える警告関連のオプションに -Werror=undef を追加候補にするようにしています。未定義のシンボルの警告をエラー扱いにするというものですね。これ以降このオプション追加によるコンパイルエラー対応が続きます。 [ruby-core:103040] [Feature #17752]

[9e2483ee0b] Benoit Daloze 2021-04-29 11:15:19 UTC

8b32de2ec9b72d4c9ede19b70ec9497718fb25a6 の -Werror=undef 追加の対応で vm_dump.c で backtrace() という関数の有無のチェックを HAVE_BACKTRACE を直接いじらず USE_BACKTRACE というマクロを導入するようにリファクタリングしています。 [ruby-core:103040] [Feature #17752]

[229cbeba8c] Benoit Daloze 2021-04-29 12:29:57 UTC

coroutine/copy/Context.h および coroutine/ucontext/Context.h の未定義シンボルの警告対応。 stdint.h の include が必要だったみたいです。 [ruby-core:103040] [Feature #17752]

[68d6bd0873] Benoit Daloze 2021-04-29 12:31:05 UTC

同じく -Werror=undef 対応。あちこちの preprocessor による分岐の #if と #ifdef の誤用の修正や条件の追加修正など。 [ruby-core:103040] [Feature #17752]

[f1dcc3da5d] Benoit Daloze 2021-04-29 12:28:08 UTC

同じく -Werror=undef 対応。 include/ruby/internal/core/rbasic.h に RBIMPL_RVALUE_EMBED_LEN_MAX というマクロ定義を追加しています。コンパイラによって? enum の値が preprocessor で正しく評価されてないことがあったのが判明したみたいです。 [ruby-core:103040] [Feature #17752]

[59a92a84c8] Benoit Daloze 2021-04-29 13:02:19 UTC

拡張ライブラリ nkf と openssl でマクロを #if で使う時に定義済みかのチェックも追加するようにしています。これも -Werror=undef 対応みたいです。 [ruby-core:103040] [Feature #17752]

[fa7a712d46] Benoit Daloze 2021-04-29 13:03:46 UTC

拡張ライブラリで Ractor safe 宣言のために HAVE_RB_EXT_RACTOR_SAFE マクロを #if でチェックしてたのを #ifdef でチェックするように修正しています。 [ruby-core:103040] [Feature #17752]

[0764d323d8] Benoit Daloze 2021-04-29 13:12:44 UTC

同じく -Werror=undef 対応で HAVE_XXX マクロのチェックを #if にしてたのを #ifdef に修正しています。 [ruby-core:103040] [Feature #17752]

[f108bc32af] Benoit Daloze 2021-04-29 13:17:49 UTC

同じく HAVE_ATTRIBUTE_ERRORFUNC というマクロを #if でチェックしていたところを #ifdef でのチェックに修正。対応してない時に 0 に #define してるところがあったので削っています。これ削るよりは #undef にしたほうがいいのではないかな。 [ruby-core:103040] [Feature #17752]

[d09988502e] Benoit Daloze 2021-04-29 13:30:31 UTC

RBIMPL_HAS_BUILTIN___xxxx 系のマクロを未定義の時に明示的に 0 で定義しておくようにしています。HAVE_XXX とは違って逆にこっちは定義しておかないといけないみたいです。 [ruby-core:103040] [Feature #17752]

[3ca291c9ae] Peter Zhu 2021-05-04 13:37:02 UTC

Array の実装で配列のメモリ領域の capa を変更する時に transient heap を使っている場合には capa を小さくしようとした時に実際にはサイズ変更せず同じ領域を使い続けるようになっているのですが、その時 struct RArray の capa は小さい値に更新されるので、capa と実際のメモリ領域の上限が一致してない状態になって無駄になるので、ary_heap_realloc() という関数で調整後のサイズを返して、呼び元でその値を capa に設定しなおすようにして実際の領域サイズと一致するように保つようにしています。

[14c932e52d] git 2021-05-04 15:46:40 UTC

version.h の日付更新

[c809a8cae8] Jeremy Evans 2021-05-04 18:10:39 UTC

IO#ungetc や IO#ungetbyte の rdoc 用コメントに複数回呼ばれた時の挙動や引数に Integer を渡した時の扱いについて追記しています。 [ruby-core:85108] [Bug #14400]

[fd3a20348e] Burdette Lamar 2021-05-04 18:59:33 UTC

IO クラスの rdoc 用コメントに各メソッドについての短かい説明を追加しています。 https://github.com/ruby/ruby/pull/4440

[370949aad6] MSP-Greg 2021-05-04 15:31:19 UTC

標準添付ライブラリ net/ftp のテストで Errno::EPIPE を捕捉しているところが MinGW では Errno::ECONNRESET が発生することもあるとのことで rescue する例外クラスに追加しています。

[b57c7be6a9] Peter Zhu 2021-05-04 21:29:20 UTC

include/ruby/internal/fl_type.h で ENUM_OVER_INT をチェックしているところを #if から #ifdef に変更しています。 -Werror=undef 対応の続きですね。 [ruby-core:103040] [Feature #17752]

[45bcab3c84] Peter Zhu 2021-05-04 21:31:29 UTC

siphash.c で __LITTLE_ENDIAN と __BIG_ENDIAN というマクロが参照されているのが MinGW では未定義になってるらしく __MINGW32__ が定義されてる環境ではこれらのマクロを定義するようにしています。 [ruby-core:103040] [Feature #17752]

[3d2e7e2ab5] Peter Zhu 2021-05-04 21:33:30 UTC

FreeBSD でのビルドエラー対応として random.c での sys/param.h ヘッダファイルの include する条件に FreeBSD であることも追加しています。これも -Werror=undef で判明したエラーかな? [ruby-core:103040] [Feature #17752]

[46dd295a53] Peter Zhu 2021-05-04 23:57:24 UTC

thread_win32.c で USE_WIN32_MUTEX をチェックするのに #if を使ってたのを #ifdef を使うように修正しています。 [ruby-core:103040] [Feature #17752]

[44cff500a0] xtkoba 2021-05-04 22:45:23 UTC

win32/win32.c で _MSC_VER の範囲チェックする時に先に defined で定義されてることもチェックするようにしています。 [ruby-core:103040] [Feature #17752]

[5bde2e61db] Nobuyoshi Nakada 2021-05-05 00:41:07 UTC

configure で -Werror=undef を追加する時に古い GCC だと #if defined の後に続く #elif で定義されてるはずのマクロ参照をしても警告になるという不具合があるそうなので、その場合は -Wundef に留める(コンパイルエラーにはしない)ように緩めるようにしています。 [ruby-core:103040] [Feature #17752]

[e71c9ca529] Yusuke Endoh 2021-05-05 03:58:12 UTC

configure でコンパイラの組み込み関数 __builtin_expect の存在チェックを追加しています。これも -Werror=undef の対応のひとつで、明示的にチェックして HAVE_BUILTIN___BUILTIN_EXPECT マクロが定義されるようにしてあげないと ICC でのビルド時にコンパイルエラーになってたようです。 [ruby-core:103040] [Feature #17752]

ruby-trunk-changes 2021-05-04

今日はオブジェクト生成時のインスタンス変数用インデックステーブルの初期化を前倒しにする最適化やテストの修正などがありました。

[14ee263505] Nobuyoshi Nakada 2021-05-03 15:59:29 UTC

標準添付ライブラリ net/http のテストで TLS を使うもので mswin と MinGW で失敗するものを一時的に skip するようにしています。

[a6ff1dc6f9] git 2021-05-03 16:00:57 UTC

version.h の日付更新

[9a6226c61e] Aaron Patterson 2021-02-23 00:18:10 UTC

オブジェクトの確保時にインスタンス変数のインデックステーブルのサイズが埋め込みでは足りない時にオブジェクト生成時に同時に生成するようにしています。後で initialize の実行時にあふれて確保しなおすのよりこのほうが効率的だから、ということみたいです。ベンチマークも追加されてるけど、そんなに変わるのかな。と思ったけど速度よりはメモリ使用量を気にした最適化みたいでした。 https://github.com/ruby/ruby/pull/4216

[5a42ef496a] MSP-Greg 2021-04-28 15:55:55 UTC

標準添付ライブラリ net/http のテストでドメイン名に "localhost" や " 127.0.0.1" を使ってたところが Windows でうまくいかないことがあるようで定数を定義してこれを参照するようにしています。どこかで環境によってすりかえているのかなと思ったけど、差分のなかにはそういうところはないですね。たぶん本命の修正はこの次の 7a3dd05e21078ccc62c70a5047fcf6c128754fc7 で、この変更はついでのリファクタリングかなという気がします。

[7a3dd05e21] MSP-Greg 2021-04-28 17:26:01 UTC

rubyspec の標準添付ライブラリ net/http のテストで起動する WEBrick のサーバーのための設定で :BindAddress を 127.0.0.1IPv4 決め打ちにしていたのを localhost に変更しています。Windows でのテストのためとのこと。けどなんかここわざと IPv4 にしてたんだったような気もするんだよなぁ。 e7535c6eaa87813d6ce6591c200f1fce7ee16ae2 これなのでだいぶ昔のことですね。

[ef406a6c21] Nobuyoshi Nakada 2021-05-04 01:08:23 UTC

thread_win32.c の native_thread_init_stack() で MinGWGCC 11 で未初期化変数の警告が出るのを抑制するため VirtualQuery() という API の呼び出しを局所的に -Wmaybe-uninitialized の警告をオフにする pragma つきで定義した inline 関数でくるんで呼ぶようにしています。

[113ddf4d1d] Yusuke Endoh 2021-05-04 10:03:26 UTC

標準添付ライブラリ net/imap のテストで Solaris 上の CI でエラーになってたのを回避するため、ダミーサーバー上で socket を close する前に sleep 0.1 を追加して少し間をあけるようにしています。 [ruby-core:78550] [Bug #13018]

ruby-trunk-changes 2021-05-03

今日はソースコードのスタイルの修正だけでした。

[511b2f300f] xtkoba 2021-05-01 13:26:55 UTC

util.c の ruby_qsort() の中で中かっこなしの if 文の body の後に一行で続けて goto 文が書かれてて、非常にまぎらわしかったので改行を加えています。

[a029644845] git 2021-05-02 23:17:35 UTC

version.h の日付更新

ruby-trunk-changes 2021-05-01

今日は i386 cygwin 版向けの修正やドキュメントの修正などがありました。

[b2c54f5395] ima1zumi 2021-04-26 13:47:06 UTC

標準添付ライブラリ irb の gemspec ファイルで依存関係の reline のバージョンを 0.1.6 以降に更新しています。

[1f255adda9] xtkoba 2021-04-30 01:09:32 UTC

Time#strftime の実装で struct vtm::wday が unsigned で宣言されているのに < 0 という判定をしているところがあって GCC 11 で警告が出てたそうなので不要な条件を削っています。

[a9824a3113] Nick Kelley 2021-04-30 22:12:34 UTC

Hash#dig の rdoc 用コメントのサンプルで結果が間違って表記されてたところがあったのを修正。 [ruby-core:103677] [Misc #17842]

[a867d55279] git 2021-04-30 22:46:35 UTC

version.h の日付更新

[f64d7674f6] Adam Daniels 2021-03-02 17:33:20 UTC

Warning.warn の rdoc 用コメントの typo 修正。

[121fa24a34] xtkoba 2021-04-30 12:35:15 UTC

vm_core.h の構造体 struct iseq_inline_constant_cache_entry の宣言の部分で 32bit 版の cygwin 環境では #pragma pack を使ってこの構造体が slot に収まるようにしています。 [ruby-core:102379] [Bug #17606]

ruby-trunk-changes 2021-04-30

今日は主にテストやドキュメントの修正/追加がありました。

[19504d115d] Yusuke Endoh 2021-04-29 16:36:04 UTC

r57311 (58935eb8bdad1a42ce35efd0e0b0a9d7d43df299) で標準添付ライブラリ net/ftp に追加されてたテストで Net::SMTP がサーバー側からソケットが閉じられた時の挙動のためのダミーサーバーで close する前に一瞬 sleep するようにしています。Solaris の CI で close 時に EINVAL が発生することがあったとのこと。 [ruby-core:78550] [Bug #13018]

[dfca24af82] git 2021-04-29 16:40:10 UTC

version.h の日付更新

[5a451c4b1f] Matt Valentine-House 2021-04-29 16:02:02 UTC

misc/lldb_cruby.py の dump_page の引数に不正な page の指定があった時に警告を出力するようにしているようです。

[6ee55455a8] Burdette Lamar 2021-04-25 20:51:31 UTC

Time の rdoc 用コメントおよび doc/time/ 配下にドキュメントのファイルを追加しています。