[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 メーリングリストの案内