在Windows 8上连接到hello world yesod示例时出错

时间:2012-10-07 19:00:07

标签: yesod

我启动可执行文件(在使用cabal构建它之后)并显示“应用程序已启动,正在侦听端口3000”。接下来,我使用我的Web浏览器连接到它,控制台说“threadWaitRead在Windows上需要-threaded,或者使用System.IO.hWaitForInput”。 Web浏览器永远不会连接。不确定这实际上是建议我做什么来解决问题。

{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses,
             TemplateHaskell, OverloadedStrings #-}
import Yesod

data HelloWorld = HelloWorld

mkYesod "HelloWorld" [parseRoutes|
/ HomeR GET
|]

instance Yesod HelloWorld

getHomeR :: Handler RepHtml
getHomeR = defaultLayout [whamlet|Hello World!|]

main :: IO ()
main = warpDebug 3000 HelloWorld

2 个答案:

答案 0 :(得分:2)

这里可能已经引入了问题:http://hdiff.luite.com/cgit/warp/commit?id=1.3.1.1

强制cabal使用1.3.1版本的warp,事情应该按预期工作。根据我的经验,它仍然需要与 - 线程相关联。

答案 1 :(得分:1)

我不确定你是如何编译可执行文件的,但使用-threaded听起来会解决问题,例如:

ghc --make hello-yesod.hs -threaded
hello-yesod.exe