[#27919] 1.8.4 Preview2 検証 — "URABE Shyouhei aka. mput" <root@...>

卜部です。

33 messages 2005/12/01

[#27997] 1.8.4 documents? — "URABE Shyouhei aka. mput" <root@...>

卜部です。

22 messages 2005/12/12
[#28017] Re: 1.8.4 documents? — Koji Arai <jca02266@...> 2005/12/13

新井です。

[#28082] ruby_1_8 Segmentation fault on Cygwin — yanagi@...

柳田です。

13 messages 2005/12/21
[#28083] Re: ruby_1_8 Segmentation fault on Cygwin — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/21

山本です。

[#28140] ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org>

HP-UX で HP aC++/ANSI C を使って作った ruby で、openssl や drb のテストをすると、

34 messages 2005/12/27
[#28141] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — WATANABE Tetsuya <Tetsuya.WATANABE@...> 2005/12/28

渡辺哲也です。

[#28142] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org> 2005/12/28

In article <200512280307.jBS37nnj005909@pbsg500.nifty.com>,

[#28147] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/28

山本です。

[#28149] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org> 2005/12/28

In article <20051228210640.13C71A10.ocean@m2.ccsnet.ne.jp>,

[#28151] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — WATANABE Tetsuya <Tetsuya.WATANABE@...> 2005/12/29

渡辺哲也です。

[#28152] Re: ia64-hpux11.23/socket.sl: this executable file can't load extensionlibraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/29

山本です。

[#28153] Re: ia64-hpux11.23/socket.sl: this executable file can't load extensionlibraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/29

山本です。

[#28154] thread based generator.rb — Tanaka Akira <akr@...17n.org> 2005/12/29

In article <20051229114438.44D19F00.ocean@m2.ccsnet.ne.jp>,

[ruby-dev:28054] Re: ruby 1.8 dumps core

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-12-19 07:47:42 UTC
List: ruby-dev #28054
山本です。

>> 田中さんの提唱する GC.always メソッド版があれば便利な気がします。
>> 現状では、test_yaml が実行される前にすごく長い時間がかかります。
>
>ここのところ RUBY_ALWAYS_GC を実際に使うほうにかまけていて、
>メソッドの提案のほうを放置してましたが、[ruby-dev:28007] の
>GC.stress=bool を入れるのはどうですかね。

賛成します。手元で類似のパッチを gc.c に入れてデバッグしたところ、
さっそくひとつ見つかりました。

# syck_emitter_reset で bonus->port が GC から保護されていないために
# 解放されてしまうバグを修正。(手元のパッチなので HEAD には当たりません)

Index: E:/ruby-cvs/ruby/ext/syck/rubyext.c
===================================================================
--- E:/ruby-cvs/ruby/ext/syck/rubyext.c	(revision 12)
+++ E:/ruby-cvs/ruby/ext/syck/rubyext.c	(revision 13)
@@ -1974,16 +1974,14 @@
 {
     VALUE options, tmp;
     SyckEmitter *emitter;
-    struct emitter_xtra *bonus;
-    volatile VALUE hash;    /* protect from GC */
+    struct emitter_xtra bonus; /* put on stack: protect member from GC */
 
     Data_Get_Struct(self, SyckEmitter, emitter);
     S_FREE( emitter->bonus );
 
-    bonus = S_ALLOC_N( struct emitter_xtra, 1 );
-    bonus->oid = Qnil;
-    bonus->port = rb_str_new2( "" );
-    bonus->data = hash = rb_hash_new();
+    bonus.oid = Qnil;
+    bonus.port = rb_str_new2( "" );
+    bonus.data = rb_hash_new();
 
     if (rb_scan_args(argc, argv, "01", &options) == 0)
     {
@@ -1992,20 +1990,21 @@
     }
     else if ( !NIL_P(tmp = rb_check_string_type(options)) )
     {
-        bonus->port = tmp;
+        bonus.port = tmp;
     }
     else if ( rb_respond_to( options, s_write ) )
     {
-        bonus->port = options;
+        bonus.port = options;
     }
     else
     {
         Check_Type(options, T_HASH);
         rb_ivar_set(self, s_options, options);
     }
-    
+
     emitter->headless = 1;
-    emitter->bonus = (void *)bonus;
+    emitter->bonus = S_ALLOC_N( struct emitter_xtra, 1 );
+    *( struct emitter_xtra * )emitter->bonus = bonus; /* copy */
     rb_ivar_set(self, s_level, INT2FIX(0));
     rb_ivar_set(self, s_resolver, Qnil);
     return self;


In This Thread