Chapel 中的增量编译

Incremental compilation in Chapel

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

All of these incremental compilation features are enabled with the new --incremental flag in the Chapel compiler, which will be made available in Chapel 1.14.0 release.

尽管我计算机上的 Chapel 编译器接受此选项,但在编译仅包含过程(即没有 main())的文件时,它似乎不会生成任何 *.o(或 *.a?)。这是因为上述项目是实验性的......?在那种情况下,我们是否可以期望此功能包含在 Chapel 的某个未来版本中?

(或者,上面的 "incremental compilation" 这个词不是我对像 GCC 这样的普通编译器所期望的?)

我的环境:Chapel-1.14.0 通过自制软件安装在 Mac OSX 10.11.6.

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

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

如果您对应该如何开发此功能有任何想法,我们很乐意通过 our Github page, or via our developers or users mailing lists 上的问题听取他们的意见。