【问题标题】:Error when connecting to hello world yesod example on Windows 8在 Windows 8 上连接到 hello world yesod 示例时出错
【发布时间】:2012-10-11 23:33:40
【问题描述】:

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

{-# 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

【问题讨论】:

  • 你好 reltone,你好迈克尔。我也遇到了这个问题,windows XP上的翘曲。我使用了haskell平台2012.2.0.0。我通过 MINGW 构建了 cabal-dev,然后通过 cabal-dev 构建了我的应用程序。使用 -threaded 编译会抑制错误消息,但不能解决问题。应用程序不回复请求。

标签: yesod


【解决方案1】:

问题大概已经介绍到这里了:http://hdiff.luite.com/cgit/warp/commit?id=1.3.1.1

强制 cabal 使用 1.3.1 版本的 warp,事情应该会按预期工作。根据我的经验,它仍然需要与 -thread 链接。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我按照 yesod hello world 教程告诉我的方式编译它。
    • 嗨,michael,我没有详细信息,但最近的提交引入了问题。我在阅读 git changelog 时发现了它。回滚到 1.3.1 可以抑制问题。问候,
    • 保罗 R:谢谢!最近的优化似乎只适用于 Windows。我发布了新版本的 Warp (1.3.3.3),它似乎在 Windows 上对我来说可以正常运行。你能试试吗? @reltone Paul 的答案是正确的。如果您可以适当地更新复选标记,那将是最好的。
    • @MichaelSnoyman :嗨,我刚刚尝试过,它确实有效,谢谢。此外,根据我的经验,它仍然需要 -thread。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多