gpt4 book ai didi

haskell - 有没有办法只将 Haskell 源代码编译为接口(interface)文件,而不是进一步编译?

转载 作者:行者123 更新时间:2023-12-02 03:46:39 25 4
gpt4 key购买 nike

通常,当 ghc正在编译源代码,它至少会产生一个.o (对象)和 .hi (接口(interface))文件。

为了减少编译时间,如果我只需要一个接口(interface)文件,我可以以某种方式订购 ghc放弃一切,只给我所说的接口(interface)文件?或者,否则,通过任何卑鄙的手段获得该接口(interface)?

我找到了this ghc user guide part但它并没有提到这一点。 This one甚至在其文本中的任何地方都没有提到“接口(interface)”。 (特别是 -fno-code 不会生成它。)这一定意味着没有简单的方法。在 this question from five years ago ,什么都没有浮现出来,但碰巧现在情况有所不同?

我预计它很可能会被黑客入侵 ghc 。如果是这样,我想要指导:

  • trac 提交功能请求是否合理? ,或者(可能)我应该自己去尝试?
  • 怎么样 .hi文件与 -ddump-types 不同,只是二进制?
  • 是否可以确定组成 .hi文件所花费的编译阶段比完整的 .o 少得多文件? (例如,如果 .hi 中有机器代码片段的哈希值,则可能需要生成相应的代码,这意味着这里什么也得不到。)

否则,也许我可以从 ghc 中提取相关部分代码,以便我可以编译 .hi来自 -ddump-types 输出的文件或者类似的?

最佳答案

实际上,有一个标志 -fno-code -fwrite-interface 可以执行此操作。实际上,即使是一个简单的示例,它的编译时间也缩短了大约四分之一。

关于haskell - 有没有办法只将 Haskell 源代码编译为接口(interface)文件,而不是进一步编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48682283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com