[#15040] WeakRef and load(file, true) — Shugo Maeda <shugo@...>
前田です。
[#15043] puts array — "Akinori MUSHA" <knu@...>
puts に配列を与えたときの挙動が最新の 1.7 では変わっていて
こんにちは、なかむら(う)です。
At Wed, 7 Nov 2001 09:54:03 +0900,
[#15044] resolv.rb — Kazuhiro NISHIYAMA <zn@...>
Resolv::Hostsのデフォルトのファイル名ってWindows 9x環境だと
[#15047] can't set chomped String to environment — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#15067] rb_eval_string — OJ <oj@...7.com>
OJです。
なかだです。
OJです。
なかだです。
OJです。
わたなべです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
[#15100] Using static mark stack, GC is slow. — sheepman <sheepman@...>
こんばんは
[#15101] [bug?] pty causes segv by getting SIGINT — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#15102] Gtk::Object#flags!= — akira yamada / やまだあきら <akira@...>
[#15116] rubylib_mangle whitespace — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
まつもと ゆきひろです
わたなべです。
[#15132] uri.rb — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#15174] strange behavior about PTY.spawn — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#15175] ruby-mingw32 configuration — HIDAKA Takahiro <cv8t-hdk@...>
ひだかです。
わたなべです。
[#15239] gc.c (gc_mark_rest): declare work area as static — "K.Kosako" <kosako@...>
現在のGCのアルゴリズム(matz-sheepman)を少し変更しようと思って、
On Thu, 22 Nov 2001 16:21:17 +0900
sheepmanさんの<20011122202749.56b8eb49.sheepman@tcn.zaq.ne.jp>から
[#15251] Re: [ruby-ext:01999] Re: syslog module is becoming ready — "Akinori MUSHA" <knu@...>
というわけで 1.7 に syslog モジュールを入れました。
なかだです。
ただただしです。
At Mon, 26 Nov 2001 22:30:03 +0900,
In article <86r8ql90zt.wl@archon.local.idaemons.org>,
At Mon, 26 Nov 2001 23:07:30 +0900,
あおきです。
At Wed, 28 Nov 2001 07:58:55 +0900,
あおきです。
そうそう、 optparse も標準に入っていると便利だと思うのですが
まつもと ゆきひろです
In message <1007018271.960435.20342.nullmailer@ev.netlab.jp>
まつもと ゆきひろです
[#15270] ruby on NetBSD — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
In message <20011128181510.3D11.USA@osb.att.ne.jp>
こんにちは、なかむら(う)です。
In message <20011128182726.3D14.USA@osb.att.ne.jp>
なかだです。
こんにちは、なかむら(う)です。
In message <20011129183834.3790.USA@osb.att.ne.jp>
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
取り込み、ありがとうございます。
こんにちは、なかむら(う)です。
[#15292] Re: m17n ruby 特に TRON 文字コード — TOYOFUKU Chikanobu <toyofuku@...>
豊福です。
[#15298] time.rb — Tanaka Akira <akr@...17n.org>
というわけで、timex.rb 改め time.rb が rough に入ったのでご意見募集です。
In article <hvovgftkgy7.fsf@coulee.a02.aist.go.jp>,
まつもと ゆきひろです
まつもと ゆきひろです
In article <1009298477.998171.30253.nullmailer@ev.netlab.jp>,
[ruby-dev:15242] Re: gc.c (gc_mark_rest): declare work area as static
On Thu, 22 Nov 2001 16:21:17 +0900
"K.Kosako" <kosako@sofnec.co.jp> wrote:
> 現在のGCのアルゴリズム(matz-sheepman)を少し変更しようと思って、
> テスト用スクリプトを書いているうちに、GCが永遠に戻ってこない
> 現象を発見しました。(最新版です)
>
> gc_mark_rest()から再帰的に呼ぶ事のできるrb_gc_mark()の深さが、
> この現象が起こる場合、一段階だけになっているのが原因で永久に
> 終わらないようです。
>
再現しました。
原因は、実際にマークする前にスタックの長さをチェックしていたからだと
思います。rb_gc_mark の制御の流れを整理したら直りました。
もとのコードでは、
マークしていないオブジェクトを発見→
マークする前にスタックの長さをチェック→
溢れそうなので何もせずリターン→
マークしていないオブジェクトを発見....
(以下永遠にくり返し)
となる可能性があったんですね。気づきませんでした。
# return の多用はプログラムの流れを分かり難くしますね。反省。
Index: gc.c
===================================================================
RCS file: /src/ruby/gc.c,v
retrieving revision 1.79
diff -u -r1.79 gc.c
--- gc.c 2001/11/21 15:41:26 1.79
+++ gc.c 2001/11/22 11:15:28
@@ -464,7 +464,7 @@
while(p != tmp_arry){
p--;
- rb_gc_mark(*p);
+ rb_gc_mark_children(*p);
}
}
@@ -571,28 +571,25 @@
if (obj->as.basic.flags == 0) return; /* free cell */
if (obj->as.basic.flags & FL_MARK) return; /* already marked */
- if (!mark_stack_overflow){
+ obj->as.basic.flags |= FL_MARK;
+
+ if (mark_stack_overflow){
+ mark_all &= 0;
+ }else{
int ret;
CHECK_STACK(ret);
if (ret) {
if (mark_stack_ptr - mark_stack < MARK_STACK_MAX) {
*mark_stack_ptr = ptr;
- mark_stack_ptr++;
- return;
+ mark_stack_ptr++;
}else{
mark_stack_overflow = 1;
}
+ }else{
+ rb_gc_mark_children(ptr);
}
- }
-
- obj->as.basic.flags |= FL_MARK;
-
- if (mark_stack_overflow){
- mark_all &= 0;
- return;
- }else{
- rb_gc_mark_children(ptr);
}
+
}
void
--
sheepman / TAMURA Takashi
sheepman@tcn.zaq.ne.jp http://www.tcn.zaq.ne.jp/sheepman/
Key fingerprint = 4E13 FE38 CD73 48D3 38AE 00EE 9E28 F98B D569 848E