[mew-dist 29200] Re: GHC 6.12.1
Shuichi KITAGUCHI
ki at example.com
2010年 4月 11日 (日) 20:40:56 JST
北口です。
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 // kit at example.com / ki at example.com
-------------- next part --------------
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"
Mew-dist メーリングリストの案内