GHC 可执行文件可以共享运行时代码吗?

dan*_*bst 3 optimization haskell runtime ghc

假设有人想在 Haskell 中重新创建标准 POSIX 可执行文件(cat、dd、ls ...)。但 GHC 生成的可执行文件都包含运行时代码。那么,有可能吗

  • 在多个可执行文件之间共享运行时代码并使它们更小且加载速度更快?
  • 每个系统使用一个垃圾收集器?(不确定这是否是好的优化)

Tho*_*son 5

  • 人们已经在 Haskell 中创建了典型的 unix 实用程序,看看Linspire就知道了。
  • 您可以将共享库与 Haskell 一起使用,或更具体地说,与 GHC 一起使用。甚至 RTS 也可以是共享库。
  • 您不能让一个垃圾收集器实例为多个进程收集垃圾(如果您是这样的话)。这也不是一个好主意,因为当前实现的 GC 方案必须在收集期间停止变异器线程。