[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"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.