消除 Chapel 构建中的源文件歧义

Disambiguate source files in Chapel build

跟进 关于包含源文件的问题。我包括一个 Chapel 模块,其中包含一个名为 classes.chpl 的文件,但我当前的项目也有一个 classes.chpl。什么是正确的消歧模式?当我这样做时

chpl -M/path/src

它注意到冲突,然后选择当前目录中的classes.chpl。我应该像 this page 那样编译导出模块还是有其他模式。

==更新==

目录结构如下

projA/alpha.chpl
     /classes.chpl

projB/beta.chpl
     /classes.chpl

其中每个项目都依赖于各自 classes.chpl 文件中的 类。正在尝试编译 projA 我目前正在使用

chpl alpha.chpl -M../projB/

但这会导致冲突,因为它试图在 beta.chplalpha.chpl 中对 类 使用 projA/classes.cphl

module search paths 技术说明中所述,Chapel 编译器按以下顺序搜索用户模块:

  1. 正在查看在命令行中指定的 .chpl 个文件
  2. 正在查看包含命令行指定文件的目录中的其他 .chpl 个文件
  3. 正在通过 -M 选项或 CHPL_MODULE_PATH 环境变量指定的路径中查看 .chpl 个文件

由于编译器使用规则2从项目目录中找到classes.chpl,而仅使用规则3找到/path/src/classes.chpl,因此它选择了项目目录中的那个。要让它选择 /path/src/classes.chpl,您可以在命令行上指定它,以便使用规则 1.

找到它

chpl mainModule.chpl /path/src/classes.chpl