2

私はTwitchライブラリをいじっています:

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell   #-}
module Main where

import Twitch
import Data.Default
import Turtle.Prelude
import RIO

main :: IO ()
main = do
        print "hi"
        let p = "C:\\Users\\unicorn\\programming\\listenerDir" 
        print "before" 
        liftIO $ runWithConfig p ((\c -> c {dirs=[p]}) def) $ do -- marked
          "*.csv" |> \f -> print f                               -- marked
        print "here"
        return ()

上記のプログラムをコンパイルして実行するとliftIO ...(マークされた行を除外して)呼び出しなしで実行すると、正常に実行され、メッセージが出力されます。(しかし、明らかに、ファイル リスナは登録も実行もされていないため、望ましい結果ではありません。)

ただし、コンパイルしてそのまま実行すると、印刷hibefore. なぜここに当てはまるのですか?

ライブラリの例に従おうとしましたが、なぜハングするのかわかりません。


アップデート:

どうやらそれは私がdef構成のために行っているdirsの置換と関係があります

アップデート:

また、次の方法で試しました。

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell   #-}
module Main where

import Twitch
import Data.Default
import Turtle.Prelude
import RIO
import System.IO.Unsafe
import System.FilePath.Windows

main :: IO ()
main = do
        let p   = "C:\\" </> "Users" </> "unicorn" </> "programming" </> "simpleUID" </> "lib_app_setup" </> "kofax-valet" </> "testingDir" 
            ops = Options LogToStdout Nothing (Just p) False DebounceDefault 0 300 False
        print "starting"
        print p 
        defaultMainWithOptions ops $ do
          "*.csv" > \f -> print f 

同じ結果で

ソースでそれを調べると、defaultMainWithOptions stdout にも出力されます。しかし、それも起こりません...

fyi: reddit でこの質問をしましたが、回答が得られなかったので、ライブラリに慣れていないだけでなく、より大きな問題を疑ったため、ここに投稿しました

更新:cabal runこれは2 番目のコード の完全な出力です。

unicorn@LAPTOP ~/programming/haskell/listenerTest
$ cabal run
Build profile: -w ghc-8.10.1 -O1
In order, the following will be built (use -v for more details):
 - listenerTest-0.1.0.0 (exe:listenerTest) (file Main.hs changed)
Preprocessing executable 'listenerTest' for listenerTest-0.1.0.0..
Building executable 'listenerTest' for listenerTest-0.1.0.0..
[1 of 1] Compiling Main             
( Main.hs, C:\Users\unicorn\programming\haskell\listenerTest\dist-newstyle
\build\x86_64-windows\ghc-8.10.1\listenerTest-0.1.0.0\x\listenerTest\build
\listenerTest\listenerTest-tmp\Main.o )
Linking C:\Users\unicorn\programming\haskell\listenerTest\dist-newstyle\build
\x86_64-windows\ghc-8.10.1\listenerTest-0.1.0.0\x\listenerTest\build
\listenerTest\listenerTest.exe ...





unicorn@LAPTOP ~/programming/haskell/listenerTest
$

その後、Ctrl + cを押してタスクを強制終了する必要がありました

4

0 に答える 0