Gauche > Archives > 2011/08/06

2011/08/06 12:41:58 UTCshiro
#
0.9.2出した
2011/08/06 12:46:00 UTCyuumi3@twitter
#
Gauche 0.9.2 がリリースされた!RT : shiro: 0.9.2出した http://bit.ly/mZWOW7
2011/08/06 12:48:01 UTCtorus@twitter
#
おつかれさまでした〜。 RT @yuumi3: Gauche 0.9.2 がリリースされた!RT : shiro: 0.9.2出した http://t.co/5Y7dENO
2011/08/06 12:53:49 UTC(び)
#
いつも通り、リポジトリから最新をインストールする、リリースしがいのないユーザですごめんなさい。
2011/08/06 13:00:29 UTCshiro
#
いやー、プレリリースをテストしていただいて助かってます。今回も0.9.2_pre2からは実質変更無しでいけました。
2011/08/06 13:32:44 UTCえんどう
#
$ gosh -V
Gauche scheme shell, version 0.9.2 [utf-8,pthreads], i386-apple-darwin11.0.0
#
64ビットのはずだけどこれでいいのかにゃ。
2011/08/06 13:41:00 UTCokuoku
#
たしかconfig.guessとかの出力はi386になっちゃうのでfileコマンドでひとつ。。
#
/usr/local/bin/gosh: Mach-O 64-bit executable x86_64
2011/08/06 13:42:51 UTCshiro
#
あれれ、でもそこの判定間違えてるとgauche/arith_*.hのインラインアセンブラで変なの読んじゃわないかな
2011/08/06 13:44:10 UTCokuoku
#
prism:Gauche-0.9.2 oku$ ./config.guess
i386-apple-darwin11.0.0
2011/08/06 13:44:44 UTCshiro
#
src/gauche/config.hで、(1)SCM_TARGET_I386は定義されてる? (2)SIZEOF_LONGは8になってる?
#
両方yesだとlongの乗算を32bitレジスタでやっちゃうからまずい気が…
2011/08/06 13:45:32 UTCokuoku
#
その辺は上手く行くはず。。moshではconfig.guessはパッケージ作るときに差し替えてるけど。
#
prism:mosh-0.2.7 oku$ ./config.guess
x86_64-apple-darwin11.0.0
2011/08/06 13:46:57 UTCshiro
#
上手く行くのはなんで?
2011/08/06 13:47:26 UTCokuoku
#
Appleのgccが空気を読んで64bitのフロントエンドを呼ぶようになったはず。。
#
あ、64bitカーネルでないとダメかも
2011/08/06 13:48:12 UTChigepon@twitter
#
おお。 RT @yuumi3: Gauche 0.9.2 がリリースされた!RT : shiro: 0.9.2出した http://bit.ly/mZWOW7
2011/08/06 13:48:49 UTCshiro
#
アセンブラでmullと32bit suffix明示してるんだけど、それでも空気読んでくれるのかなあ
#
結果が32bit越える場合は一度オーバフローと判断して、bignum変換のルーチンがfixnumレンジに入ってるからfixnumにしてくれる。でも被乗数が32bit越えてたらどうなるだろ。
#
gosh> (* 4294967297 16777215)
72057589759737855
#
これ、こうなります?
2011/08/06 13:51:14 UTCokuoku
#
prism:llvmcmake oku$ gosh
gosh> (* 4294967297 16777215)
72057589759737855
#
ふつう。
#
(これはローカルパッチ版の0.9.1なので誰か0.9.2でアレしてください。。
2011/08/06 13:52:03 UTCshiro
#
ひょえー。逆アセンブルしてみないとどうなってるかわからんな。
2011/08/06 13:53:48 UTCokuoku
#
gosh> prism:Gauche-0.9.2 oku$ ./src/gosh
gosh: WARNING: Error while loading initialization file: cannot find file "gauche-init.scm" in *load-path* ("/usr/local/share/gauche-0.9/site/lib" "/usr/local/share/gauche-0.9/0.9.2/lib" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9/lib")(error).
WARNING: couldn't load gauche.interactive

gosh> (* 4294967297 16777215)
72057589759737855
#
0.9.2もビルドしてみました。
2011/08/06 14:07:43 UTCokuoku
#
/* Define to use i386 optimizations */
/* #undef SCM_TARGET_I386 */

/* Define to use x86_64 optimizations */
/* #undef SCM_TARGET_X86_64 */
#
アラ。
#
/* The size of a `int', as computed by sizeof. */
#define SIZEOF_INT 4

/* The size of a `long', as computed by sizeof. */
#define SIZEOF_LONG 8
#
何か間違ってる気もする。。
2011/08/06 14:09:54 UTCshiro
#
SCM_TARGET_I386が定義されないのか。それなら動くのはわかる。最適ではないけれど。
#
あーわかった。darwinの場合は、
#
i386ってのがcpp predefinedな場合に限りSCM_TARGET_I386を定義するようにしてる。これは以前直したんだな。
2011/08/06 14:12:39 UTCokuoku
#
./configure --host=x86_64-apple-darwin11.0.0 --build=x86_64-apple-darwin11.0.0 するとTARGETは定義されるけどSIZEOF_INTは4のままだ
2011/08/06 14:19:24 UTCokuoku
#
あれFreeBSDでもSIZEOF_INTは4なのか
2011/08/06 19:59:59 UTCshiro
#
64bitアーキテクチャでもLP64がほとんどじゃないですか。(と、今調べてたらMSVC/Win64ではLLP64なのか。) どちらもintは32bit。 intが64bitになる処理系も無くはないようだけど触る機会はなさそうna
#
http://en.wikipedia.org/wiki/64-bit#Specific_C-language_data_models