コンテンツへ移動

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

2014/3/18 22:44:44

ちょっと早めに終わらせてみた。その分明日が怖い……

チケット無し


[ruby-core:61568]
by Eric Wong

I came upon this because I noticed existing st numtable worked poorly
2のべき乗サイズのハッシュの実装してて気づいたけど、メソッドキャッシュのハッシュ値生成はもっといい方法がありそうだよ、例えば ID 生成時に SipHash(sym) を使うのを考えたけど ID がどれだけ肥大するか事前にわからないと駄目なんだよね、とのこと。
現在の実装だと メソッドの ID m と クラスの VALUE c について (((c)>>3)^(m)) (厳密にはこれにビットマスクしたもの)がハッシュ値なんだけど、(1) m の下位3ビットはほとんどの場合1にならない (2) c は RVALUE の倍数 (3) ID の上位ビットは常に 0 (4) c の上位ビットはプロセス内でほとんど同一(ヒープの狭い領域に固まっている)、という性質を使えそうだよ、とのこと。


#8358

TestSprintf#test_float が失敗する


[ruby-core:61563]
by Anatol Pomozov

ArchLinux の方から来たんだけど、この件でユーザから報告があったよ、SSE2 じゃない CPU で SSE2 操作をしてるところを見つけたからそこを削除したらテストが通ったよ、SSE2 は Pen4 以降の機能だから i686 に含めるべきじゃないよ、x86-64 ならいいけど、とのこと。


#9424

OpenSSL がデフォルトでセキュアじゃない通信をする(であってる?)


[ruby-core:61560]
by Yui NARUSE

チケット操作。関連チケットに #9640 #9424(SSL のデフォルト設定の変更)のバックポート(2.1)の追加。


#9425

st を2のべき乗サイズにして剰余計算を高速化


[ruby-core:61574]
by Eric Wong

hash_aref_sym が速くならなくてがっかりだったけど、rb_any_hash からシンボルをなくしてみたら x86 VM 上で 12-30% 高速化したよ、誰か 32-bit の実機で実測してくれたりしないかな、とのこと。


[ruby-core:61575]
by Eric Wong

[ruby-core:61574] の重複。


[ruby-core:61576]
by Yura Sokolov

if (SYMBOL_P(a)) a = (a >> RUBY_SPECIAL_SHIFT) ^ (a >> (RUBY_SPECIAL_SHIFT + 3)); を試してみて、とのこと。

これはどこに足せばいいのでしょうか……


[ruby-core:61577]
by Yura Sokolov

[ruby-core:61576] の重複。


#9521

Time.parse のドキュメント修正


[ruby-core:61557]
by Yui NARUSE

TZ 環境変数の使い方が違うよ(だから JST が使えなように見えるんだよ)、ENV[“TZ”]=”EST+5″ とか ENV[“TZ”]=”JST-9″ みたいに使えば正しい結果になるよ、とのこと。


[ruby-core:61564]
by Marcus Stollsteimer

あーそうか、タイムゾーンが違ってくると Time.parse の振る舞いは難しいね、整理すると(1)明示されない限りローカル時刻を仮定する(2)返す時刻もローカル(3)渡された now 引数のタイムゾーンは無視される、ってことだね、まるでパズルだね、とのこと。

これは混乱する……使うときは混ぜるな危険。無駄に悩みたくなければ期待するタイムゾーンで統一するのが無難でしょう。


[ruby-core:61565]
by Marcus Stollsteimer

例をわかりやすくしてみたよ、”now = Time.parse(“Thu Nov 29 14:33:20 GMT 2001″) #=> 2001-11-29 09:33:20 -0500” ならどうかな、とのこと。
([ruby-core:61557] に対して)知らなかったよありがとう、とのこと。


#9578

‘Function’ が readline.c で未定義


[ruby-core:61570]
by Nobuyoshi Nakada

チケット操作。関連するチケットに #9630 readline-6.3 対応のバックポート(2.1) を追加。


#9613

安全でない暗号スイート使用時に警告を表示する


[ruby-core:61559]
by Yui NARUSE

チケット操作。関連するチケットに #9424(SSL のデフォルト設定の変更)のバックポート(2.1) を追加。


[ruby-core:61569]
by Christian Hofstaedtler

r45274 は Debian jessie で採用される予定だよ、Ubuntu の ruby 2.1 でもそうだろうね、とのこと。


#9618

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


[ruby-core:61573]
by Nobuyoshi Nakada

パッチ更新。


#9630

readline-6.3 対応のバックポート(2.1)


[ruby-dev:48052]
by Nobuyoshi Nakada

チケット操作。関連するチケットに #9578 ‘Function’ が readline.c で未定義を追加。


#9640

#9424(SSL のデフォルト設定の変更)のバックポート(2.1)


[ruby-core:61558]
by Yui NARUSE

チケット操作。関連するチケットに #9613 安全でない暗号スイート使用時に警告を表示するを追加。


[ruby-core:61561]
by Yui NARUSE

チケット操作。関連するチケットに #9424 OpenSSL がデフォルトでセキュアじゃない通信をする(であってる?)を追加。


[ruby-core:61562]
by Yui NARUSE

(バックポートトラッカに報告しないで、との発言を受けて)このチケットみたいに「本当の」バックポートチケットならここでいいんだよ、とのこと。


[ruby-core:61571]
by Zachary Scott

勘違いなら謝るけど、まず trunk で議論されるだと思うよ、それに現行パッチをそのままバックポートするべきじゃないと思うよ、とのこと。


#9647

File::Stat#birthtimeの追加


[ruby-dev:48050]
by Motohiro KOSAKI

Linux では媒体には birthtime が記録されてるけどユースケースで揉めてまだ実装されてないよ、今 ctime が返す実装にすると(真の birthtime が実装された時に)混乱しそうだよ、とのこと。
なお、root 権限があれば作成日がとれるらしいです。また揉めた内容は、Windows では ctime が更新できるからそれも実装しないと Samba 的にはまずいけど、それはすでに birthtime ではないだろう、とかそんな感じ。


[ruby-dev:48051]
by Motohiro KOSAKI

Windows ではファイルシステムトンネリング(大雑把に言えば、以前あった同名ファイルの作成日時を引き継ぐ)があるけど名前は birthtime でいいのかな、あと Win では更新できない真のファイル作成日もあるって聞いたんだけど誰か知らない?とのこと。


[ruby-dev:48053]
by Usaku NAKAMURA

(真のファイル作成日について)NTFS の $FILE_NAME の日時メタデータは更新 API がないからそれのことかな、でもファイルの名付け日だから(ハードリンクなどを考えると)ちょと違うかな、とのこと。


[ruby-dev:48054]
by Yui NARUSE

(Linux で採用が見送られていることを受けて)Linux を待ってたんだけどもう見捨てるよ、Windows の方はひとまず NotImpError にしておこうか、とのこと。


[ruby-dev:48055]
by Usaku NAKAMURA

(Win で NotImpError を検討していることを受けて)ctime を返すのでいいよ、(今の ctime も意味合い的に違っているので)多少の意味の違いはどうでもいいよ、とのこと。

日本語でそんな長文でもないものを要約しようとしても、口調変えるぐらいしかすることがなくて不毛。読みゃ分かんだろ、という感じ


#9649

2.0 で thread_safe のテストを走らせていて SEGV


[ruby-core:61566]
by Eric Wong

Ruby 2.0.0 p451 では直ってるよ、たぶん #9178 だね、とのこと。


[ruby-core:61567]
by Eric Wong

[ruby-core:61566] の重複。


#9650
(新規)
String#size と String#length の使い分けに関する提案


[ruby-core:61555]
by Sébastien Durand

いいこと考えたよ、String#size をバイト長、String#length を文字列長にするのっていいアイディアじゃない?それとも後方互換を壊しすぎるかな?とのこと。


[ruby-core:61556]
by Marc-Andre Lafortune

互換性を壊しすぎだろうね、何より String#bytesize を使えば十分じゃない?とのこと。

Sort by ML-id:
[ruby-core:61555] by S辿bastien Durand:#9650
[ruby-core:61556] by Marc-Andre Lafortune:#9650
[ruby-core:61557] by Yui NARUSE:#9521
[ruby-core:61558] by Yui NARUSE:#9640
[ruby-core:61559] by Yui NARUSE:#9613
[ruby-core:61560] by Yui NARUSE:#9424
[ruby-core:61561] by Yui NARUSE:#9640
[ruby-core:61562] by Yui NARUSE:#9640
[ruby-core:61563] by Anatol Pomozov:#8358
[ruby-core:61564] by Marcus Stollsteimer:#9521
[ruby-core:61565] by Marcus Stollsteimer:#9521
[ruby-core:61566] by Eric Wong :#9649
[ruby-core:61567] by Eric Wong:#9649
[ruby-core:61568] by Eric Wong
[ruby-core:61569] by Christian Hofstaedtler:#9613
[ruby-core:61570] by Nobuyoshi Nakada:#9578
[ruby-core:61571] by Zachary Scott :#9640
[ruby-core:61572] by Zachary Scott:#9640
[ruby-core:61573] by Nobuyoshi Nakada:#9618
[ruby-core:61574] by Eric Wong :#9425
[ruby-core:61575] by Eric Wong:#9425
[ruby-core:61576] by =?KOI8-R?B?4NLJyiDzz8vPzM/X?= :#9425
[ruby-core:61577] by Yura Sokolov:#9425
[ruby-dev:48050] by Motohiro KOSAKI:#9647
[ruby-dev:48051] by Motohiro KOSAKI:#9647
[ruby-dev:48052] by Nobuyoshi Nakada:#9630
[ruby-dev:48053] by Usaku NAKAMURA:#9647
[ruby-dev:48054] by Yui NARUSE:#9647
[ruby-dev:48055] by Usaku NAKAMURA:#9647

広告
No comments yet

コメントを残す

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

WordPress.com ロゴ

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

Google+ フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中

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