Hatena::ブログ(Diary)

PB memo このページをアンテナに追加 RSSフィード

2016-07-23 ruby-trunk-changes r55734 - r55734

[][]ruby-trunk-changes r55734 - r55734

今日は Check_Type() のインライン展開の変更のみでした。

nobu: r55734 2016-07-23 22:43:44 +0900

internal.h でオブジェクトの型チェックマクロ Check_Type() を rb_check_type() の呼び出しの代わりにインタプリタコア部分では同じ内容をマクロ展開するようにしています。また RB_TYPE_P() でチェックしたあと例外の発生のために Check_Type() を呼んでいたところがあったのでそこはチェックも Check_Type() にまかせるようにしています。

2016-07-22 ruby-trunk-changes r55720 - r55733

[][]ruby-trunk-changes r55720 - r55733

今日は rexml の不具合修正、String#dump が \uXXXX をエンコードする方法の変更などがありました。

nobu: r55720 2016-07-22 06:12:53 +0900

gc_start_internal() と rb_gc_start() で finalizing フラグをチェックして finalize_defered() を呼ぶ処理は rb_finalize_defered() で ATOMIC_EXCHANGE() を使った実装があるのでそれを呼ぶように変更しています。

svn: r55721 2016-07-22 06:12:54 +0900

version.h の日付更新。

nobu: r55722 2016-07-22 06:28:34 +0900

run_finalizer() で table の要素を処理する毎に rb_protect() で保護していたのをループ全体を TH_PUSH_TAG()/TH_POP_TAG() で保護して、失敗した要素のインデックスはスキップするようにして効率化しています。

hsbt: r55723 2016-07-22 09:20:10 +0900

LEGAL ファイルに lib/rdoc/generator/template/darkfish/css/fonts.css のファイルのライセンスについて追記しています。 [ruby-core:76255] [Misc #12550]

hsbt: r55724 2016-07-22 09:24:01 +0900

LEGAL ファイルに enc/trans/GB/GB*、 enc/trans/GB/UCS%GB*、 ext/json/generator/generator.c のライセンスについて追記しています。 [ruby-core:76428] [Bug #12598]

duerst: r55725 2016-07-22 10:32:20 +0900

r55706 で lib/unicode_normalize/tables.rb から UNICODE_VERSION を削除していましたが、元となる template/unicode_norm_gen.tmpl が修正されてなかったので再生成された時に戻ってしまっていたので template ファイルのほうも修正しています。 [ruby-core:76482] [Feature #12546]

kou: r55726 2016-07-22 10:39:49 +0900

標準添付ライブラリ rexml の REXML::Attribute#to_string でダブルクオート文字をエンコードする時の "e -> & quot と修正しています。 [ruby-core:76509] [Bug #12609]

kou: r55727 2016-07-22 10:43:17 +0900

r55726 の ChangeLog エントリのチケット参照に空白を追加。

duerst: r55728 2016-07-22 17:13:38 +0900

String#dump で Unicode文字列の非 ASCII 文字をエンコードする時にコードポイントが16進数で4桁以内に収まっている時に \u{XXX} ではなく \u0XXXX と4桁にきりあげてかっこを省略するようにしています。

nobu: r55729 2016-07-22 19:55:22 +0900

チケットによると PVS-Studio という静的コード解析ツールで報告された問題の対応でいくつか修正がまとめられています。 vm.c の vm_set_main_stack() で bind は必ず初期化されているのでチェックを削除しています。string.c ではサイズチェックで不要なポインタ演算をやめています。 win32/win32.c では関数型 create_symbolic_link_func の定義で戻り値の型を DWORD -> BOOLEAN に修正しています。 [ruby-core:76519] [Bug #12611]

hsbt: r55730 2016-07-22 23:23:12 +0900

r55718 の ChangeLog エントリでライセンスの記述を CC0 から Public Domain に修正しています。

normal: r55731 2016-07-23 01:43:12 +0900

標準添付ライブラリ webrick の CGIHandler でパラメータから HTTP_PROXY という環境変数をセットするのはキャンセルするようにしています。 [ruby-core:76511] [Bug #12610]

svn: r55732 2016-07-23 01:43:13 +0900

version.h の日付更新。

nobu: r55733 2016-07-23 04:06:07 +0900

RTEST() NIL_P() といったマクロで Qnil のかわりに RUBY_Qnil という prefix つきのマクロを使うようにしています。 RUBY_Qnil なんてあったのか、知らなかった…。

2016-07-21 ruby-trunk-changes r55714 - r55719

[][]ruby-trunk-changes r55714 - r55719

今日は NEWS ファイルと LEGAL ファイルの更新、missing/ の一部のソースコードの更新などがありました。

nobu: r55714 2016-07-21 06:00:30 +0900

NEWS ファイルに r55709 と r55710 の Enumerable#uniq と Enumerator::Lazy#uniq の追加について追記しています。 [ruby-core:68969] [Feature #11090]

nobu: r55715 2016-07-21 06:15:19 +0900

r55709 の Enumerable#uniq の rdoc 用コメントに説明を追記しています。 [ruby-core:68969] [Feature #11090]

usa: r55716 2016-07-21 07:52:14 +0900

r55701 で Unicode 用データファイルをダウンロードするディレクトリを enc/unicode/data の下のバージョン毎のサブディレクトリに変更したので svn:ignore の property を変更しています。

usa: r55717 2016-07-21 08:25:11 +0900

enc/unicode/data/8.0.0 の svn:ignore property に追加しています。

hsbt: r55718 2016-07-21 21:54:09 +0900

LEGAL ファイルに Public Domain (CC0) のライセンスのファイルリストに追加しています。 [ruby-core:76254] [Bug #12549]

hsbt: r55719 2016-07-21 22:27:02 +0900

missing/strlcat.c と missing/strlcpy.c を OpenBSD から新しいものに更新して、ライセンスも変更になっていたので LEGAL にも反映させています。 [ruby-core:74487] [Misc #12205]

2016-07-20 ruby-trunk-changes r55707 - r55713

[][]ruby-trunk-changes r55707 - r55713

今日は Enumerable#uniq と Enumerator::Lazy#uniq という新規メソッドの追加がありました。

nobu: r55707 2016-07-20 17:35:25 +0900

ary_add_hash() と ary_add_hash_by() から Hash に要素がなければ追加するという処理を rb_hash_add_new_element() という関数に切り出しています。

svn: r55708 2016-07-20 17:35:26 +0900

version.h の日付更新。

nobu: r55709 2016-07-20 17:39:12 +0900

Enumerable#uniq というメソッドを追加しています。 ブロックなしなら each の値で、ブロックつきならブロックの評価値を元に重複を排除した配列を返します。重複があった場合は最初の要素が採用されます。この点(最初の要素が採用される)はチケットをみても意図的みたいなので仕様だと思います。つまり将来的にころっと変わるようなものではないと思います。 NEWS ファイルにも記載が欲しいですね。 [ruby-core:68969] [Feature #11090]

nobu: r55710 2016-07-20 17:44:08 +0900

r55709 の続きで今度は Enumerator::Lazy#uniq が追加されています。 なるほどー、無限リスト(でなくてもいいけどとても大きいリスト)から重複を省いて最初の N 個を取り出す、とか確かに使いどころありそう…かも。 [ruby-core:68969] [Feature #11090]

kazu: r55711 2016-07-21 00:58:59 +0900

r55709 のテストの typo 修正。しかし r55706 の lib/unicode_normalize/tables.rb の UNICODE_VERSION 削除が意図せず revert されてしまっていますね。

svn: r55712 2016-07-21 00:59:00 +0900

version.h の日付更新。

kazu: r55713 2016-07-21 01:00:12 +0900

r55711 の意図しない UNICODE_VERSION の復活を revert しています。

2016-07-19 ruby-trunk-changes r55705 - r55706

[][]ruby-trunk-changes r55705 - r55706

今日は Module#constants に false を渡した時の不具合修正がありました。

nobu: r55705 2016-07-19 15:39:01 +0900

Module#constants の引数に false を渡して継承/include している Class/Module の定数は含めないようにすると private に指定した定数が含まれてしまう不具合を修正しています。これは、確かに不具合ですね。安定版で直すかは悩ましいところですが…. [ruby-core:75338] [Bug #12345]

duerst: r55706 2016-07-19 18:21:18 +0900

lib/unicode_normalize/tables.rb から UNICODE_VERSION の定義を削除しています。 RbConfig::CONFIG['UNICODE_VERSION'] に格納するようにしているので不要になったようです。 [ruby-core:76251] [Feature #12546]