Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 是否有可能编译;只有一个文件";在阴谋集团的项目中?_Haskell_Ghc_Cabal - Fatal编程技术网

Haskell 是否有可能编译;只有一个文件";在阴谋集团的项目中?

Haskell 是否有可能编译;只有一个文件";在阴谋集团的项目中?,haskell,ghc,cabal,Haskell,Ghc,Cabal,在基于JVM的程序中,您可以将一个文件编译为.class文件,并能够再次运行二进制文件,而无需编译所有文件 有可能在哈斯克尔做吗?是否必须编译和链接项目中的所有文件?若有,原因为何 如果没有二进制文件,您只是安装了一个库怎么办?对于GHC,您可以更改和重新编译单个模块,而不必根据该模块重新编译模块,前提是公开的接口不会更改。GHC的--make模式(自GHC-7.*起默认)检查是否需要重新编译,并仅重新编译那些无法确定不需要的模块 如果您有一个cabal包,并且在更改一个模块后cabal bui

在基于JVM的程序中,您可以将一个文件编译为.class文件,并能够再次运行二进制文件,而无需编译所有文件

有可能在哈斯克尔做吗?是否必须编译和链接项目中的所有文件?若有,原因为何


如果没有二进制文件,您只是安装了一个库怎么办?

对于GHC,您可以更改和重新编译单个模块,而不必根据该模块重新编译模块,前提是公开的接口不会更改。GHC的
--make
模式(自GHC-7.*起默认)检查是否需要重新编译,并仅重新编译那些无法确定不需要的模块

如果您有一个cabal包,并且在更改一个模块后
cabal build
,您可以从编译器输出中看到,它通常不会重新编译包中的所有模块,只重新编译更改的模块和[可能]依赖它的模块

如果构建可执行文件,当然必须重新链接,但许多旧的对象文件可以重用

如果要构建库,当然必须重建库存档,但许多旧的对象文件可以重用。

对于感兴趣的用户。