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