[#12763] NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 2001/04/04
[#12765] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/04

Yukihiro Matsumotoさんの

[#12767] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/04

まつもと ゆきひろです

[#12787] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/06

Yukihiro Matsumotoさんの

[#12789] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/06

まつもと ゆきひろです

[#12790] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/06

Yukihiro Matsumotoさんの

[#12792] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/06

まつもと ゆきひろです

[#12838] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/10

Yukihiro Matsumotoさんの

[#12795] recursive malloc / fork deadlock / thread deadlock — "Akinori MUSHA" <knu@...>

 添付のスクリプトで、いくつかのプラットフォームで問題が発生する

43 messages 2001/04/07
[#12799] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/07

まつもと ゆきひろです

[#12801] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/08

なかだです。

[#12802] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/09

まつもと ゆきひろです

[#12822] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/09

なかだです。

[#12827] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/09

まつもと ゆきひろです

[#12836] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12840] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12852] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12854] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12857] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12859] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12862] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/10

ごとうゆうぞうです。

[#12866] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12878] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/11

ごとうゆうぞうです。

[#12888] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/11

ごとうゆうぞうです。

[#12892] Re: recursive malloc / fork deadlock / thread deadlock — Takahiro Kambe <taca@...> 2001/04/12

完全に理解せずに書いています。

[#12895] Re: recursive malloc / fork deadlock / thread deadlock — Jun Adachi <adachi@...> 2001/04/12

安達@沖データと申します。

[#12898] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/12

ごとうゆうぞうです。

[#12830] 1.6.4 preview — "Akinori MUSHA" <knu@...>

 そろそろ FreeBSD 4.3-RELEASE 前の ports のフリーズが迫っている

23 messages 2001/04/09
[#12844] Re: 1.6.4 preview — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12921] ObjectSpace.each_object(Symbol) — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

23 messages 2001/04/13
[#12923] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#12928] Re: ObjectSpace.each_object(Symbol) — Hisayasu Nakao <h-nakao@...> 2001/04/13

中尾@富士通です。

[#12929] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#12934] Re: ObjectSpace.each_object(Symbol) — keiju@... (石塚圭樹) 2001/04/13

けいじゅ@日本ラショナルソフトウェアです.

[#12941] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[ruby-dev:12938] Re: [ruby-list:29232] Re: Ruby プロセスが肥大化していく

From: nobu.nakada@...
Date: 2001-04-13 14:35:06 UTC
List: ruby-dev #12938
なかだです。

# 余談ですが。

At Fri, 13 Apr 2001 17:35:24 +0900,
matz@zetabits.com (Yukihiro Matsumoto) wrote:
> |> ありがとうございます。こちらでも確認しました。取り込みます。
> |> しかし、他人の書いたeval.cのような複雑なプログラムでよくリー
> |> クが発見できましたね。すごいなあ。
> |
> |中田さんのパッチ [ruby-list:29217]でfree()する
> |対象が分かったので、同様にしただけです。すみません。
> 
> それも「すごいなあ」の対象です。すごいなあ > 中田さん

  いやどうも。まったくの力業です。Purify とか使えれば楽なんでしょ
うけど、個人じゃ買えるようなもんじゃなし、ってことでこういう手
を使ってゴリゴリと。eval.c 限定品。

Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.172
diff -u -2 -p -r1.172 eval.c
--- eval.c	2001/03/28 08:43:24	1.172
+++ eval.c	2001/04/12 15:12:02
@@ -111,4 +111,64 @@ static VALUE umethod_bind _((VALUE, VALU
 static VALUE rb_mod_define_method _((int, VALUE*, VALUE));
 
+#undef xmalloc
+#undef xcalloc
+#undef xrealloc
+#undef xfree
+#define xmalloc(size) allocated(ruby_xmalloc(size),__LINE__)
+#define xcalloc(n,size) allocated(ruby_xcalloc(n,size),__LINE__)
+#define xrealloc(ptr,size)  reallocated(ptr, ruby_xrealloc(ptr,size))
+#define xfree(ptr) ruby_xfree(freeing(ptr))
+#define free(ptr) xfree(ptr)
+
+static st_table *alloc_tbl(void);
+
+static enum st_retval
+dump_allocated_1(void *ptr, int line, void *arg)
+{
+    printf("%d:%p\n", line, ptr);
+    return ST_CONTINUE;
+}
+
+static void
+dump_allocated(void)
+{
+    rb_gc();
+    st_foreach(alloc_tbl(), dump_allocated_1, NULL);
+}
+
+static st_table *alloc_tbl(void)
+{
+    static st_table *tbl;
+    if (!tbl) {
+	tbl = st_init_numtable();
+	atexit(dump_allocated);
+    }
+    return tbl;
+}
+
+static inline void*
+allocated(void *ptr, int line)
+{
+    st_add_direct(alloc_tbl(), ptr, (char *)line);
+    return ptr;
+}
+
+static inline void*
+freeing(void *ptr)
+{
+    if (ptr) st_delete(alloc_tbl(), &ptr, NULL);
+    return ptr;
+}
+
+static inline void*
+reallocated(void *optr, void *nptr)
+{
+    char *line = NULL;
+
+    if (optr) st_delete(alloc_tbl(), &optr, &line);
+    st_add_direct(alloc_tbl(), nptr, line);
+    return nptr;
+}
+
 static int scope_vmode;
 #define SCOPE_PUBLIC    0

> |完璧には理解できていません。
> |今年中に、Rubyの実行時環境(Ruby-Stack)が本当に理解できるかどうか、
> |あやしい程度の頭です。

  いや、数ヶ月足らずでこれだけ理解してるというか、あのパッチが
出てくるのはすごいです。よく分かってませんが(^^;。私なんかいま
だに eval.c、regex.c、parse.y は三大鬼門ですから。

# あと win32.c も(笑)。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next