コンテンツへ移動

ruby-ML ななめ読む [ruby-dev:無し] / [ruby-core:61695-61715]

2014/3/27 23:42:09

ムラノフさんの行動力が羨ましい

[ruby-core:61695] by Johan Walles:#9177
[ruby-core:61696] by Alexey Muranov:#9678
[ruby-core:61697] by Nobuyoshi Nakada:#9678
[ruby-core:61698] by Alexey Muranov:#9678
[ruby-core:61699] by Alexey Muranov:#9678
[ruby-core:61700] by Alexey Muranov:#9678
[ruby-core:61701] by Katsikaros Vangelis:#9679
[ruby-core:61702] by Brent Theisen:#9657
[ruby-core:61703] by Eric Wong :#9606
[ruby-core:61704] by Eric Wong:#9606
[ruby-core:61705] by Eric Hodel:#8508
[ruby-core:61706] by Sam Rawlins:#9680
[ruby-core:61707] by Eric Wong :#9680
[ruby-core:61708] by Eric Wong:#9680
[ruby-core:61709] by Nobuyoshi Nakada:#9678
[ruby-core:61710] by Sam Rawlins:#9680
[ruby-core:61711] by Motohiro KOSAKI:#9606
[ruby-core:61712] by Eric Wong :#9606
[ruby-core:61713] by Eric Wong:#9606
[ruby-core:61714] by Alexey Muranov:#9678
[ruby-core:61715] by Genie Sol:#9681


#8508

win32/registry.rb で Invalid byte sequence in UTF-8


[ruby-core:61705]
by Eric Hodel

チケット操作。バックポート対象を 1.9.3 と 2.0.0 に。


#9177

curses 終了時に画面をそのままにすることができない


[ruby-core:61695]
by Johan Walles

(curses は ruby 本体から切り離されたからそっちに報告してね、とのコメントを受けて)したよ、とのこと。


#9606

OpenBSD でスタックエラー検出のテストが SEGV


[ruby-core:61703]
by Eric Wong

スタックを 12KB 余分に用意したら解決したけど完璧とは言えないよ、一般的な Linux でさえこうなんだからこのテストは環境依存すぎるね、とのこと。


[ruby-core:61704]
by Eric Wong

[ruby-core:61703] の重複。


[ruby-core:61711]
by Motohiro KOSAKI

32-bit の x86 について言えばガードページを増やすのは領域の都合上よくないね、64-bit でだけ変えるんならよさそうだね、とのこと。

“no room” を適当にごまかしてしまった……実際に何が問題になるのか今度調べたい。


[ruby-core:61712]
by Eric Wong

ガードページ不足の対策ってどうしたらいいかな、タイマスレッド関数をメインスレッドで動かして Ruby コードは全部子スレッドで動かすとかは嫌だな、単一スレッド時に遅くならないようにずいぶん前からタイマスレッドと GVL をなくそうと頑張ってはみてるんだけど、とのこと。

うーん前後がいまいちつながっていない(意味を取り違えて訳している)気がする。


[ruby-core:61713]
by Eric Wong

[ruby-core:61712] の重複。


#9657

bigdecimal/util.rb の Float#to_d で SEGV


[ruby-core:61702]
by Brent Theisen

同じ症状だよ、とのこと。

あのさー直前で「r45015 (で直ったん)じゃないかな」って言われてるのに ruby 2.1.0p0 r44422 で報告するのはちょっとどうなの。


#9678
(新規)
ヒアドキュメントの新記法の提案


[ruby-core:61696]
by Alexey Muranov

他のとある言語みたいなヒアドキュメントの記法を考えたよ、”(識別子):” の行以降の “>” または “>>” で始まる行をまとめて式の “>>(識別子)” に展開するのはどうかな、とのこと。

言葉で説明するのが難しい


[ruby-core:61697]
by Nobuyoshi Nakada

それはどんな結果になるの、とのこと。


[ruby-core:61698]
by Alexey Muranov

ああごめん、> 始まりなら <> 始まりなら <<"EOS" 扱いを想定してたよ、とのこと。


[ruby-core:61699]
by Alexey Muranov

これならインデントなしでも読みやすいヒアドキュメントを書けるんじゃないかな、特にエディタでハイライトさせてやればなおいいよね、とのこと。


[ruby-core:61700]
by Alexey Muranov

ドキュメントを “\” で終わらせると末尾の改行が取り除かれる(というのも考えた)よ、とのこと。


[ruby-core:61709]
by Nobuyoshi Nakada

具体的に要約してくれないかな、とのこと。


[ruby-core:61714]
by Alexey Muranov

うん、でもまず既存のヒアドキュメント構文をもっと調査しようと思うよ、コメントくれると嬉しいな、とのこと。


#9679
(新規)
chef-11.6.2 の util/diff.rb 129 行目で SEGV


[ruby-core:61701]
by Katsikaros Vangelis

Chef の問題か Ruby のか分かんないけど、SEGV した時のログにここの URL が出てきたからここに報告するね、とのこと。
1.9.3p448、chef-11.6.2/lib/chef/util/diff.rb:129 で SEGV、vm.c:1397 <- vm.c:670 <- array.c:1495 <- vm_insnhelper.c:404 <- insns.def:1018……と読めます。

ソースを見ると、rb_ary_each -> rb_yield -> vm_yield -> invoke_block_from_c -> vm_exec という非常にありがちな流れで、しかも vm.c:1397 は break 文だったりします。なぜ break で SEGV?


#9680
(新規)
String#sub 等々に文字列を渡した時に正規表現オブジェクトを作ってほしくない


[ruby-core:61706]
by Sam Rawlins

sub, sub!, gsub, gsub! は文字列を受け取ると正規表現に変換して検索し始めるけど無駄が多いよ、”123:456″.gsub(“:”, “_”) で考えると、(1)元の文字列のコピー (2)置換後の文字列 (3)ASCII の “:” 二個 (4)ASCII-8BIT の “:” 二個 (5)/:/ (6) マッチデータ “:” (7) 空のマッチデータ、とこれだけオブジェクトが出来上がるよ、とのこと。
単純な対策を pull request したよ、rb_reg_search() の呼び出し部分を置き換えて、文字列が渡されたら rb_str_index() するようにしたよ、とのこと。
単純なベンチマークだと元の 7 から 17 倍速くらいになったよ、$& 変数がセットされない非互換がある($1 等は出るわけがないので無視する)よ、get_pat() を使ってる split, scan, match も同じようにできそうだよ、とのこと。


[ruby-core:61707]
by Eric Wong

文字列リテラルが渡されるときに reg_cache() を memoize するのを考えてたけど実装できずじまいだったよ、$& の件は非互換ではあるけど不要なオブジェクトも減るね、とのこと。


[ruby-core:61708]
by Eric Wong

[ruby-core:61707] の重複。


[ruby-core:61710]
by Sam Rawlins

高速化したのは GC というより正規表現エンジンを回避したからみたいだよ、$& 等々を自前でセットすることもできるけど処理が汚くなりすぎるよ、reg_cache() の修正とか全取っ替えも歓迎するよ、とのこと。


#9681
(新規)
miniruby で Bus Error


[ruby-core:61715]
by Genie Sol

2.1.1 を Oracle Solaris 11.1 SPARC の GCC 4.5.2 でビルドしてみたよ、助けてくれたりしないかなあ、とのこと。
new_insn_send+0x114 <- iseq_compile_each+0x40f4 <- iseq_compile_each+0x14e8 <- iseq_compile_each+0x1b4 とトレースが続きます。

名前が blade 上で文字化けしてたのでチケットから持ってきたんですがこれで合ってるかどうか。そして相対アドレスじゃ具体的な箇所がわからない……
チケット自体とは関係ないですが、”I wonder that maybe you can help on the issue.” って「この問題の手助けをあなたができるかどうか、私は疑問視している」でいいのでしょうか。

広告
No comments yet

コメントを残す

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

WordPress.com ロゴ

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

Google+ フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中

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