コンテンツへ移動

ruby-ML ななめ読む [ruby-dev:48085] / [ruby-core:61799-61810]

2014/4/3 01:03:11

あると読むのにヒーヒー言うんだけれどもないと何だか物足りない Wong さんのポスト。

[ruby-dev:48085] by Kazuhiro NISHIYAMA:#9693
[ruby-core:61799] by _ wanabe:#9657
[ruby-core:61800] by Martin Liska:#9692
[ruby-core:61801] by Martin Liska:#9692
[ruby-core:61802] by Andrew Vit:#9691
[ruby-core:61803] by Sam Rawlins:#9683
[ruby-core:61804] by Sam Rawlins:#9602
[ruby-core:61805] by Hiroshi SHIBATA:#9511
[ruby-core:61806] by Nobuyoshi Nakada:#9683
[ruby-core:61807] by Nobuyoshi Nakada:#9692
[ruby-core:61808] by Nobuyoshi Nakada:#9692
[ruby-core:61809] by Nobuyoshi Nakada:#9692
[ruby-core:61810] by Nikolay Markov:#9694


#9511

make help で出る URL が古すぎる


[ruby-core:61805]
by Hiroshi SHIBATA

クローズコミット。


#9602

Enumerable#grep の 新機能案


[ruby-core:61804]
by Sam Rawlins

Enumerable#reject と Array#reject のところのパッチを更新したよ、Array#reject が気持ち悪かったから ary_reject() を rb_ary_reject() に入れ直して rb_ary_push_1() だけ使う形に戻したけどひどく古い部分がある気がするよ、とのこと。
GitHub にブランチパッチを置いたよ、Array#select! と Array#reject! と Struct#select はまだ手つかずだよ、とのこと。


#9657

bigdecimal/util.rb の Float#to_d で SEGV


[ruby-core:61799]
by _ wanabe

チケット操作。バックポート対象を 2.0.0 と 2.1 両方に。
中田さんの言うとおり r45015 をバックポートすれば収まると思うよ、とのこと。

このななめ読みやってて初めて口出せそうなのに当たったのでやってみました。


#9683

ハッシュのデフォルト proc を使っていて SEGV


[ruby-core:61803]
by Sam Rawlins

今の trunk は Eran さんの例みたいに 最初の a[1] で SystemStackError になって結果 SEGV するよ、vm.c の vm_exec() を掘ってみたら 1328 行目の vm_exec_core() 呼び出しまで来てるっぽいのに実際には呼び出しできてないみたいってところまでしか辿れなかったよ、とのこと。
ともあれ #9151 みたいに再帰を見つけたらショートカットして nil 返すのがよさそうだよ、パッチ書いたよ、スタックエラーは防ぐけど普通の再帰やちょっとトリッキーな再帰でも許すように書いたよ、とのこと。

legitimate: 普通、creative: ちょっとトリッキー。単語のテストで書いたら多分0点です。


[ruby-core:61806]
by Nobuyoshi Nakada

2.0.0p353 だと再現するけど 2.0.0p466 なら “SystemStackError” になる(からもう直ってるみたいだから試してみたらいいと思う)よ、とのこと。

括弧部分はでっち上げです。


#9691

浮動小数点数の値がおかしい


[ruby-core:61802]
by Andrew Vit

Fixnum の範囲内でやるか BigDecimal を使うといいよ、浮動小数点と十進数についてのビデオもあるよ、とのこと。


#9692

__builtin_longjmp に 1 より大きい値が渡されていてコンパイルできない


[ruby-core:61800]
by Martin Liska

わかった LTO オプションがないときにエラーになるよ、有りだと使ってない関数を無視してくれる(からビルドできる)よ、とのこと。


[ruby-core:61801]
by Martin Liska

パッチ添付。


[ruby-core:61807]
by Nobuyoshi Nakada

チケット説明変更。markdown に合わずにおかしく見えていた部分を修正。


[ruby-core:61808]
by Nobuyoshi Nakada

今の JUMP_TAG は変数使ってなかったと思うよ、とのこと。


[ruby-core:61809]
by Nobuyoshi Nakada

クローズコミット。


#9693
(新規)
正規表現中で \x{} 表記が使えない


[ruby-dev:48085]
by Kazuhiro NISHIYAMA

るりまで出た話題なんだけど、鬼雲の中では “\x{}” が使えるようになってるのにパーサがエラーになって使えないよ、Regexp.new でも re.c で弾かれるよ、とのこと。


#9694
(新規)
正規表現の書き方がおかしいと途端に遅くなることがある


[ruby-core:61810]
by Nikolay Markov

/(\w*)*$/ みたいな正規表現に文字列をマッチさせると、文字列が長くなるごとに爆発的に遅くなるよ、14 文字で 1.4 秒、15 文字で 4.0 秒、16 文字だと 12.0 秒ほどにまでなったよ、1.9.3 や 2.0 でも似たようなもんだよ、同僚が stackoverflow からコピペしてきた正規表現で発見したよ、とのこと。
この正規表現が変なのは百も承知だけど、書き方次第でハング(に見えるぐらい計算量を爆発)させうるのは問題だよ、python 2.7 だとこの表現自体を受け付けず、perl なら特に遅くなることなく動いたよ、とのこと。

広告
No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。