Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

trio (Re: prepare to release 2.0.13)



竹迫です。

>Ryuji Abe wrote:
>>  
>> On Sun, 22 Jun 2003 16:25:32 +0900
>> Tadamasa Teranishi <yw3t-trns@xxxxxxxxxxxxxxx> wrote:
>> 
>> > > あと、個人的に時間がとれなくて作業が滞っていますが、trio
>> > > は2.0.13のリリース前に突っ込みたいと思っています。
>> 
>> いや、最初はとりあえずHEADだけでいいかなと思っていたのですが、
>> ちと困った問題が判明しまして。今はWin32では(v)snprintfの代わり
>> に_(v)snprintfを使っていますが、これは出力が中断された場合に
>> NULL terminateしてくれないのです。

trio-1.10 を入手して、Win32環境でコンパイルしてみました。

■ trio-1.10 (Win32環境でのテスト結果)
--------------------------------------
以下、[1]cygwin-gcc, [2]mingw-gcc, [3]msvc-cl それぞれの環境で
./configure && make && make test した結果です。

[1] cygwin-gcc (Cygwin 1.3.18 / gcc 3.2) の場合
-----------------------------------------------
$ ./configure && make
$ make test
./regression
@(#)$Id: regression.c,v 1.44 2002/12/29 15:08:56 breese Exp $
Verifying strings
Verifying dynamic strings
Verifying special quantities
Verifying formatting
Verification failed in regression.c:351.
  Expected "     -2.3420e-02"
  Got      "             nan"
Verification failed in regression.c:353.
  Expected "     -2.3420e-22"
  Got      "             nan"
Verification failed in regression.c:371.
  Expected "-3141.000000"
  Got      "nan"
Verification failed in regression.c:526.
  Expected "-0x2.ap+4"
  Got      "nan"
Verifying scanning
Verification failed in regression.c:807.
  Expected "-42.000000"
  Got      "nan"
Verifying return values
Verifying allocation
Regression test failed in 5 instance(s)

[2] mingw-gcc (Cygwin 1.3.18 / gcc -mno-cygwin) の場合
------------------------------------------------------
$ CC="gcc -mno-cygwin" ./configure && make
$ make test
./regression
@(#)$Id: regression.c,v 1.44 2002/12/29 15:08:56 breese Exp $
Verifying strings
Verifying dynamic strings
Verifying special quantities
Verifying formatting
Verification failed in regression.c:511.
  Expected "Interrupted system call"
  Got      "unknown"
Verifying scanning
Verifying return values
Verifying allocation
Regression test failed in 1 instance(s)

[3] msvc-cl (MS Visual C++ 6.0 SP5) の場合
------------------------------------------
$ vi Makefile.in  (いくつか手動で修正)
$ perl -p -i.orig -e 's/(\d+)LL/(_int64)$1/' regression.c
$ CC="cl" CFLAGS="-nologo -Gf -W3 -O1 -MD" ./configure && make
$ make test
./regression
@(#)$Id: regression.c,v 1.44 2002/12/29 15:08:56 breese Exp $
Verifying strings
Verifying dynamic strings
Verifying special quantities
Verifying formatting
Verification failed in regression.c:511.
  Expected "Interrupted system call"
  Got      "unknown"
Verifying scanning
Verification failed in regression.c:834.
  Expected "0x2.ap+4"
  Got      "0x0p+0"
Verification failed in regression.c:836.
  Expected "0x1.2d687p+20"
  Got      "0x0p+0"
Verification failed in regression.c:838.
  Expected "0X1.2D687P+20"
  Got      "0X0P+0"
Verifying return values
Verifying allocation
Regression test failed in 4 instance(s)

→ 多分、Namazu で使う分には、大丈夫だと思いますが、
  このまま trio を組み込んでも(品質上)問題ないですかね?>安部さん

  [2]mingw-gcc は、ほど良い結果が得られましたが、
  それ以外の環境 ([1]cygwin-gcc, [3]msvc-cl) では、
  trio の単体テストで失敗しています。

# もしかしたら、私のビルド方法が間違っているのかも?

>> Win32以外で(v)snprintfが欠けているplatformではnmz/vsnprintf.c
>> を使いますが、これはmprotect()などを使っているのでWin32では
>> compileできないと思います。

う〜む。(v)snprintf のポータビリティは、由々しき問題ですね。

>Win32 版 Namazu は Cygwin 環境でコンパイルするものかと思って
>いましたが、そうではないのかな。

ユーザに配布する Win32版バイナリは、cygwin1.dll に依存しない
ようにするため、Cygwin だけでなく、MinGW, MSVC, ActivePerl
(5xx/6xx/8xx) の環境も揃えてから、バイナリを構築しています。

>あまり Win32 環境を深く調べていないので、Win32 版のコンパイル
>および動作環境についての知識を持っていません。(すみません。)

Namazu 2.0.12 for Win32 のバイナリ配布の中に、Win32コンパイル
環境の構築とバイナリ作成方法を記述した HACKING.TXT という
ドキュメントを入れています。(CVSリポジトリには登録していません)

今までの Namazu for Win32 のバイナリは、この方法でコンパイルして
いるのですが、他に良い方法がありましたら、是非教えてください。:-)

--
  株式会社ドリーム・アーツ
    竹迫 良範  <takesako@xxxxxxxxxx>