Hatena::ブログ(Diary)

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

2015-05-25 ruby-trunk-changes r50636 - r50638

[][]ruby-trunk-changes r50636 - r50638

今日は Windows で追加読み書きモードでファイルを開いた時の不具合修正などがありました。

nobu: r50636 2015-05-25 11:33:36 +0900

IO#gets, IO#readlines などで利用される prepare_getline_args() で引数の数のチェックを先頭で rb_check_arity() を呼び出すことで例外メッセージに期待される引数が可変であることを表示するようにしています。これまでは 3つ以上の引数を渡すと "wrong number of arguments (3 for 2)" となっていました。

naruse: r50637 2015-05-25 11:35:31 +0900

Windows で IO#read や IO#write で利用している Overlapped I/O という Asynchronous IO を実現する仕組みを使うためにファイルを開く時に、書き込み用に開いた時だけファイル末尾に seek するようにしています。 open の modeに "ab+" を渡した時に既存のファイルの内容が読めない(読み込み用の時も末尾に seek していたので)という不具合の修正だそうです。 [ruby-dev:48989] [Bug #11172]

naruse: r50638 2015-05-25 14:48:48 +0900

.gitignore に Visual C++ が生成するファイル群のためのファイル名を追加しています。

2015-05-24 ruby-trunk-changes r50617 - r50635

[][]ruby-trunk-changes r50617 - r50635

今日はあまり大きな変更はありませんでした。

ko1: r50617 2015-05-24 01:36:26 +0900

debug.c の ruby_debug_print_id() で ID 型の値を表示するのに rb_id2str() で String オブジェクト化して表示していたのを rb_id2name() を使って char * 型にしてから埋め込むようにしています。 PRIsVALUE を使ってましたがここはただの fprintf(3) を使っていたので PRIsVALUE が使えなかったんですね。

svn: r50618 2015-05-24 01:37:04 +0900

version.h の日付更新。

nobu: r50633 2015-05-24 11:20:10 +0900

ruby.c の usage() から ruby -h の表示の1行を表示する部分を show_usage_line() という関数として切り出すリファクタリング

eregon: r50634 2015-05-25 00:33:08 +0900

r50522 で追加された Numeric#negative? の rdoc 用コメントのところが Numeric#positive? になってたので修正しています。 https://github.com/ruby/ruby/pull/908

svn: r50635 2015-05-25 00:33:23 +0900

version.h の日付更新。

2015-05-23 ruby-trunk-changes r50611 - r50616

[][]ruby-trunk-changes r50611 - r50616

今日は man/ のファイルの最終更新日の変更と、そのための make ターゲット追加にまつわるツール整備などがありました。

nobu: r50611 2015-05-23 16:58:56 +0900

rake が標準添付をはずれたので man/rake.1 も削除しています。 [Feature #11025]

nobu: r50612 2015-05-23 18:36:05 +0900

tool/file2lastrev.rb で複数のコマンドライン引数を受け付けるように変更しています。

nobu: r50613 2015-05-23 18:36:22 +0900

tool/file2lastrev.rb に --modified というオプションに省略可能なオプション引数を追加して、更新時刻の表示に使うフォーマットを strftime のフォーマット文字列形式で指定できるようにしています。

nobu: r50614 2015-05-23 18:36:33 +0900

make update-man-date というターゲットを追加して man/ の下のファイルの最終更新日を更新できるようにしているようです。けどこれ更新しちゃうと更新日を書き替えた日が最終更新日になるから次以降1ファイルずつやらないといけなくなるような…。

nobu: r50615 2015-05-23 18:38:49 +0900

r50614 で追加した make update-man-date を利用して(と思われる) man/*.1 の最終更新日を更新しています。 [ruby-dev:48988] [Bug #11171]

nobu: r50616 2015-05-23 20:07:18 +0900

r50610 で win32/win32.c に追加された WriteConsoleW() に渡すための変数 witten の型を DWORD にして警告除去しています。

2015-05-22 ruby-trunk-changes r50597 - r50610

[][]ruby-trunk-changes r50597 - r50610

今日は Thread で不正なコマンドを system や spawn で起動しようとした時にたまに Thread の状態がおかしくなる不具合の修正などがありました。

ktsj: r50597 2015-05-22 01:14:39 +0900

doc/maintainers.rdoc から r50586 で標準添付から外された net/telnet の記述を削除しています。

svn: r50598 2015-05-22 01:14:58 +0900

version.h の日付更新。

hsbt: r50599 2015-05-22 16:48:39 +0900

NEWS ファイルに net/telnetrake の標準添付ライブラリからの削除を追記しています。

nobu: r50600 2015-05-22 19:42:09 +0900

Thread 内で Kernel#system や Kernel#spawn など子プロセスを生成するメソッドで存在しないコマンドを実行しようとしてエラーを起こすと、Thread が hang up することがある不具合を修正。後始末の処理を rb_ensure() で必ず実行されるようにしています。 [ruby-core:69304] [Bug #11166]

usa: r50601 2015-05-22 20:57:43 +0900

Complex.polar で第2引数が Float でなく第1引数が Float だった時に img 部の計算で abs として第2引数を使ってしまっていた不具合を修正しています。

nobu: r50602 2015-05-22 21:10:52 +0900

test_parser.rb のテストケースを test_module.rb や test_symbol.rb に移動しています。

nobu: r50603 2015-05-22 21:13:14 +0900

include/ruby/intern.h で rb_sym_all_symbols() の宣言の位置を symbol.c のセクションに移動しています。

marcandre: r50604 2015-05-22 22:36:39 +0900

標準添付ライブラリ prime の obsolete とされていた Prime.new を削除して Singleton を include するようにしています。おお、そうなのか。 https://github.com/ruby/ruby/pull/891

marcandre: r50605 2015-05-22 22:37:02 +0900

標準添付ライブラリ prime の for 文を Enumerable#each に書きかえたり、明示的な return を削除したりするコーディングスタイルの修正。

kazu: r50606 2015-05-23 00:26:11 +0900

r50592 の ChangeLog エントリの typo 修正。

kazu: r50607 2015-05-23 00:26:23 +0900

r50585 の ChangeLog エントリのインデント調整(TABを利用するように)。

svn: r50608 2015-05-23 00:26:25 +0900

version.h の日付更新。

usa: r50609 2015-05-23 02:37:15 +0900

win32/win32.c の constat_apply() のコメントの修正。

usa: r50610 2015-05-23 03:13:32 +0900

win32/win32.c の rb_w32_write_console() で戻り値にする reslen を WriteConsoleW() の呼び出しで上書きされてたのを constat_parse() で計算したエスケープシーケンスを含んだバッファ上の文字数を返すように修正しています。

2015-05-21 ruby-trunk-changes r50566 - r50596

[][]ruby-trunk-changes r50566 - r50596

今日は Method#to_proc で作った Proc から binding で取得した Binding オブジェクトの不具合修正などがありました。また標準添付ライブラリ net/telnetgem パッケージ化され、bundled gem (パッケージに同梱)になりました。

ko1: r50566 2015-05-21 04:11:47 +0900

RubyVM::InstructionSequence#to_a で catch table の例外タイプを Symbol に変換するところで、不正な例外タイプだった時の rb_bug() のメッセージが適当だったのでちゃんと表示するようにしています。

svn: r50567 2015-05-21 04:12:19 +0900

version.h の日付更新。

nobu: r50568 2015-05-21 07:03:06 +0900

BMethod(define_method でブロックで定義されたメソッド)の呼び出しに vm_invoke_proc() を利用していたのですが、safe_level のリセットのための EXEC_TAG() の利用は不要だったので別に vm_invoke_bmethod() という関数を定義して vm_invoke_proc() からは不要な分岐を削除するようにしています。

normal: r50569 2015-05-21 09:15:00 +0900

T_OBJECT や T_CLASS, T_MODULE など struct RVALUE のスロット内にインスタンス変数用のテーブルを持ってないオブジェクトは generic_iv_tbl というグローバルな st_table にオブジェクトの VALUE の値と対応したインスタンス変数用のテーブルの対応を持つようにしているのですが、この generic_iv_tbl がメモリ確保を遅延させるようになっていたのに、実際には起動するだけで常に必要になっていたので初期化時に確保してしまうようにして不要な分岐を消しています。 [ruby-core:69155] [Feature #11146]

nobu: r50572 2015-05-21 10:51:51 +0900

IO.select の rdoc 用コメントの文法などの修正。 https://github.com/ruby/ruby/pull/906

ko1: r50573 2015-05-21 11:00:31 +0900

proc.c の method_proc() という関数を method_to_proc() と改名しています。

nobu: r50580 2015-05-21 14:03:55 +0900

拡張ライブラリ digest に RB_GC_GUARD() の追加。

zzak: r50585 2015-05-21 15:40:27 +0900

private な attr_accessor を使うと警告メッセージが出ていたのを削っています。 [Bug #10967] https://github.com/ruby/ruby/pull/849

hsbt: r50586 2015-05-21 15:46:14 +0900

標準添付ライブラリ net/telnetgem パッケージとして切り出され、bundled gem としてパッケージに同梱する形になっています。 [Feature #11083]

ko1: r50587 2015-05-21 16:54:44 +0900

proc.c の rb_method_get_iseq() を rb_method_iseq() に改名しています。

ko1: r50588 2015-05-21 17:01:59 +0900

r50587 で iseq.h ヘッダの関数の宣言部分の改名がコミット漏れしていたのを追加しています。

ko1: r50589 2015-05-21 17:02:31 +0900

r50587 の ChangeLog エントリにも iseq.h について追記しています。

ko1: r50590 2015-05-21 17:03:58 +0900

proc.c の method_get_def(), method_get_iseq(), method_get_cref() などをそれぞれ method_def(), method_def_iseq(), method_cref() などに改名しています。

hsbt: r50591 2015-05-21 17:29:32 +0900

標準添付ライブラリ matrix の Matrix.empty と Matrix#/ について追記しています。 [ruby-dev:48433] [Feature #10070]

ko1: r50592 2015-05-21 17:45:57 +0900

r48160 で Method オブジェクトから to_proc で Proc オブジェクト化したものの binding で取得した Binding オブジェクトの receiver を修正した時に、この Binding オブジェクトの eval を呼ぶと rb_bug() になっていた不具合を修正しています。 Method が呼ばれた時に作られるのに似た、しかし別の rb_env_t を作成して利用するようにしています。 [Bug #11163]

ko1: r50593 2015-05-21 18:01:44 +0900

iseq.c, iseq.h, method.h, proc.c, vm_method.c で rb_block_t* や rb_iseq_t* の変数引数const を付加しています。

nobu: r50594 2015-05-21 20:28:55 +0900

r50592 で書きかえられた Method から作った Proc の binding のテストで Binding#local_variables で local_variable_set で追加した変数が取れるというチェックを追加しています。

naruse: r50595 2015-05-21 20:39:15 +0900

configure.in の dtrace のチェック部分で使っていた cmp コマンドの -b オプションGNU 拡張らしいので cmp -s を利用するように変更しています。

ko1: r50596 2015-05-21 20:52:21 +0900

proc.c と vm.c のインデント修正のみ。