On Mon, 15 Dec 2003 18:35:19 +0900 In article <20031215180456.77A1.USA / osb.att.ne.jp> [[ruby-dev:22294] Re: mswin32 optimize] "U.Nakamura" <usa / osb.att.ne.jp> wrote: > | > 状況から考えて、TietewさんはVC7で試していらっしゃると思います > | > が、VC6では -Og 自体にバグがあって、今回のパッチだけではうま > | > くいきませんので、OPTFLAGS は外部から指定してください ^^; > | > | ありゃ。じゃあ,VC7.1 なら -O2 でも旨くいった,ということで。 > | ~~ > | # VC7.0 と VC7.1 では C++ 部分が大幅に変わってるんです。 > | # 純粋な C の部分はあまり変更無いと思うけど… > > 昔々VC7.0(VC.NET)で試したときも、-O2 でだいたいうまくいってい > たようなので、この件に関してはVC7.0もVC7.1(VC.NET2003)でも同 > 様だろうと思います。 > だめなのはVC6ですね。 > > それはそれとして、私の手元のVC7.1で試してみたところ、unit test > の方は、最初にいきなり lib/tmpdir.rb:20 でSEGVして通りませんで > した。-Og- なら通ったので、他にもまだなんかあると思われます... おかしいですね。ほかは何もいじってないはずなんですけど。 あ,Win32API のパッチ (cf.[ruby-dev:21991]) 当ててありました。こ れだ。 > 環境変数OSについてはまったく気づいてませんでした。うひ。 > 「OS」はそのうち別のに変えますが、それはそれとして要望は理解 > できますので、取り込みます。 : > -pdb:none はVC7依存ですが、VC6で*.pdbを吐かれてもいいような気 > がするので取りこみます。 > -debugについても、-Ziがリンク時に有効になってないことが判明し > たので、そのまま取り込みます。 > -opt:ref -opt:icfも同様。-mapはパス。 ありがとうございます。-map は外から指定します。 > 先のメールで一個聞き忘れましたが、 > > | +NORETURN(static void stack_extend _((rb_thread_t,int))); > > これは必要ですか? そういえば stack_extend も noreturn だよなあとアセンブリ出力を見 てて思っただけです。特に必要というわけでは。(節約数バイト) ―[ Tietew ]―――――――――――――――――――――――――― メ : tietew / tietew.net / tietew / raug.net / tietew / masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA