You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下编译运行Haskell diagrams程序遇GHC报错求助

解决Diagrams代码运行时GHC Panic的问题

问题根源

直接通过stack exec运行单Haskell文件时,Stack默认拉取的GHC版本可能与diagrams库依赖不兼容,引发编译器panic。用Stack项目管理依赖和版本是最可靠的解决方式。

步骤1:初始化Stack项目

进入project1文件夹,执行命令生成基础项目结构:

stack new . simple

该命令会在当前目录创建基于simple模板的Stack项目,自动生成必要的配置文件。

步骤2:配置依赖

打开生成的package.yaml文件,找到dependencies节点,添加以下依赖项:

dependencies:
  - base >= 4.7 && < 5
  - diagrams
  - diagrams-svg
  - diagrams-lib

保存后,Stack会自动处理所有依赖的版本兼容问题。

步骤3:替换主程序代码

将diagram1.hs中的所有代码复制到项目的app/Main.hs文件,替换原有内容。

步骤4:构建并运行项目

先执行构建命令确保依赖安装完成:

stack build

构建成功后,运行程序并指定输出参数:

stack run -- -w 256 -h 256 -o diagram1.svg

执行完毕后,当前目录会生成目标diagram1.svg文件。

替代方案:指定Resolver版本(单文件模式)

若不想创建项目,可指定兼容的Stack Resolver版本(对应特定GHC版本)直接运行:

stack exec --resolver lts-20 --package diagrams -- runhaskell diagram1.hs -w 256 -h 256 -o diagram1.svg

LTS-20系列的GHC版本(9.2.x)与diagrams库兼容性较好,可避免多数版本冲突引发的panic。

内容的提问来源于stack exchange,提问作者R. Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:15:13