首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监测GHC活动

监测GHC活动
EN

Stack Overflow用户
提问于 2013-05-02 21:35:37
回答 1查看 223关注 0票数 11

如果GHC需要很长的时间来编译一些东西,那么有什么方法可以找出它在做什么呢?

首先,我很高兴知道我是否真的让编译器崩溃了(也就是说,以某种方式将它放入某种无限循环中),或者它是否真的在进步,但进展非常缓慢。

其次,很高兴知道GHC编译过程的哪个部分有问题。它是解析、去标记、类型检查、核心优化、代码生成,还是.?

有什么办法监视发生的事吗?(请记住,如果GHC花费了很长的时间,这可能意味着它做了大量的工作,所以如果您要求太多的输出,它将是巨大的!)

GHC已经告诉您它试图编译哪些模块。在我的例子中,问题是一个独立的模块。我想知道GHC在哪里被困住了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 08:12:30

继Daniel的评论之后,我尝试使用不同的详细选项运行GHC。

  • -v1:产生了更多的输出,但在主要编译步骤中没有输出。
  • -v2:告诉您GHC当前正在执行的步骤(解析器、desugar、类型检查、简化器等)。这正是我真正想要的。
  • -v3:似乎使简化器实际上将其所做的事情转储到控制台--在编译8MB的源代码时,这是个坏主意!

因此,-v2似乎是开始的地方。

(在引发此问题的程序的具体情况下,GHC似乎永远处于类型检查阶段。)

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

https://stackoverflow.com/questions/16348118

复制
相关文章

相似问题

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