[#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:15160] Re: Using static mark stack, GC is slow.
sheepmanさんの<20011111012752.65c0e153.sheepman@tcn.zaq.ne.jp>から
> これを回避するため、rb_gc_markするたびに実際にCのスタックの長さを
> 計って、溢れそうな時だけ、staticな領域に退避するコードを
> 書いてみました。速度的には結構改善されます。すくなくとも僕の環境では。
CVSに更新されたものを読んで、幾つか気付いた点があります。
init_mark_stack()
memsetでの初期化は不要
gc_mark_all()
ヒープ中なのでspecial constのチェックは不要、
その代わり、finalizerの実行が遅延されたオブジェクトのチェックが必要
gc_mark_rest()
memcpy() -> MEMCPY()
rb_gc_mark()
special const等のチェックを先に行ったほうが、
不要なものがmark_stackに入らない
--- gc.c.orig Tue Nov 13 17:19:51 2001
+++ gc.c Wed Nov 14 15:16:23 2001
@@ -356,7 +356,6 @@
{
mark_stack_overflow = 0;
mark_stack_ptr = mark_stack;
- memset(mark_stack, 0, MARK_STACK_MAX);
}
#define MARK_STACK_EMPTY (mark_stack_ptr == mark_stack)
@@ -375,8 +374,8 @@
for (i = 0; i < heaps_used; i++) {
p = heaps[i]; pend = p + heaps_limits[i];
while (p < pend) {
- if (!(rb_special_const_p((VALUE)p))
- && p->as.basic.flags&FL_MARK) {
+ if ((p->as.basic.flags & FL_MARK) &&
+ (p->as.basic.flags != FL_MARK)) {
rb_gc_mark_children((VALUE)p);
}
p++;
@@ -392,8 +391,8 @@
VALUE *p;
p = (mark_stack_ptr - mark_stack) + tmp_arry;
- memcpy(tmp_arry, mark_stack, MARK_STACK_MAX);
-
+ MEMCPY(tmp_arry, mark_stack, VALUE, MARK_STACK_MAX);
+
init_mark_stack();
while(p != tmp_arry){
@@ -534,6 +533,10 @@
{
register RVALUE *obj = RANY(ptr);
+ if (rb_special_const_p(ptr)) return; /* special const not marked */
+ if (obj->as.basic.flags == 0) return; /* free cell */
+ if (obj->as.basic.flags & FL_MARK) return; /* already marked */
+
if (!mark_stack_overflow){
int ret;
CHECK_STACK(ret);
@@ -544,15 +547,10 @@
return;
}else{
mark_stack_overflow = 1;
- printf("mark_stack_overflow\n");
}
}
}
- if (rb_special_const_p((VALUE)obj)) return; /* special const not marked */
- if (obj->as.basic.flags == 0) return; /* free cell */
- if (obj->as.basic.flags & FL_MARK) return; /* already marked */
-
obj->as.basic.flags |= FL_MARK;
if (mark_stack_overflow){
--
小迫@ソフネック 渋谷区恵比寿1-15-1