[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:7400] pdump 削除
- X-ml-count: 7419
- Subject: Re: [MD:7400] pdump 削除
- From: "Shun-ichi GOTO" <shunichi.goto@xxxxxxxxx>
- Date: Wed, 26 Jul 2006 22:29:35 +0900
On 7/26/06, MIYOSHI Masanori <miyoshi@xxxxxxxxxxx> wrote:
> >>>>> [meadow-develop : No.7417] にて
> >>>>> 後藤さんは書きました:
> > ということで、r4121での修正にoptimizeの影響を受ける箇所がある
> > ことになりますね。
>
> 調査ありがとうございます。最適化が原因だとは思いもしませんでした。
ふだんならきっと思いつかないのですが、たまたま先日
temacs.exeのサイズを調べるのに --no-opt や --no-debug での
コンパイルをしたため、それが残っていたので、vc6で --no-debug
でコンパイルするという偶然を得たのでした。
なので、小関さんのおかげ。
> VC6 の場合は、regex_compile() を最適化しないように regex.c に手を
> 加えました。
r4122で症状は出なくなることを確認しました。
症状が出る状態での regex_compile()付近の逆アセンブルは
とりあえずとってみたのですが、
> > となると、以前三好さんがコメントアウトしたのは、そういったことが
> > 理由だったのかも?
>
> もう少し詳細にコメントを書いておけば良かったですね。
書けるとしても症状くらいだったかもしれませんが、
あの部分を狙って削除したのにはなにか検討結果があったのだろうから
それが知りたいところですね。催眠術かけて過去の自分に戻ってもらう?
とりあえず、2つのバージョンの逆アセンブルはとってみたのだけど、
そっち方面から不具合箇所を見つけるのは簡単ではないさそう。
それとは別に、NTEmacs + msvc6でのコンパイルの場合が気になったので
調べてみると、nmake.def と nmake.mw32.def のコンパイルオプションの
違いがあるので、NTEmacsと同じにしてみたら r4121でもOKみたいです。
両者の差はこうです:
{{{
Index: nmake.mw32.defs
===================================================================
--- nmake.mw32.defs (revision 4121)
+++ nmake.mw32.defs (working copy)
@@ -197,7 +197,7 @@
!ifdef NOOPT
ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Od -G3d -Zi
-Zp8 $(DEBUG_FLAG)
!else
-ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -O2 -Ob2 -GBdF
-Zi -Zp8 $(DEBUG_FLAG)
+ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Oxsb2 -Oy -G6dF
-Zi -Zp8 $(DEBUG_FLAG)
!endif
ARCH_LDFLAGS = -align:0x1000 $(SYS_LDFLAGS)
}}}
-O と -G が変わってます
新しいほうはNTEmacsと同じです。
となると、NTEmacsでは同種の事をもう経験済みだったりするのかな。
--
Shun-ichi GOTO