[mew-dist 29158] Re: cmewが例外で終わる

Shuichi KITAGUCHI ki at example.com
2010年 3月 16日 (火) 00:38:38 JST


北口です。

結局Win32でのコンパイルの件は、私の環境に超古いgmp.dllが残って
いて、libgmp.aではなくこのDLLの方を見に行ったためでした(-lXXXで
DLLも見に行くとは)。最初にかずさんにヒントを頂いていたのに、
お騒がせしました m(__)m

で、smewはできたのですが、cmewの方でコンパイルエラーです。

Stat.hs:34:13:
    No instance for (Integral FILETIME)
      arising from a use of `fileTimeToUnixTime' at Stat.hs:34:13-30
    Possible fix: add an instance declaration for (Integral FILETIME)
    In the second argument of `(.)', namely `fileTimeToUnixTime'
    In the first argument of `($)', namely
        `return . fileTimeToUnixTime'
    In the expression: return . fileTimeToUnixTime $ ctime

これは、Stat.hsで、

    (ctime,_,_) <- getFileTime fh	★fhからFILETIMEをctimeに拾ってきて、
    closeHandle fh
    return . fileTimeToUnixTime $ ctime	★ctimeをfileTimeToUnixTimeに渡すと、
  where
    -- http://support.microsoft.com/kb/167296/en-us
    -- 100 nano seconds since 1 Jan 1601
    -- MS: _FILETIME = {DWORD,DWORD} = {Word32,Word32}
    -- Haskell: FILETIME == DDWORD == Word64
    fileTimeToUnixTime x = (fromIntegral x - 116444736000000000) `div` 10000000
    ★ここに渡るんだけど、この処理がFILETIMEを扱っていない?

という感じじゃないかなと思うのですが、Haskellは手が出ません...
すみませんが、修正お願いします。


--
Shuichi KITAGUCHI // kit at example.com / ki at example.com


Mew-dist メーリングリストの案内