[mew-dist 29200] Re: GHC 6.12.1
Shuichi KITAGUCHI <[email protected]>
| Newsgroups | gmane.mail.mew.general.japanese |
|---|---|
| Message-ID | <[email protected]> |
北口です。 GHC 6.10でもコンパイルできるようにして下さっている ことに気付いたので、ちょっといじってみました。 これで一応、Windowsでもcmew.exeとsmew.exeがコンパイルできます。 cmew -fをRuby版と比べてみると、57000メッセージほどで kernel time : 25(sec) -> 23(sec) user time : 190(sec) -> 100(sec) elapsed : 410(sec) -> 390〜560(sec) とuser時間はかなり縮まりますが、実時間はあまり変わりませんでした。 # I/Oが支配的だからでしょうね。 # あと、Haskellの方が揺らぎが大きいのは謎です。 ちなみに、Ruby版だと Registered: 56981, deleted: 0 で、Haskell版だと Registered: 56874, deleted: 0 なのですが、なぜかまでは追い切れていません。 -- Shuichi KITAGUCHI // [email protected] / [email protected]
diffs
(text/plain, 1.1 KB)
diff --git a/bin/hs/Mail.hs b/bin/hs/Mail.hs
index 9a20b75..3b6d28f 100644
--- a/bin/hs/Mail.hs
+++ b/bin/hs/Mail.hs
@@ -23,11 +23,13 @@ getValue key fs = concat . foldedLines <$> lookup key fs
----------------------------------------------------------------
fileMsg :: FilePath -> String -> IO (Maybe Msg)
+#if __GLASGOW_HASKELL__ < 611
+fileMsg file folder = makeMsg folder . header <$> readFile file
+#else
fileMsg file folder = makeMsg folder . header <$> readFileU8 file
where
readFileU8 fl = do
h <- openFile fl ReadMode
-#if __GLASGOW_HASKELL__ >= 611
hSetEncoding h latin1
hGetContents h
#endif
diff --git a/bin/hs/Param.hs b/bin/hs/Param.hs
index 80db355..b48bf6f 100644
--- a/bin/hs/Param.hs
+++ b/bin/hs/Param.hs
@@ -1,3 +1,7 @@
+{-# LANGUAGE CPP #-}
+
+#include "config.h"
+
module Param where
defaultDB :: String
@@ -10,7 +14,11 @@ defaultIgnoreRegex :: String
defaultIgnoreRegex = "/casket$"
defaultMessageRegex :: String
+#ifdef HAVE_WINDOWS_H
+defaultMessageRegex = "\\\\[0-9]+(\\.mew)?$"
+#else
defaultMessageRegex = "/[0-9]+(\\.mew)?$"
+#endif
defaultDirModFile :: String
defaultDirModFile = ".mew-mtime"