首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使堆栈不传递给GHC?

如何使堆栈不传递给GHC?
EN

Stack Overflow用户
提问于 2018-01-15 02:04:16
回答 1查看 809关注 0票数 4

我是一个Windows用户,最近移动到最新的堆栈(1.6.3)和最新的GHC (8.2.2)。在最新的GHC中,有可能出现错误信息的颜色输出。颜色是通过ANSI转义序列发生的,而windows并不理解这些序列,因此它只显示了真实文本之间的一堆垃圾文本。

代码语言:javascript
复制
[1 of 2] Compiling IOSystem.Haskeline ( app\IOSystem\Haskeline.hs, .stack-work\dist\5c8418a7\build\galbreak\galbreak-tmp\IOSystem\Haskeline.o )

←[;1mapp\IOSystem\Haskeline.hs:28:13: ←[;1m←[31merror:←[0m←[0m←[;1m←[0m←[0m←[;1m
    * Couldn't match type `[Char]' with `Text'
      Expected type: InputT m (LineResult Text)
        Actual type: InputT m (Either LineFailure String)
    * In a stmt of a 'do' block: pure $ Right line
      In the expression:
        do modifyHistory $ addHistoryUnlessConsecutiveDupe line
           pure $ Right line
      In a case alternative:
          Just line
            -> do modifyHistory $ addHistoryUnlessConsecutiveDupe line
                  pure $ Right line←[0m←[0m
←[;1m←[34m   |←[0m←[0m
←[;1m←[34m28 |←[0m←[0m             ←[;1m←[31mpure $ Right line←[0m←[0m
←[;1m←[34m   |←[0m←[0m←[;1m←[31m             ^^^^^^^^^^^^^^^^^←[0m←[0m
←[0m←[0m←[0m

我尝试将ghc-options: -fdiagnostics-color=never同时放入project.cabal文件的库和可执行部分,但它似乎没有效果。我使用详细的输出重新运行,并且似乎堆栈在我指定的ghc选项之后放置了自己的“-fdiagnostics= and”命令。

我只需要堆栈,不知何故,,而不是,就可以这么做。

代码语言:javascript
复制
stack -v --cabal-verbose build

(略去了许多案文)

2018-01-14 18:54:24.009085: info "C:\Users\Daniel\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\bin\ghc.EXE“5c8418a7\build\galbreak\galbreak tmp“".stack-work\dist\5c8418a7\build\galbreak\galbreak-tmp”“".stack-work\dist\5c8418a7\build\galbreak\galbreak-tmp”"-stubdir“-i”"-i.stack-work\dist\5c8418a7\build\galbreak\galbreak-tmp“"-iapp”"-i.stack-work\dist\5c8418a7\build\galbreak\autogen“”-i.堆栈\dist\5c8418a7\build\全局-autogen“"-I.stack-work\dist\5c8418a7\build\galbreak\autogen”"-I.stack-work\dist\5c8418a7\build\global-autogen“"-I.stack-work\dist\5c8418a7\build\galbreak\galbreak-tmp”"-IC:\Users\Daniel\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include“”-optP-包括“”-optP堆栈-work\dist\5c8418a7\build\“-隐藏所有-包”基本-4.10.1.0“-包-id”文本-1.2.2.2-9VTsh6V7U7hpagw2HDvpZ“-包-id”-“haskeline-0.7.4.2-DgujCOcZAmc2Ddce2Akr0”"-XHaskell2010“"IOSystem.Haskeline”"app\Main.hs“"-W”"-threaded“"-rtsopts”-with-rtsopts=-N“-O2”-rtsopts=“-O2”-rtsopts-颜色=从不“-ddump hi”--ddump-文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-15 05:24:05

您可以使用--color never

似乎您正在使用一种不寻常的终端配置。解决这一问题的一种方法可能是向ansi终端提交一个PR,以便https://hackage.haskell.org/package/ansi-terminal-0.8/docs/System-Console-ANSI.html#v:hSupportsANSI为您的终端生成False

目前还不可能在您的config.yaml中指定这一点,但是也许应该这样做--我已经打开了https://github.com/commercialhaskell/stack/issues/3778来跟踪添加它的情况。不是高度优先事项

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48256095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档