【问题标题】:Why does Haskell require all libraries to be profiling-enabled for profiling?为什么 Haskell 要求所有库都启用分析功能以进行分析?
【发布时间】:2025-12-29 07:10:12
【问题描述】:

QProfile Haskell without installing installing profiling libraries for all dependencies
A:你不能。安装就行了,有什么问题?

为什么?

如果我只想分析我的代码,将库调用视为分析的无操作,为什么它不能允许部分分析?如果有很多已安装的依赖项,启用分析可能会很棘手。虽然不太准确,但应该更容易。

【问题讨论】:

  • 我认为您的意思是询问 GHC,而不是 Haskell。您可能想要编辑您的标题(并添加 ghc 标签)。
  • 这确实是一种痛苦,似乎已经存在多年但仍未修复

标签: haskell profiling ghc


【解决方案1】:

我的理解是,当您要求 GHC 编译代码以进行分析时,代码的二进制接口会发生变化。 (而且它还链接到不同版本的 RTS。)由于同一程序中的所有代码必须具有相同的二进制接口......好吧,这就是原因。

为避免这种情况,GHC 必须要么支持在同一个程序中混合不同的二进制接口,要么找到一种方法来编译具有与非分析代码相同的接口的分析代码。我想这些事情都不是特别简单的事情。

我同意这非常烦人,虽然...

【讨论】: