#Ubuntu 8.10 で Gauche 0.8.14(リリース版)をビルドすると、vm.cのコンパイルが刺さる
#なんか以前にここで似たような話を見た気がするんだが見つからない...
#gcc-4.3だとだめなのかしらん
#数十分かかる、という話は見たことがある。
#10分ほど待ったんだけど、忍耐が足りなかったのかな(笑)
#今gcc-4.2でビルド中
#昔PowerBook G4でcompile.cのコンパイルに15分とかかかって悲しい思いをしたことがあったけど、よもやLinuxでそんなことがあるとは
#gcc-4.2だとあっさりコンパイル終了
#compile.c は target が powerpc だから時間がかかっていたんだと思う。x86 linux 上で ppc linux 向けに cross build したときも同じようだった記憶があるので。
#trunk をテストすると numbers でエラーになると昨日報告しました。 ですが、gcc 3.4.5 にしたらテスト通りました。 昨日は 4.4.0 を使ってました。 いずれも Mingw+msys の環境です。
#おーなるほど。私の環境も3.4.5です。
#私の環境ではmingw+msysで file.utilのcheck-directory-treeのテストだけfailします。そちらはどうですか?
#Testing gauche.process ... failed.
discrepancies found. Errors are:
test process-kill: expects 9 => got #f
test wait with signalling error: expects (#t 9) => got #t
#Testing file.util ... failed.
discrepancies found. Errors are:
test check-directory-tree: expects #t => got #f
#ありゃ。
#failed はこれだけです。 何が違うんだろう…
#gauche.processのそこは今日午後いじったとこだな…
#ちょっとclean makeしてみます。
#あれ、process通りますね。タイミングの問題かな。
#repl から何度かやってみると…
#gosh> test process-kill, expects 9 ==> ERROR: GOT #f
#<undef>
gosh> test process-kill, expects 9 ==> ok
#<undef>
gosh> test process-kill, expects 9 ==> ERROR: GOT #f
#<undef>
gosh> test process-kill, expects 9 ==> ERROR: GOT #f
#<undef>
gosh> test process-kill, expects 9 ==> ok
#<undef>
#通ったり通らなかったりですね。
#タイミングっぽいですね。子プロセスの立ち上がりが間に合ってないとかかな。
#ああ、すぐに親からkillしてるからなあ。
#kill の前にスリープを入れると常に ok になるみたいです。 やはりタイミングか…。
#process-killの前にハンドシェークを入れてみました。ちょっと試してみてください。
#良化しました。一応何度か試してみましたが大丈夫みたいです。
#Testing gauche.process ... failed.
discrepancies found. Errors are:
test wait with signalling error: expects (#t 9) => got #t
#こっちはまだ残ってますけど
#そっちも子プロセス起動直後にkillしてるから同じ理由かも。
#というわけでさらにhandshake追加しました。
#passed.
#check-directory-treeの方は多分パーミッション絡みじゃないかと思うんですがまだ追ってません。
#プロセスやスレッド関係はちょっとしたタイミングでこういうことがあるんですね。 速いマシンの方が顕現し難いのかな。