Hatena::ブログ(Diary)

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

2017-08-18 ruby-trunk-changes r59614 - r59617

[][]ruby-trunk-changes r59614 - r59617

今日は String#* で NUL 文字で埋めた文字列を作る時専用の高速化などがありました。

naruse: r59614 2017-08-18 01:34:40 +0900

String#* で、receiver が NUL 文字1文字だけの時("\0" で埋めた文字列バッファ用途などで作りたい時)に ZALLOC_N() でバッファを確保する方法で高速化しています。ゼロクリアされた文字列が欲しい時は 0.chr * len が最高速になりそう。

svn: r59615 2017-08-18 01:34:40 +0900

version.h の日付更新。

nobu: r59616 2017-08-18 08:31:41 +0900

r59612 の bit field の型を enum にする変更を revert しています。unsigned ではないといけなかったので enum 型じゃだめだったみたいです。

shugo: r59617 2017-08-18 14:16:05 +0900

net/imap のテストでサーバー起動する時のアドレスを "127.0.0.1" に決め打ちにしていたところを Addrinfo.tcplocalhost を名前解決したアドレスを使うように修正しています。 [ruby-dev:50208] [Bug #13825]

2017-08-17 ruby-trunk-changes r59609 - r59613

[][]ruby-trunk-changes r59609 - r59613

今日は Refinement で alias 作成されたクラスで同じ alias をすると警告が出る不具合の修正などがありました。

kazu: r59609 2017-08-17 21:31:10 +0900

.editorconfig というファイルでファイル名に ** でマッチさせていたところを * 1つに修正しています。

svn: r59610 2017-08-17 21:31:11 +0900

version.h の日付更新。

nobu: r59611 2017-08-17 21:33:41 +0900

数値リテラルの 1i や 1r のような Complex や Rational 用の suffix の処理の parser_number_literal_suffix() で literal_flush() を呼び出していたのを parser_yylex() に移動してエラー時にのメッセージにトークンを表示できるようにしています。

nobu: r59612 2017-08-17 23:36:57 +0900

method.h の struct rb_method_definition_struct の定義で bit field のフィールドの型を int から rb_method_type_t という enum 型に変更しています。bit field の型を enum にできるんですね。

nobu: r59613 2017-08-17 23:58:11 +0900

Refinements である Module の refine ブロック内で alias 作成されていたのと同じ名前のメソッドを、元の Class で alias 作成すると再定義の警告が出ていたのを修正しています。 [ruby-core:82385] [Bug #13817]

2017-08-16 ruby-trunk-changes r59599 - r59608

[][]ruby-trunk-changes r59599 - r59608

今日は machine stack overflow の rescue 時の不具合修正や拡張ライブラリ digest の default gem 化などがありました。

naruse: r59599 2017-08-15 22:05:18 +0900

テストファイル test/readline/test_readline.rb の未使用変数の警告除去。

yui-knk: r59600 2017-08-15 22:12:39 +0900

insns.def の VM 命令 getinstancevariable と setinstancevariable のコメントに既に削除されたオペランド説明が残っていたので削除しています。

nobu: r59601 2017-08-15 22:53:38 +0900

parse.y でかっこ '()' でくくられた式の parse でエラー時に switch 文の break が漏れていたのを修正しています。

naruse: r59602 2017-08-16 06:33:43 +0900

Dir のテスト test/ruby/test_dir_m17n.rb で新しい macOS の High Sierra で APFS を使っている時のエラーの対処。 APFS では不正な UTF-8 のバイト列を使うことはできないので、そのようなケースのテストは skip させています。 [ruby-core:82383] [Bug #13816]

svn: r59603 2017-08-16 06:33:44 +0900

version.h の日付更新。

naruse: r59604 2017-08-16 06:36:16 +0900

test/readline/test_readline.rb の未使用変数の警告除去。他にも vm.c の inline 化の最適化が入ってますが、これは次で revert されているのでうっかり一緒にコミットしてしまったものみたいです。

naruse: r59605 2017-08-16 06:39:38 +0900

r59604 の vm.c と vm_eval.c の変更を revert しています。

nobu: r59606 2017-08-16 16:18:45 +0900

メソッドの呼び出しが深くなって machine stack の overflow を検出した時の大域脱出時に rb_thread_t::ec.raised_flag に RAISED_STACKOVERFLOW をセットしておいて cfp consistency のチェックにひっかかることがあるのを防ぐようにしています。 [ruby-core:80618] [Bug #13412]

hsbt: r59607 2017-08-16 18:37:03 +0900

拡張ライブラリ digest に .gemspec ファイルを追加して default gem 化しています。リポジトリruby/digest に独立したものを upstream として作ったみたいです。 [ruby-core:82179] [Misc #13771]

hsbt: r59608 2017-08-16 18:45:58 +0900

lib/ipaddr.gemspec でファイルリストを得るのに git コマンドを利用するようになっていたのを修正しています。 [ruby-core:82358] [Bug #13808]

2017-08-15 ruby-trunk-changes r59587 - r59598

[][]ruby-trunk-changes r59587 - r59598

今日は主に compile.c のリファクタリングがありました。

yui-knk: r59587 2017-08-14 22:26:37 +0900

拡張ライブラリ objspace の ObjectSpace.allocation_sourceline の rdoc 用コメントで戻り値の型の記述が間違っていたのを修正しています。

svn: r59588 2017-08-14 22:26:38 +0900

version.h の日付更新。

nobu: r59589 2017-08-14 23:18:29 +0900

compile.c の NODE_ZSUPER の処理時に nd_type() の呼び出しをローカル変数 type に格納しておいたものを参照するようにリファクタリングしています。

nobu: r59590 2017-08-14 23:25:27 +0900

compile.c の iseq_compile_each0() から while/until のコンパイル部分を compile_loop() という関数に切り出して共通部分を使いまわすようにしています。

duerst: r59591 2017-08-15 01:04:35 +0900

標準添付ライブラリ rexml の REXML::Formatters::Default の rdoc 用コメントの typo 修正。

svn: r59592 2017-08-15 01:04:36 +0900

version.h の日付更新。

nobu: r59593 2017-08-15 08:55:34 +0900

r59591 と同様に compile.c の iseq_compile_each0() から break の処理部分を compile_break() という関数に切り出すリファクタリング。 この処理の中にあったラベルに ng っていうのは switch 文のラベルとして移動されています。

nobu: r59594 2017-08-15 09:18:47 +0900

compile.c の iseq_compile_each0() から切り出すシリーズ。次は next 文のコンパイルを compile_next() に切り出しています。

nobu: r59595 2017-08-15 09:45:13 +0900

次は redoコンパイル処理を compile_redo() に切り出しています。

nobu: r59596 2017-08-15 09:45:14 +0900

次は retry 文のコンパイル処理を compile_retry() という関数に切り出しています。

nobu: r59597 2017-08-15 09:50:22 +0900

拡張ライブラリ ripper の ext/ripper/lib/ripper.rb の先頭部分のライセンス表記を整形しています。 rdoc で処理された時の結果を意識した変更みたいです。 [ruby-core:82376]. [Bug #13813]

nobu: r59598 2017-08-15 10:05:50 +0900

標準添付ライブラリ uri/ftp の rdoc 用コメント内の URI のサンプルのマークアップ追加。 [ruby-core:82379] [Bug #13814]

2017-08-14 ruby-trunk-changes r59584 - r59586

[][]ruby-trunk-changes r59584 - r59586

今日は標準添付ライブラリ rexml の不具合修正や未使用ローカル変数の警告の不具合修正などがありました。

kou: r59584 2017-08-13 21:14:24 +0900

標準添付ライブラリ rexml の REXML::XPath.first などで XPath の指定がメソッドとして起動されてしまうので、使えるメソッド名を限定するようにしています。

nobu: r59585 2017-08-13 22:34:26 +0900

同名のメソッド呼び出しがあった時に代入だけで参照されないローカル変数が未使用変数の警告が出力されない不具合を修正しています。 [ruby-core:82368] [Bug #13809]

nobu: r59586 2017-08-13 22:43:36 +0900

mspec でテストスクリプトのない空のディレクトリをスキップするようにしています。 https://github.com/ruby/spec/issues/459