ansi-terminal 和本机 io 管理器不起作用
Posted
技术标签:
【中文标题】ansi-terminal 和本机 io 管理器不起作用【英文标题】:ansi-terminal and native io manager doesn't work 【发布时间】:2021-10-28 01:42:27 【问题描述】:我同时使用 2 个函数,一个使用 getChar 输入,另一个在终端上绘制一些字符,但是,我使用 ansi-terminal 在屏幕上移动光标 问题是当我编译时抛出下一个错误
user error (pattern match failure in do expression at libraries\Win32\System\Win32\Types.hsc
这仅在我设置“+RTS --io-manager=native”标志时发生,但这是必要的,因为没有它 getChar 无法正常工作
【问题讨论】:
【参考方案1】:此问题已在 Win32
的 2.12.0.1 版本中得到修复。见this issue。
如果您使用的是 cabal,我认为您可以使用以下内容制作一个 cabal.project
文件:
packages: .
constraints: Win32 >= 2.12.0.1
或者,如果您使用堆栈,我相信您可以在您的stack.yaml
中将Win32-2.12.0.1
添加到您的extra-deps
。
【讨论】:
有没有办法在不使用 cabal 或 stack 的情况下将其指定给编译器? @monadicAutomaton 如果你已经在你的包数据库中安装了这个包,那么你应该可以运行ghc -package Win32-2.12.0.1 YourFile.hs
,但是通过 cabal 或 stack 将一个包安装到包数据库中是最简单的,所以我真的会推荐。您可以在this part of the GHC documentation阅读所有详细信息。以上是关于ansi-terminal 和本机 io 管理器不起作用的主要内容,如果未能解决你的问题,请参考以下文章