[#27919] 1.8.4 Preview2 検証 — "URABE Shyouhei aka. mput" <root@...>
卜部です。
まつもと ゆきひろです
[#27944] Ruby 1.8.3 on FreeBSD — Masayoshi Takahashi <maki@...>
高橋征義です。
[#27991] GC.always — Tanaka Akira <akr@...17n.org>
というように、GC を常に動かすというのは GC 関連の問題を発見
まつもと ゆきひろです
In article <1134314081.457781.8573.nullmailer@x31.priv.netlab.jp>,
[#27997] 1.8.4 documents? — "URABE Shyouhei aka. mput" <root@...>
卜部です。
新井です。
新井です。
[#28010] IA64 BSPSTORE — Tanaka Akira <akr@...17n.org>
そういえば、IA64 で gc.c や eval.c に BSPSTORE レジスタの値
まつもと ゆきひろです
In article <1134478762.181062.2779.nullmailer@x31.priv.netlab.jp>,
[#28045] 1.8.4 what remains? — "URABE Shyouhei aka. mput" <root@...>
卜部です。
[#28082] ruby_1_8 Segmentation fault on Cygwin — yanagi@...
柳田です。
山本です。
こんにちは、なかむら(う)です。
山本です。
こんにちは、なかむら(う)です。
柳田です。
山本です。
[#28087] test(?-, file1, file2) — Tanaka Akira <akr@...17n.org>
マニュアルの test(?-, file1, file2) の説明に、
[#28109] Kernel#fail — "URABE Shyouhei aka. mput" <root@...>
さすがにもう誰も使ってないのではないかと思います。Kernel#failは廃止にし
[#28121] post_connection_check with javacc.dev.java.net — Tanaka Akira <akr@...17n.org>
ふと、https://javacc.dev.java.net/ を open-uri でアクセスすると、
[#28127] Intel C++ Compiler and HP aC++/ANSI C on IA64 — Tanaka Akira <akr@...17n.org>
TestDrive で IA64 上の Intel C++ Compiler and HP aC++/ANSI C
渡辺哲也です。
[#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 のテストをすると、
渡辺哲也です。
In article <200512280307.jBS37nnj005909@pbsg500.nifty.com>,
In message "[ruby-dev:28142] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError)"
山本です。
In article <20051228210640.13C71A10.ocean@m2.ccsnet.ne.jp>,
渡辺哲也です。
山本です。
山本です。
In article <20051229114438.44D19F00.ocean@m2.ccsnet.ne.jp>,
なかだです。
In article <ypvtr77wv7q9.wl%nobuyoshi.nakada@ge.com>,
なかだです。
In article <ypvtoe30v1zk.wl%nobuyoshi.nakada@ge.com>,
なかだです。
In article <ypvtmzikv11x.wl%nobuyoshi.nakada@ge.com>,
なかだです。
In article <ypvtwthol15x.wl%nobuyoshi.nakada@ge.com>,
[#28177] Generator dumps core — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#28178] accessing ruby_cbase (nil) dumps core — SASADA Koichi <ko1@...>
ささだです。
[#28181] zsuper (with define_method) dumps core — SASADA Koichi <ko1@...>
ささだです。
[#28182] generator.rb deadlocks — Tanaka Akira <akr@...17n.org>
RUBY_ALWAYS_GC= つきで test_generator.rb を動かすと deadlock が起きます。
[#28184] test_each(TC_SyncEnumerator) fails. — Tanaka Akira <akr@...17n.org>
deadlock は解決しましたが次のようにテストが失敗します。
[ruby-dev:28054] Re: ruby 1.8 dumps core
山本です。
>> 田中さんの提唱する 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;