5

我一直在用小程序学习 Chapel,它们工作得很好。但是随着程序变长,编译时间也会变长。所以我寻找了一个一个编译多个文件的方法,但还没有成功。通过搜索互联网,我找到了这个这个页面,后者说

所有这些增量编译功能都通过 Chapel 编译器中的新 --incremental 标志启用,该标志将在 Chapel 1.14.0 版本中提供。

虽然我电脑上的 Chapel 编译器接受这个选项,但在编译只包含一个过程(即没有 main())的文件时,它似乎不会生成任何 *.o(或 *.a?)。这是因为上述项目是实验性的......?在那种情况下,我们可以期待这个功能会包含在 Chapel 的未来版本中吗?

(或者,上面的“增量编译”这个词不是我对 GCC 等常用编译器的期望?)

我的环境:在 Mac OSX 10.11.6 上通过 homebrew 安装的 Chapel-1.14.0。

4

1 回答 1

3

Chapel 实现仅完全编译通过执行 main() 例程使用的代码。作为一个开始尝试,增量编译项目试图最小化通过正常编译编译的代码和使用 --incremental 标志编译的代码之间的可执行差异。这是为了确保用户在以一种模式开发时不会遇到与另一种模式不同的一组错误。因此,只有在使用该文件/过程的编译尝试之前,才会编译仅包含过程的文件。

你提到的项目是一个很好的开始,但向团队展示了许多我们以前没有考虑过的考虑因素(包括你提出的那个)。我们仍在讨论此功能的未来方向,因此尚不完全清楚这将带来什么。一种可能的扩展是“单独编译”,其中代码可以编译成 .o 或 .a 可以链接到其他程序。不过,这仍然在讨论中。

如果您对如何开发此功能有想法,我们很乐意通过我们的 Github 页面上的问题或通过我们的开发人员或用户邮件列表听到他们的意见。

于 2017-01-30T16:43:17.757 回答