[#37008] [Bug #705] sample/test.rb:1829: [BUG] Segmentation fault — pegacorn jp <redmine@...>
Bug #705: sample/test.rb:1829: [BUG] Segmentation fault
[#37009] add RUNRUBYOPT in mswin32 Makefile.sub — Masaki Suketa <masaki.suketa@...>
助田です。
[#37026] :FOO === "FOO" => true and case/when behavior — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
[#37027] Re: [Feature #711] M17N of irb — keiju@... (keiju ISHITSUKA)
けいじゅ@いしつかです.
[#37028] [Backport #716] Hash#key — "rubikitch ." <redmine@...>
Backport #716: Hash#key
チケット #716 が更新されました。 (by Akinori MUSHA)
[#37050] [Feature #735] Date#inspect — "rubikitch ." <redmine@...>
Feature #735: Date#inspect
遠藤です。
> 「inspectは人間に優しい文字列化」という観点から、Date#inspectの出力はふさわしくないと思います。
[#37075] [Feature #747] /\A/u ignores BOM — Shyouhei Urabe <redmine@...>
Feature #747: /\A/u ignores BOM
卜部です。
[#37095] ruby1.9 segmentation fault — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
[#37117] test/webrick/test_server.rb doesn't finish — shinichiro.h <shinichiro.hamaji@...>
浜地といいます。
[#37126] Re: [ruby-cvs:27470] Ruby:r20251 (trunk): * lib/time.rb: according to RFC2822, -0000 means local time, +0000 — Tanaka Akira <akr@...>
In article <200811181512.mAIFC3YP006108@ci.ruby-lang.org>,
[#37142] eval with binding — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#37146] Re: [ruby-cvs:27544] Ruby:r20326 (ruby_1_9_1): merges r20298 from trunk into ruby_1_9_1. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#37156] [Bug #780] Time#strftime で、フラグ 0 が幅と解釈される — tadayoshi funaba <redmine@...>
Bug #780: Time#strftime で、フラグ 0 が幅と解釈される
[#37158] [Bug #782] 余分な外部シンボル — Tadashi Saito <redmine@...>
Bug #782: 余分な外部シンボル
[#37161] m17n of irb — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
けいじゅ@いしつかです.
keiju ISHITSUKA さんは書きました:
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
Yuguiです。
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
Yuguiです。
まつもと ゆきひろです
[#37168] [Bug #786] Time#strftime で %s が負である場合に桁を間違える — tadayoshi funaba <redmine@...>
Bug #786: Time#strftime で %s が負である場合に桁を間違える
まつもと ゆきひろです
[#37187] [Bug #793] BigDecimal('Infinity').to_r が零になる — tadayoshi funaba <redmine@...>
Bug #793: BigDecimal('Infinity').to_r が零になる
まつもと ゆきひろです
[#37190] [Bug #795] test_gdbm.rb: tmptest_gdbm_,tmptest_gdbm_rdonlyが残っているとErrorになる — Kazuhiro NISHIYAMA <redmine@...>
Bug #795: test_gdbm.rb: tmptest_gdbm_,tmptest_gdbm_rdonlyが残っているとErrorになる
まつもと ゆきひろです
[#37210] RSS::Maker.create(version) — "Akinori MUSHA" <knu@...>
RSS::Maker で、 "2.0" 等の文字列でフィードのフォーマットを渡す
須藤です。
At Thu, 27 Nov 2008 19:11:01 +0900,
須藤です。
At Sat, 29 Nov 2008 17:18:20 +0900,
須藤です。
At Mon, 1 Dec 2008 21:48:34 +0900,
須藤です。
At Mon, 8 Dec 2008 20:28:44 +0900,
[#37213] Re: [ruby-cvs:27586] Ruby:r20368 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return — Tadayoshi Funaba <tadf@...>
> * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return
まつもと ゆきひろです
まつもと ゆきひろです
斎藤と申します。
まつもと ゆきひろです
斎藤です。
[ruby-dev:37141] Re: [Bug:1.9] 1+1+1+...+1 dumps core
こんにちは、なかむら(う)です。
というわけで、疑問は解消したので、
In message "[ruby-dev:37133] Re: [Bug:1.9] 1+1+1+...+1 dumps core"
on Nov.21,2008 15:12:37, <usa@garbagecollect.jp> wrote:
> > もしかしてcall_cfuncで構造化例外を捕まえてSystemStackErrorに変換したりで
> > きます?
>
> call_cfuncじゃなくてrb_iseq_evalの中身あたりをくくるのがいい
> んじゃないかと思いますが、まあそうです。
という方針でパッチ書いてみました。
# なんかびみょーにcontrol frameの中身が違いますね。
C:\>miniruby -e "eval('1+'*100000+'1')"
-e:1: [BUG] Segmentation fault
ruby 1.9.0 (2008-11-19 revision 20257) [i386-mswin32]
-- control frame ----------
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :eval
c:0003 p:0017 s:0006 b:0006 l:000005 d:000005 TOP -e:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP
---------------------------
-e:1:in `eval': stack level too deep (SystemStackError)
from -e:1:in `<main>'
Index: vm.c
===================================================================
--- vm.c (revision 20257)
+++ vm.c (working copy)
@@ -1231,6 +1231,16 @@ vm_exec(rb_thread_t *th)
/* misc */
+#ifdef _WIN32
+static void
+w32_check_stack_overflow(DWORD code)
+{
+ if (code == EXCEPTION_STACK_OVERFLOW) {
+ raise(SIGSEGV);
+ }
+}
+#endif
+
VALUE
rb_iseq_eval(VALUE iseqval)
{
@@ -1243,7 +1253,17 @@ rb_iseq_eval(VALUE iseqval)
if (!rb_const_defined(rb_cObject, rb_intern("TOPLEVEL_BINDING"))) {
rb_define_global_const("TOPLEVEL_BINDING", rb_binding_new());
}
+#ifdef _WIN32
+ __try {
+#endif
val = vm_exec(th);
+#ifdef _WIN32
+ }
+ __except(w32_check_stack_overflow(GetExceptionCode()),
+ EXCEPTION_CONTINUE_SEARCH) {
+ /* never comes here */
+ }
+#endif
tmp = iseqval; /* prohibit tail call optimization */
return val;
}
それでは。
--
U.Nakamura <usa@garbagecollect.jp>