[#30872] segv when reentering into Fiber with callcc — sheepman <sheepman@...>

こんばんは、sheepman です。

15 messages 2007/06/01
[#30899] Re: segv when reentering into Fiber with callcc — SASADA Koichi <ko1@...> 2007/06/06

 ささだです。

[#30905] Re: segv when reentering into Fiber with callcc — "Yusuke ENDOH" <mame@...> 2007/06/06

遠藤と申します。

[#30906] Re: segv when reentering into Fiber with callcc — SASADA Koichi <ko1@...> 2007/06/06

 ささだです。

[#30929] secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...>

-----BEGIN PGP SIGNED MESSAGE-----

51 messages 2007/06/08
[#30930] Re: secrand.rb — Tanaka Akira <akr@...> 2007/06/08

In article <4669066C.2080307@sarion.co.jp>,

[#30934] Re: secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/06/08

-----BEGIN PGP SIGNED MESSAGE-----

[#30935] Re: secrand.rb — Tanaka Akira <akr@...> 2007/06/08

In article <46694461.4060706@sarion.co.jp>,

[#30936] Re: secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/06/08

-----BEGIN PGP SIGNED MESSAGE-----

[#30938] Re: secrand.rb — Tanaka Akira <akr@...> 2007/06/08

In article <46697C0B.8060402@sarion.co.jp>,

[#30939] Re: secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/06/08

-----BEGIN PGP SIGNED MESSAGE-----

[#30940] Re: secrand.rb — Tanaka Akira <akr@...> 2007/06/08

In article <4669DAB0.4050705@sarion.co.jp>,

[#30944] Re: secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/06/09

-----BEGIN PGP SIGNED MESSAGE-----

[#30945] Re: secrand.rb — Tanaka Akira <akr@...> 2007/06/09

In article <466AA73C.9030407@sarion.co.jp>,

[#30946] Re: secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/06/09

-----BEGIN PGP SIGNED MESSAGE-----

[#30950] Re: secrand.rb — Nobuyoshi Nakada <nobu@...> 2007/06/11

なかだです。

[#31173] Re: Random — Tanaka Akira <akr@...> 2007/07/10

In article <469253E9.9010203@sarion.co.jp>,

[#31174] Re: Random — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/07/10

-----BEGIN PGP SIGNED MESSAGE-----

[#31178] Re: Random — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/07/11

-----BEGIN PGP SIGNED MESSAGE-----

[#31179] Re: Random — Tanaka Akira <akr@...> 2007/07/11

In article <4694338C.7090303@sarion.co.jp>,

[#31183] Re: Random — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/07/11

-----BEGIN PGP SIGNED MESSAGE-----

[#30971] Linux/ia64で'ucontext_t' undeclared — akira yamada / やまだあきら <akira@...>

最近のRuby 1.9をLinux/ia64上でmakeしようとすると

16 messages 2007/06/13
[#30973] Re: Linux/ia64で'ucontext_t' undeclared — Yukihiro Matsumoto <matz@...> 2007/06/13

まつもと ゆきひろです

[#30974] Re: Linux/ia64で'ucontext_t' undeclared — akira@... 2007/06/13

Yukihiro Matsumoto さんは書きました:

[#30975] Re: Linux/ia64で'ucontext_t' undeclared — Yukihiro Matsumoto <matz@...> 2007/06/13

まつもと ゆきひろです

[ruby-dev:31058] Re: Fixnum on IL32LLP64 (was Re: problem in bignorm)

From: "U.Nakamura" <usa@...>
Date: 2007-06-26 04:27:11 UTC
List: ruby-dev #31058
こんにちは、なかむら(う)です。

いきなり1年近く前の話で恐縮なんですが、

In message "[ruby-dev:29056] Re: Fixnum on IL32LLP64 (was Re: problem in bignorm)"
    on Jul.18,2006 17:04:07, <matz@ruby-lang.org> wrote:
| |もったいないんですけど、現実問題として、早くBignumになっちゃ
| |うことによる性能低下やなんかと、実装上のこれだけの苦労を比較
| |すると、どうも苦労に見合ってないんじゃなかろうか、というのが、
| |前に試しに作業してみたときの私の感想でした。
| |そのときはNUM2LONGあたりをいじってたあたりでもう投げ出しまし
| |たけど(忍耐力がない
| 
| うーん、じゃあ、Fixnum=longで妥協しちゃおうかなあ(根性なし)。

というわけで、IL32LLP64環境ではFixnumをlongの範囲とする、とい
うことで結論が出ているということでいいでしょうか?
これでよければ、以下のパッチをcommitしたいのですが、いいです
かね?
# 他にもinsns.defへのパッチが必要なんですが、これは別途ささだ
# さんと相談します。

Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h	(revision 12615)
+++ include/ruby/ruby.h	(working copy)
@@ -151,13 +151,8 @@
 # endif
 #endif
 
-#ifdef LONG_LONG_VALUE
-# define FIXNUM_MAX (LLONG_MAX>>1)
-# define FIXNUM_MIN RSHIFT((LONG_LONG)LLONG_MIN,1)
-#else
-# define FIXNUM_MAX (LONG_MAX>>1)
-# define FIXNUM_MIN RSHIFT((long)LONG_MIN,1)
-#endif
+#define FIXNUM_MAX (LONG_MAX>>1)
+#define FIXNUM_MIN RSHIFT((long)LONG_MIN,1)
 
 #define FIXNUM_FLAG 0x01
 #define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
Index: bignum.c
===================================================================
--- bignum.c	(revision 12615)
+++ bignum.c	(working copy)
@@ -107,8 +107,8 @@
     long len = RBIGNUM(x)->len;
     BDIGIT *ds = BDIGITS(x);
 
-    if (len*SIZEOF_BDIGITS <= sizeof(VALUE)) {
-	SIGNED_VALUE num = 0;
+    if (len*SIZEOF_BDIGITS <= sizeof(long)) {
+	long num = 0;
 	while (len--) {
 	    num = BIGUP(num) + ds[len];
 	}
@@ -415,7 +415,7 @@
     }
     len *= strlen(str)*sizeof(char);
 
-    if (len <= (sizeof(VALUE)*CHAR_BIT)) {
+    if (len <= (sizeof(long)*CHAR_BIT)) {
 	unsigned long val = strtoul(str, &end, base);
 
 	if (str < end && *end == '_') goto bigparse;

それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>
あ、-pついてない



In This Thread