[#28230] bcc32 memory manager — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

15 messages 2006/01/18

[#28243] FUNCTION_CALL_MAY_RETURN_TWICE — Hajimu UMEMOTO <ume@...>

梅本です。

18 messages 2006/01/20

[#28270] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

17 messages 2006/01/23
[#28271] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/23

山本です。

[#28272] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — WATANABE Hirofumi <eban@...> 2006/01/23

わたなべです。

[#28273] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/23

山本です。

[#28274] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/24

山本です。

[#28275] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "U.Nakamura" <usa@...> 2006/01/24

こんにちは、なかむら(う)です。

[#28286] SEGV with zlib — Tanaka Akira <akr@...17n.org>

最近、Data オブジェクトの free 関数が気になっているのですが、

24 messages 2006/01/30
[#28303] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28304] Re: SEGV with zlib — Yukihiro Matsumoto <matz@...> 2006/02/06

まつもと ゆきひろです

[#28305] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28306] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28307] Re: SEGV with zlib — Tietew <tietew-ml-ruby-dev@...> 2006/02/06

[#28308] Re: SEGV with zlib — Yukihiro Matsumoto <matz@...> 2006/02/06

まつもとゆきひろです。

[ruby-dev:28262] Re: FUNCTION_CALL_MAY_RETURN_TWICE

From: Hajimu UMEMOTO <ume@...>
Date: 2006-01-21 18:40:21 UTC
List: ruby-dev #28262
  梅本です。

>>> Sun, 22 Jan 2006 00:43:12 +0900 の刻に「ume」、すなわち
>>> Hajimu UMEMOTO <ume@mahoroba.org> 氏曰く

ume>   その後、AMD64 や Intel で、

ume> rbconfig.db updated
ume> ./mkconfig.rb:156: undefined method `touch' for FileUtils:Module (NoMethodError)
ume> *** Error code 1

ume> となって build できないという報告が多数で、さてどうしましょうって感じ。orz
ume> 手元の環境では再現しないんですよね。

  どんどん問題報告が来るので、とりあえず、以下のパッチを入れて、sparc
と ia64 以外の時は以前のように FUNCTION_CALL_MAY_RETURN_TWICE を
getcontext() の前で一度だけ呼ぶように戻しました。理不尽ではありますが、
少なくともそれで以前は動いていたということで。

Index: eval.c
diff -u -p eval.c.orig eval.c
--- eval.c.orig	Sun Jan 22 02:38:43 2006
+++ eval.c	Sun Jan 22 02:50:12 2006
@@ -167,25 +167,31 @@ rb_jump_context(env, val)
     "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7", \
     "%i0", "%i1", "%i2", "%i3", "%i4", "%i5", "%i7"); })
 #endif
-#elif defined(__ia64)
+#else
 static jmp_buf function_call_may_return_twice_jmp_buf;
 int function_call_may_return_twice_false = 0;
 #define FUNCTION_CALL_MAY_RETURN_TWICE \
   (function_call_may_return_twice_false ? \
    setjmp(function_call_may_return_twice_jmp_buf) : \
    0)
-#else
-#define FUNCTION_CALL_MAY_RETURN_TWICE 0
 #endif
 #else
 #define FUNCTION_CALL_MAY_RETURN_TWICE 0
 #endif
 #define ruby_longjmp(env, val) rb_jump_context(env, val)
+#if GCC_VERSION_BEFORE(4,0,3) && \
+    (defined(sparc) || defined(__sparc__) || defined(__ia64))
 #define ruby_setjmp(j) ((j)->status = 0, \
     FUNCTION_CALL_MAY_RETURN_TWICE, \
     getcontext(&(j)->context), \
     FUNCTION_CALL_MAY_RETURN_TWICE, \
     (j)->status)
+#else
+#define ruby_setjmp(j) ((j)->status = 0, \
+    FUNCTION_CALL_MAY_RETURN_TWICE, \
+    getcontext(&(j)->context), \
+    (j)->status)
+#endif
 #else
 typedef jmp_buf rb_jmpbuf_t;
 #if !defined(setjmp) && defined(HAVE__SETJMP)

-- 
梅本 肇 @ インターネット互助会横浜  http://www.imasy.org/~ume/
ume@mahoroba.org  ume@{,jp.}FreeBSD.org
プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)

In This Thread