コンテンツへ移動

ruby-dev/core ななめ読む 3/13

2014/3/14 00:28:36

書いてる途中で来たメールにも対応したいところですが、書きかけ分と追加分をマージするスクリプトが書けるまでおあずけ。

チケット無し


[ruby-core:61442]
by Marcus Stollsteimer

[ruby-core:61408] への返信。コミッタ推薦ありがたいけどちょっと重荷かな、www.r-l.o は楽しいけど Ruby 自体となると勝手が違うし役に立てないかも、とのこと。


[ruby-core:61445]
by Zachary Scott

[ruby-core:61442] への返信。率直に言ってくれてありがとう、気が変わったら言ってね、とのこと。


#7747

バインディング作成 API の提案


[ruby-core:61436]
by paster okan

ス パ ム。なんでこんなののためにいちいちチケットの題を訳さにゃならんのか。


#9593

デフォルト値の扱いがキーワード引数と普通の引数で違う


[ruby-core:61440]
by Aaron Patterson

意図的なのか知らないけど r45272 から変わってるっぽいね、ActiveRecord にも影響あるみたい、とのこと。


[ruby-core:61455]
by Nobuyoshi Nakada

意図的なバグ修正だよ、foo = foo とかすると foo メソッドは変数に隠れて見えなく(呼ばれなく)なるべきだよ、とのこと。


#9605

each_with_index.detect &lambda で wnoa(1 for 2)


[ruby-core:61451]
by Nobuyoshi Nakada

Ruby では lambda は引数をチェックして個数が違ったら ArgumentError を起こすよ、とのこと。


[ruby-core:61454]
by Nobuyoshi Nakada

あれえ、JRuby だと “->(){}” は個数チェックするのに “lambda{}” ではしないね、とのこと。


[ruby-core:61459]
by Alex Rothenberg

JRuby は lambda{}.call だとチェックするのに、lambda で渡したブロックを yield するときにはチェックしなかったよ、->() なら常にチェックしたよ、不思議、とのこと。
JRuby のバグっぽいから移動するね、とのこと。


[ruby-core:61460]
by Alex Rothenberg

Rubinius では yield は lambda でも ->() でもチェックせず、Proc#call は両方チェックするみたいだよ、とのこと。


#9618

Pathname#cleanpath を使うとパス区切りが混ざる


[ruby-core:61438]
by Benoit Daloze

UNC について答えてくれたお二人ありがとう、エクスプローラで動かなかったから聞いたんだけど API 的には大丈夫なんだね、なかださんのパッチがいい感じだね、とのこと。


[ruby-core:61457]
by Daniel Rikowski

どういたしまして、ささいな疑問からこんな大改装になると思わなかったけど結果オーライだね、とのこと。


#9622

一度呼び出し成功したメソッドが引数を無視することがある、メソッドキャッシュのバグかも


[ruby-core:61439]
by Tomoyuki Chikanaga

メモ。r45320 も要バックポート、とのこと。


#9626
(新規)
alias と prepend と super の組み合わせで SystemStackError


[ruby-core:61437]
by Kohei Suzuki

あるメソッドをクラスで定義して、同名メソッド(1) を持つモジュールを prepend して、alias を作ったあとさらにクラスで再定義(2)したよ。(1)で super を、(2) でつけた別名を呼ぶとスタックエラーになったよ、とのこと。
alias と prepend を逆にすると期待通りの動作になったよ、現象としては #7842 が近いかもね、とのこと。
文章だとわけわからないので、チケットを見たほうが早いです。どうやら alias 対象になったのが M#foo で、C#foo と M#foo が交互に呼ばれているようです。


#9627
(新規)
SMTP が(本文末尾の)区切り文字でないピリオドを適切に変換してくれない


[ruby-core:61441]
by Josh Goebel

改行 + ピリオドで終わる本文を SMTP で送ろうとすると、ピリオドをピリオド2つに変換してくれずに送ろうとして送信エラーになるよ、最新では試せてないけど 1.9.3 r448(p448 のこと?)で確認したよ、とのこと。
もともと github.com の mikel/mail に pull request したのが始まりだよ、とのこと。


#9628
(新規)
to_s の中で message を呼ぶような例外クラスを、メッセージ付きで raise すると SEGV


[ruby-core:61443]
by Tom Mornini

2.0.0-p451 と 2.1.0 と 2.1.1 で SEGV するコードを書いたよ、とのこと。要約すると表題のようになる再現スクリプトが書かれていました。


[ruby-core:61444]
by Tom Mornini

[ruby-core:61443] の重複?あるいは、説明文に書いたコードが読みにくく整形されたので再チャレンジ、なのかもしれません。内容同じ。


[ruby-core:61450]
by Tomoyuki Chikanaga

チケット操作、2.1 のみバックポート。報告ありがとう、再現コード縮めたよ、2.1.x でだけ再現、trunk では修正済みだよ、とのこと。


#9629
(新規)
GC::Profiler.total_time と dtrace の GC 時間との比較


[ruby-core:61446]
by Ben Weintraub

GC::Profiler.total_time が dtrace の GC 時間と比べて 15-20% ぐらい少ない時間を返すよ、計測ミスかバグかいまいちよくわかってないけど、とのこと。


[ruby-core:61447]
by Ben Weintraub

gist に貼ってた再現コードをこっちにも添付するよ、とのこと。


[ruby-core:61448]
by Ben Weintraub

GC_PROFILE_MORE_DETAIL を定義してスイープ時間を入れると結果が変わるかと思ったけど、やっぱり GC::Profiler の方が優位に少ないのは変わらなかったよ、とのこと。


[ruby-core:61453]
by Ben Weintraub

計測方法が違ってることに気づいたよ、dtrace は実時間で GC::Profiler はユーザ CPU 時間なんだね、でもマーク&スイープなんて CPU 依存な処理でここまでかけ離れた値になるのも不思議だな、とのこと。


#9630
(新規)
readline-6.3 対応のバックポート(2.1)


[ruby-dev:48035]
by Hiroshi SHIBATA

2.1 へのバックポートチケット。readline-6.3 以降への対応のバックポートをお願いするよ、関連リビジョンは r45225 と r45240 と 45243 だよ、とのこと。


#9631
(新規)
readline-6.3 対応のバックポート(2.0)


[ruby-core:61449]
by Hiroshi SHIBATA

2.0 へのバックポートチケット。[ruby-dev:48035] と同じで、バックポート先だけ違います。


#9632
(新規)
ccan 連結リストを使った IO#close の高速化パッチ


[ruby-core:61452]
by Eric Wong

ccan 連結リスト(Linux カーネルの連結リスト実装の BSD-MIT ライセンス版)を導入してみたよ、双方向リストを使っている箇所に有効だよ、とのこと。
挿入・削除で O(1) が保証され、イテレーションでもポインタを読む回数が減って高速化されるらしいです。


#9633
(新規)
シンボルの GC


[ruby-dev:48036]
by Narihiro Nakamura

to_sym や intern で作られるシンボルを GC するパッチを書いたよ、C で一度でも ID 化されたものを除外することで互換性を維持したまま変更できたよ、とのこと。


[ruby-dev:48037]
by Narihiro Nakamura

クローズ。ruby-core に引っ越し。


#9634
(新規)
シンボルの GC


[ruby-core:61456]
by Narihiro Nakamura

[ruby-dev:48036] の ruby-core への再投稿。


[ruby-core:61458]
by Rodrigo Rosenfeld Rosas

すごい!めでたい!とのこと。

Sort by ML-id:
[ruby-core:61436] by paster okan:#7747
[ruby-core:61437] by Kohei Suzuki:#9626
[ruby-core:61438] by Benoit Daloze:#9618
[ruby-core:61439] by Tomoyuki Chikanaga:#9622
[ruby-core:61440] by Aaron Patterson:#9593
[ruby-core:61441] by Josh Goebel:#9627
[ruby-core:61442] by sto.mar web.de
[ruby-core:61443] by Tom Mornini:#9628
[ruby-core:61444] by Tom Mornini:#9628
[ruby-core:61445] by Zachary Scott
[ruby-core:61446] by Ben Weintraub:#9629
[ruby-core:61447] by Ben Weintraub:#9629
[ruby-core:61448] by Ben Weintraub:#9629
[ruby-core:61449] by Hiroshi SHIBATA:#9631
[ruby-core:61450] by Tomoyuki Chikanaga:#9628
[ruby-core:61451] by Nobuyoshi Nakada:#9605
[ruby-core:61452] by Eric Wong:#9632
[ruby-core:61453] by Ben Weintraub:#9629
[ruby-core:61454] by Nobuyoshi Nakada:#9605
[ruby-core:61455] by Nobuyoshi Nakada:#9593
[ruby-core:61456] by Narihiro Nakamura:#9634
[ruby-core:61457] by Daniel Rikowski:#9618
[ruby-core:61458] by Rodrigo Rosenfeld Rosas:#9634
[ruby-core:61459] by Alex Rothenberg:#9605
[ruby-core:61460] by Alex Rothenberg:#9605
[ruby-dev:48035] by Hiroshi SHIBATA:#9630
[ruby-dev:48036] by Narihiro Nakamura:#9633
[ruby-dev:48037] by Narihiro Nakamura:#9633

広告
No comments yet

コメントを残す

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

WordPress.com ロゴ

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

Google+ フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中

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