ruby-trunk-changes r63545 - r63557

今日は Enumerator#size の実装のオーバーフロー対策や標準添付ライブラリ rss と rexml の default gem 化などがありました。

hsbt: r63545 2018-06-01 22:10:37 +0900

common.mk に ast.o から id.h への依存関係を追加しています。

normal: r63546 2018-06-02 06:23:20 +0900

gc.c の enum memop_type の各値を指定していたのを先頭だけ指定するようにしています& 0-origin にしています。 0 との比較には専用の命令があるからこのほうがちょっとコードサイズが減るぞ、とコミットログにあって、さすがコードサイズ削減マニアだなぁ。

svn: r63547 2018-06-02 06:23:21 +0900

version.h の日付更新。

normal: r63548 2018-06-02 06:56:11 +0900

thread_pthread.c で pthread_condattr_setclock() の前に pthread_condattr_init() を呼んで、エラーだったら pthread_condattr_setclock() を呼ぶのを抑制するようにしています。 OpenBSD では先に pthread_condattr_init() が必須だったみたいです。 [ruby-core:87345] [Bug #14807]

naruse: r63549 2018-06-02 09:51:43 +0900

Enumerator#count の実装で T_IMEMO の共用体 u3.cnt の型にあわせて整数の変換を INT2NUM() を LONG2NUM() に修正しています。 [ruby-core:87340] [Bug #14805]

hsbt: r63550 2018-06-02 10:14:24 +0900

標準添付ライブラリ rss に .gemspec ファイルを追加して default gem 化しています。独立したリポジトリができたようです。 https://github.com/ruby/rss

nobu: r63551 2018-06-02 11:39:34 +0900

r63549 の続きっぽいですが Enumerator#size のための struct MEMO::u3::cnt を Integer に変換する際にULONG2NUM() で unsigned long として扱うことでオーバーフロー対策しています。 また他にも int として扱ってたところもあったのでそこも修正。 [ruby-core:87348] [Bug #14805]

hsbt: r63552 2018-06-02 15:02:51 +0900

標準添付ライブラリ rexml も .gemspec ファイルを追加して default gem 化しています。

hsbt: r63553 2018-06-02 16:04:28 +0900

r63552 で追加した rexml.gemspec の require_relative のパスを修正しています。

nobu: r63554 2018-06-02 16:50:18 +0900

r63551 のさらに続き。 unsigned long でもあふれたらどうするのかな、と思ってたらさっそく struct MEMO::u3.value を使って Bignum に切り換える処理を追加しています。このため imemo_count_up() という関数を導入しています。これでメモリの許すかぎり大きな Enumerator の size が呼べますね。 [ruby-core:87340] [Bug #14805]

hsbt: r63555 2018-06-02 17:36:00 +0900

test/ruby/test_default_gems.rb というテストを追加して default gem の .gemspec ファイルを Gem::Specification.load で読み込んで成功するかどうかチェックするようにしています。

svn: r63556 2018-06-02 17:36:01 +0900

r63555 で新規追加したファイルの svn property 設定。

nobu: r63557 2018-06-02 21:17:16 +0900

make commit でリポジトリからの更新を取り込む前に sed で common.mk と Makefile.in の @VAR@ のような変数参照を消したり Makefile.in の all-incs の依存関係の記述を消するようにしています。うーん謎だ。