Strtod $B$N@:EY(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31591] Re: strtod e$B$N@:EYe(B”
on Wed, 22 Aug 2007 16:14:40 +0900, Satoshi N.
[email protected] writes:

|> Rubye$B$G$OITMW$Je(BKR_headerse$B$de(BCONSTe$B$J$s$+$b:o$C$A$c$*$&$+$J$“!#e(B
|
|e$B$3$s$J46$8$G$7$g$&$+!#e(B
|
|e$B!&e(B#define KR_headers e$B$r:o=|e(B
|e$B!&e(B#ifdef KR_headers e$B$G0O$^$l$F$$$?ItJ,$r:o=|$7$F@07Ae(B
|e$B!&e(BCONST e$B”*e(B const e$B$HCV49$7$F!"e(B#define CONST e$B$r:o=|e(B

e$B$"$j$,$H$&$4$6$$$^$9!#<h$j9~$_$^$9!#e(B

中川です。

On 2007/08/22, at 7:35, Yukihiro M. wrote:

Rubyでは不要なKR_headersやCONSTなんかも削っちゃおうかなあ。

こんな感じでしょうか。

・#define KR_headers を削除
・#ifdef KR_headers で囲まれていた部分を削除して整形
・CONST → const と置換して、#define CONST を削除

中川です。

strtod ã®ä»¶ã§è¿½åŠ ã§ã™ã€‚

gcc のソースを確認したところ、Mac OS X でしか BIG_ENDIAN を
define してくれないようなので、CPU ごとのエンディアン判定を
ã‚ã‹ã‚‹ç¯„å›²ã§è¿½åŠ ã—ã¾ã—ãŸã€‚

また、Win32 環境の判定がコンパイラ限定でうまくないので、型判定に
統合しました。

e$B$J$+$@$G$9!#e(B

At Thu, 23 Aug 2007 20:06:22 +0900,
Satoshi N. wrote in [ruby-dev:31623]:

gcc e$B$N%=!<%9$r3NG’$7$?$H$3$m!"e(BMac OS X e$B$G$7$+e(B BIG_ENDIAN e$B$re(B
define e$B$7$F$/$l$J$$$h$&$J$N$G!“e(BCPU e$B$4$H$N%(%s%G%#%”%sH=Dj$re(B
e$B$o$+$kHO0O$GDI2C$7$^$7$?!#e(B

autoconfe$B$Ge(BWORDS_BIGENDIANe$B$H$$$&%^%/%m$,Dj5A$5$l$k$O$:$G$9!#e(B

e$B$^$?!"e(BWin32 e$B4D6-$NH=Dj$,%3%s%Q%$%i8BDj$G$&$^$/$J$$$N$G!"7?H=Dj$Ke(B
e$BE}9g$7$^$7$?!#e(B

__int32e$B$de(B__int64e$B$H$$$&%^%/%m$,$I$3$GDj5A$5$l$k$N$+CN$j$^$;$s$,!"e(B
config.he$B$Ke(B SIZEOF_INT, SIZEOF_LONG, SIZEOF_LONG_LONG,
HAVE_LONG_LONG, LONG_LONG e$B$J$I$N%^%/%m$,Dj5A$5$l$F$$$k$O$:$G$9!#e(B

e$B$J$+$@$G$9!#e(B

At Thu, 23 Aug 2007 22:45:19 +0900,
Nobuyoshi N. wrote in [ruby-dev:31624]:

config.he$B$Ke(B SIZEOF_INT, SIZEOF_LONG, SIZEOF_LONG_LONG,
HAVE_LONG_LONG, LONG_LONG e$B$J$I$N%^%/%m$,Dj5A$5$l$F$$$k$O$:$G$9!#e(B

e$B$3$s$J$H$3$m$G!"e(Blinux,cygwin,mingw32,mswin32,bcc32e$B$G$O%3%s%Q%$%ke(B
e$B$G$-$^$7$?!#$^$@e(Bgcc
-Walle$B$G%3%s%Q%$%k$9$k$HBgNL$N7Y9p$,=P$^$9$,!#e(B

Index: util.c

— util.c (e$B%j%S%8%g%se(B 13242)
+++ util.c (e$B:n6H%3%T!<e(B)
@@ -815,5 +815,5 @@ ruby_getcwd(void)
*/

-#ifdef BIG_ENDIAN
+#ifdef WORDS_BIGENDIAN
#define IEEE_BIG_ENDIAN
#else
@@ -843,8 +843,6 @@ ruby_getcwd(void)
#endif

-#if defined(_MSC_VER) || defined(BORLANDC)
-#define Long __int32
-#define ULong unsigned __int32
-#define IEEE_LITTLE_ENDIAN
+#if HAVE_LONG_LONG
+#define Llong LONG_LONG
#endif

e$BCf@n$G$9!#e(B

On 2007/08/23, at 22:45, Nobuyoshi N. wrote:

autoconfe$B$Ge(BWORDS_BIGENDIANe$B$H$$$&%^%/%m$,Dj5A$5$l$k$O$:$G$9!#e(B

e$B$?$7$+$K!#e(B
SunOS 5.10 / SPARC e$B$Ge(B autoconf e$B$7$F$_$k$H!"e(B
WORDS_BIGENDIAN e$B$,Dj5A$5$l$F$$$?$N$G!"e(B
e$B$=$l$GLdBj$J$5$=$&$G$9!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31626] Re: strtod e$B$N@:EYe(B”
on Fri, 24 Aug 2007 00:34:03 +0900, Nobuyoshi N.
[email protected] writes:

|e$B$3$s$J$H$3$m$G!"e(Blinux,cygwin,mingw32,mswin32,bcc32e$B$G$O%3%s%Q%$%ke(B
|e$B$G$-$^$7$?!#$^$@e(Bgcc -Walle$B$G%3%s%Q%$%k$9$k$HBgNL$N7Y9p$,=P$^$9$,!#e(B

e$B%3%_%C%H$7$F$/$@$5$$!#7Y9p$O$$$$$$$D$V$9$H$7$F!#e(B