[#44014] Re: [ruby-core:37707] [Ruby 1.9 - Bug #3781] FIBER_USE_NATIVE が有効だと落ちるスクリプトがある — Narihiro Nakamura <authornari@...>
nariです。
> 本当はgc_mark()の際に毎回stack_check()するのがいいと思うのですが、
nariです。
> GC::Profiler.enable
nariです。
[#44027] [RubyKaigi] Next version of Ruby 1.8 and 1.9 — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
遠藤です。
ささだです.
[#44034] [Ruby 1.9 - Bug #4971][Open] Module#class_variables — Shugo Maeda <redmine@...>
[#44048] [Ruby 1.9 - Bug #4223] GC.stress = true で謎の ArgumentError — Motohiro KOSAKI <kosaki.motohiro@...>
[#44122] [Ruby 1.9 - Bug #5036][Open] time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない — Kazuki Tsujimoto <kazuki@...>
[#44130] w.r.o/bugreport.html のリダイレクト先について — "Shota Fukumori (sora_h)" <sorah@...>
sora_hです.
[#44156] [Ruby 1.9 - Feature #5053][Open] ruby コマンドと libruby の食い違いチェック — Makoto Kishimoto <redmine@...>
[#44157] Re: [ruby-changes:20532] akr:r32579 (trunk): * io.c (rb_update_max_fd): new function. — KOSAKI Motohiro <kosaki.motohiro@...>
akrさん、
[#44189] [Ruby 1.9 - Bug #5075][Assigned] invalid *fdp in Mac OS X and FreeBSD over recvmsg with SCM_RIGHTS — Yui NARUSE <naruse@...>
2011/7/22 Yui NARUSE <naruse@airemix.jp>:
In message <CANjopZGqKbM4O6vMkOHrZcD1YLLOJ86-hDHsK3C+px9kdrW4Eg@mail.gmail.com>
[#44201] [Ruby 1.9 - Bug #5081][Open] LionでTestSyslog が一件 failure — Motohiro KOSAKI <kosaki.motohiro@...>
[#44210] 1.9.3 (以降) の BigDecimal について — Tadayoshi Funaba <tadf@...>
BigDecimal() で整数、浮動小数点数、有理数などを受けとれるようになって、
変換には明示的なものとそうでないものがありますが、
むらたです。
> 後者の暗黙的変換については、相手の BigDecimal に合わせて精度を決定できます。
むらたです。
だから、現時点で精度を必須にするのはあまり意味がないんじゃないですかね。
[#44223] [Ruby 1.9 - Bug #5094][Assigned] Supported platforms of Ruby 1.9.3 — Yui NARUSE <naruse@...>
> == 成瀬の提案
卜部です
遠藤です。
(07/26/2011 12:38 PM), Yusuke ENDOH wrote:
遠藤です。
卜部で、前回のメールに書き忘れたことがあったとすれば、べつに192のク
遠藤です。
2011年7月26日22:39 Yusuke ENDOH <mame@tsg.ne.jp>:
[#44251] [Ruby 1.9 - Bug #372][Assigned] Rinda has a race condition — Motohiro KOSAKI <kosaki.motohiro@...>
[#44254] [Ruby 1.8 - Bug #5105][Open] CGI::Session#session_id の生成方法について — Masahiro Tomita <tommy@...>
とみたです。
(2011/07/27 19:47), とみたまさひろ wrote:
とみたです。
とみたです。
2011年7月29日20:04 とみたまさひろ <tommy@tmtm.org>:
(2011/07/29 23:55), Tanaka Akira wrote:
2011年8月13日17:31 NARUSE, Yui <naruse@airemix.jp>:
>> ふと思ったのですが、 openssl を使うときでも、/dev/urandom があるならば、
(2011/08/13 20:35), KOSAKI Motohiro wrote:
2011年8月13日23:12 NARUSE, Yui <naruse@airemix.jp>:
[ruby-dev:44068] [Ruby 1.9 - Feature #5000][Open] skip string creation of when clause
Issue #5000 has been reported by Yusuke Endoh.
----------------------------------------
Feature #5000: skip string creation of when clause
http://redmine.ruby-lang.org/issues/5000
Author: Yusuke Endoh
Status: Open
Priority: Normal
Assignee: Yusuke Endoh
Category:
Target version: 1.9.3
遠藤です。
when 節に文字列リテラルをそのまま書くことは結構あると思います。
case str
when "foo"
when "bar"
when "baz"
end
現在は when 節の比較を実行するごとに、String オブジェクトが生成
されています。しかし、この場合は毎回同じオブジェクトを返せばいい
と思います。最良のケースで、このくらい高速化します。
$ cat t.rb
5000000.times do
case nil
when "foo"
when "bar"
when "baz"
end
end
# パッチ前
$ time ./ruby.org t.rb
real 0m4.561s
user 0m4.488s
sys 0m0.004s
# パッチ後
$ time ./ruby.new t.rb
real 0m2.881s
user 0m2.828s
sys 0m0.036s
when x="foo" や when "foo#{x}" のような場合には最適化しません。
make check も通ったし、ささださんの了解も得ていますので、コミット
してやる所存です。反対があればお早めにどうぞ。
diff --git a/compile.c b/compile.c
index 01c99b6..53149ca 100644
--- a/compile.c
+++ b/compile.c
@@ -2362,7 +2362,14 @@ when_vals(rb_iseq_t *iseq, LINK_ANCHOR *cond_seq, NODE *vals, LABEL *l1, VALUE s
special_literals = Qfalse;
}
- COMPILE(cond_seq, "when cond", val);
+ if (nd_type(val) == NODE_STR) {
+ debugp_param("nd_lit", val->nd_lit);
+ OBJ_FREEZE(val->nd_lit);
+ ADD_INSN1(cond_seq, nd_line(val), putobject, val->nd_lit);
+ }
+ else {
+ COMPILE(cond_seq, "when cond", val);
+ }
ADD_INSN1(cond_seq, nd_line(val), topn, INT2FIX(1));
ADD_SEND(cond_seq, nd_line(val), ID2SYM(idEqq), INT2FIX(1));
ADD_INSNL(cond_seq, nd_line(val), branchif, l1);
--
Yusuke Endoh <mame@tsg.ne.jp>
--
http://redmine.ruby-lang.org