Hatena::ブログ(Diary)

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

2016-08-24 ruby-trunk-changes r55994 - r55999

[][]ruby-trunk-changes r55994 - r55999

今日は .gdbinit の修正(本体の変更への追随)や Solaris 10 の fcc でのコンパイルエラー修正などがありました。

nobu: r55994 2016-08-24 12:57:58 +0900

Module.new, Class.new の rdoc 用コメントでブロックを渡した時に module_eval を使っているという記述になっていたので、同様の評価のされかたをするというふうに記述を修正しています。 [ruby-core:77023] [Bug #12696]

svn: r55995 2016-08-24 12:57:59 +0900

version.h の日付更新。

nobu: r55996 2016-08-24 13:43:25 +0900

prelude.c の生成時の依存関係に lib/rubygems/defaults.rb や lib/rubygems/core_ext/kernel_gem.rb などが含まれていたのを削っています。

naruse: r55997 2016-08-24 16:56:51 +0900

.gdbinit で r55766 での Ruby VM の control stack frame や env の構造の変更で動かなくなっていたコマンドを修正しています。

ngoto: r55998 2016-08-24 20:08:30 +0900

r55102 あたりで ALWAYS_INLINE() マクロを使うようになったのですが Solaris 10 の fcc では force inline の attribute に対応していないそうで、なぜか r55884 移行コンパイルエラーになった(それまではなにかこみいった理由でたまたまエラーを回避していたみたいです。チケット参照)何もしないダミーのマクロを定義するようにしています。 [ruby-dev:49773] [Bug #12701]

ngoto: r55999 2016-08-24 20:11:03 +0900

r55998 の ChangeLog エントリに ML とチケットの番号の参照を追記しています。

2016-08-23 ruby-trunk-changes r55986 - r55993

[][]ruby-trunk-changes r55986 - r55993

今日は特殊変数 $; へ nil文字列正規表現以外のオブジェクトを代入するとエラーにする変更や goruby の修正などがありました。

nobu: r55986 2016-08-23 02:10:00 +0900

String#split で特殊変数 $; に文字列でも正規表現でも nil でもないオブジェクトが入っていた時に例外を発生させるようにしています。

svn: r55987 2016-08-23 02:10:01 +0900

version.h の日付更新。

nobu: r55990 2016-08-23 10:15:04 +0900

r55986 の続きというか同様の修正で特殊変数 $; への代入時に nil, String オブジェクト, Regexp オブジェクトのいずれでもないものを代入しようとしたら例外を発生させるようにしています。 r55986 で追加したテストも代入時の例外をチェックするように変更しています。

nobu: r55991 2016-08-23 10:34:42 +0900

拡張ライブラリ psych のテストで Tempfile.create をブロックつきで使って消し忘れのないようにしています。 https://github.com/tenderlove/psych/pull/288

nobu: r55992 2016-08-23 11:05:24 +0900

webrick のテストで socket の閉じ忘れがあったのを修正しています。

nobu: r55993 2016-08-23 17:00:09 +0900

r43514 で拡張ライブラリを static link した時に mathn/rational などが明示的に require されてなくてもロードされてしまう対策として ruby_init_ext() では Init 関数は登録するだけで呼び出さなくなっていたので、その余波で goruby で Init_golf() が呼ばれなくなっていたので、ruby_init_ext() を使わず明示的に Init_golf() を呼んで rb_provide() で golf.so がロードされた状態にするようにしています。

2016-08-22 ruby-trunk-changes r55981 - r55985

[][]ruby-trunk-changes r55981 - r55985

今日は標準添付ライブラリ csv のパフォーマンス改善のための修正などがありました。

nobu: r55981 2016-08-22 09:02:59 +0900

RubyVM::InstructionSequence.allocate を undef しておいて未初期化オブジェクトが作られないようにしています。

svn: r55982 2016-08-22 09:03:00 +0900

version.h の日付更新。

nobu: r55983 2016-08-22 13:21:54 +0900

rb_ary_splice() で配列内にその配列オブジェクトの途中からの要素を挿入しようとした場合に対応するようにしています。

nobu: r55984 2016-08-22 14:35:59 +0900

man/irb.1 の man 用ファイルで不要な width オプションを削っています。 [ruby-dev:49767] [Bug #12692]

nobu: r55985 2016-08-22 16:29:54 +0900

標準添付ライブラリ csv で quote されたカラムがとても長い時のパフォーマンスの改善のため配列で格納しておいて最後に join するようにしています。なんでこっちのほうがいいのかいまいちわからないですが… [ruby-core:76987] [Bug #12691]

2016-08-21 ruby-trunk-changes r55977 - r55980

[][]ruby-trunk-changes r55977 - r55980

今日は Array#insert での不要な一時オブジェクトの生成を抑制する変更がありました。

nobu: r55977 2016-08-21 13:03:22 +0900

rb_ary_splice() の第4引数に Array オブジェクトの VALUE を受け取っていたのを配列内部のポインタとサイズを受け取るようにして、rb_ary_insert() から呼ぶ時に Array#insert の第2引数以降を渡すために一時的に Array オブジェクトを生成していたのを引数配列をそのまま参照させるようにして不要なオブジェクト生成を抑制するようにしています。

tadd: r55978 2016-08-21 14:14:07 +0900

r55689 の ChangeLog エントリの typo 修正。またずいぶん前のですな。

kazu: r55980 2016-08-21 20:03:15 +0900

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

2016-08-20 ruby-trunk-changes r55971 - r55976

[][]ruby-trunk-changes r55971 - r55976

今日は ruby スクリプトから実行可能ファイルを作る rubystub を Windows だけでなく他のプラットフォームでも使えるようにする変更などがありました。

nobu: r55971 2016-08-20 11:19:19 +0900

win32/win32.c の StartSockets() という関数内で rb_fatal() を呼んでいるところで関数名と引数のかっこの間の余分な空白除去と、メッセージに不要な改行コードが含まれていたのでそれを削っています。

svn: r55972 2016-08-20 11:19:20 +0900

version.h の日付更新。

nobu: r55973 2016-08-20 11:20:34 +0900

Windows でファイルの先頭に埋め込むことで Ruby スクリプトを直接実行可能なファイルを作る rubystub の仕組みを rubystub.c というソースファイルに移動して実行ファイルを生成するようにしています。 Windows 以外でも動くようにしたみたいですね。 Linux の場合は /proc/self/exe をみて $0 を差し替えているようです。

nobu: r55974 2016-08-20 14:58:58 +0900

r55973 で追加した rubystub.c に #inclue <sys/param.h> を追加しています。 MAXPATHLEN という定数のために必要だったとのこと。

mrkn: r55975 2016-08-21 05:51:19 +0900

Enumerable#sort で enum_to_a() で生成した配列をさらに rb_ary_sort() で複製を返していたので rb_ary_sort_bang() で破壊的にソートするようにして余分な中間オブジェクトの生成を抑制しています。

svn: r55976 2016-08-21 05:51:20 +0900

version.h の日付更新。