-
Notifications
You must be signed in to change notification settings - Fork 438
Description
Summary of Problem
Running mason build will not rebuild a submodule without --force.
Description:
When using submodules in a Chapel library, if I make changes within a submodule and recompile using mason build, it will not update the build. Instead it will say:
Skipping Build... No changes to project
but was expecting:
Compiling [debug] target: Foo
Build SuccessfulI believe this is because the MasonUtils.chpl:projectModified procedure only iterates over source files defined in the top-level of src/, rather than recursively checking each subdirectory. Indeed when I'd change the top-level file, Mason would rebuild as expected.
Is this issue currently blocking your progress?
No, easy workaround with mason build --force
Steps to Reproduce
Source Code:
// module Foo in top-level src/Foo.chpl
module Foo {
include module Bar;
public import this.Bar;
}
// in src/Foo/Bar.chpl
module Bar {
// run mason build toggling this procedure on and off (or making any other change)
proc baz(in x: int) {
return x + 2;
}
proc baz(in x: real) {
return x * 2.0;
}
}Mason.toml
[brick]
name="Foo"
version="0.1.0"
type="library"
chplVersion="2.4.0"
[tool.chpl-language-server]
module-dir=["src"]Compile command:
mason build
also tried things like:
mason build -- -M src/Foo/Bar.chpl
Execution command:
See compile command.
Associated Future Test(s):
N/A
Configuration Information
- Output of
chpl --version:
chpl version 2.7.0 pre-release (6f45b6fe6b)
built with LLVM version 18.1.3
available LLVM targets: xtensa, m68k, xcore, x86-64, x86, wasm64, wasm32, ve, systemz, sparcel, sparcv9, sparc, riscv64, riscv32, ppc64le, ppc64, ppc32le, ppc32, nvptx64, nvptx, msp430, mips64el, mips64, mipsel, mips, loongarch64, loongarch32, lanai, hexagon, bpfeb, bpfel, bpf, avr, thumbeb, thumb, armeb, arm, amdgcn, r600, aarch64_32, aarch64_be, aarch64, arm64_32, arm64
Copyright 2020-2025 Hewlett Packard Enterprise Development LP
Copyright 2004-2019 Cray Inc.
(See LICENSE file for more details)- Output of
$CHPL_HOME/util/printchplenv --anonymize:
CHPL_TARGET_PLATFORM: linux64
CHPL_TARGET_COMPILER: llvm
CHPL_TARGET_ARCH: x86_64
CHPL_TARGET_CPU: native
CHPL_LOCALE_MODEL: flat
CHPL_COMM: none
CHPL_TASKS: qthreads
CHPL_LAUNCHER: none
CHPL_TIMERS: generic
CHPL_UNWIND: bundled
CHPL_TARGET_MEM: jemalloc
CHPL_ATOMICS: cstdlib
CHPL_GMP: bundled
CHPL_HWLOC: bundled
CHPL_RE2: bundled
CHPL_LLVM: system
CHPL_AUX_FILESYS: none- Back-end compiler and version, e.g.
gcc --versionorclang --version:
clang version 21.1.4
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/jared/opt/spack/opt/spack/linux-skylake/llvm-21.1.4-5yzvwku7jb2musecr2rsaos2p4b4aj5p/bin
Configuration file: /home/jared/opt/spack/opt/spack/linux-skylake/llvm-21.1.4-5yzvwku7jb2musecr2rsaos2p4b4aj5p/bin/clang.cfg