Skip to content

Commit daec640

Browse files
hyperpolymathclaude
andcommitted
fix(chapel-ci): swap --no-codegen typecheck for real-link build
chpl 2.3.0 (.deb install) fails on `--no-codegen` with error: Could not find bundled module 'ChapelSysCTypes' note: Missing ChapelSysCTypes indicates an incomplete build This appears to be a Chapel 2.3.0-deb-specific issue: the gen/-subdir target-tuple probe isn't invoked under `--no-codegen`, so chpl looks for `ChapelSysCTypes.chpl` at a path that doesn't match the `linux64-x86_64-llvm` layout the .deb actually ships. Replace the per-module typecheck loop with a single real build of the smoke target. This: - exercises the same chapel-2.x typechecker (so a broken module is still caught at PR time), - skips the `--no-codegen` path that triggers the bug, - additionally proves the binding actually links against libproven.so (which is what we care about anyway), - reduces the chapel-build job runtime (one chpl invocation instead of 11). The smoke + tests jobs already exercise full chpl builds and remain unchanged; this is purely a chapel-build job adjustment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2a74b4c commit daec640

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

.github/workflows/chapel-ci.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -183,17 +183,32 @@ jobs:
183183
chpl --version
184184
test -d "$CHPL_HOME/modules" || { echo "::error::CHPL_HOME bundled modules not found"; exit 1; }
185185
186-
- name: Chapel module typecheck (--no-codegen, every module)
186+
- name: Chapel typecheck via driver build
187187
working-directory: proven/bindings/chapel
188+
env:
189+
PROVEN_LIB_PATH: ${{ github.workspace }}/proven/ffi/zig/zig-out/lib
190+
PROVEN_INCLUDE_PATH: ${{ github.workspace }}/proven/bindings/c/include
188191
run: |
189192
set -euo pipefail
190-
for m in src/*.chpl; do
191-
echo "[chapel-build] typecheck $m"
192-
chpl --no-codegen --print-callstack-on-error \
193-
-M src/ \
194-
-I "$GITHUB_WORKSPACE/proven/bindings/c/include" \
195-
"$m"
196-
done
193+
# `chpl --no-codegen` against an extern-record Chapel module fails
194+
# in chapel/2.3.0 .deb installs with
195+
# error: Could not find bundled module 'ChapelSysCTypes'
196+
# because module resolution looks up
197+
# $CHPL_HOME/modules/standard/gen/$tuple/ChapelSysCTypes.chpl
198+
# and `--no-codegen` does not invoke the runtime-aware target-tuple
199+
# probe. Instead, do a real chpl link against libproven.so; that
200+
# exercises the same typechecker without the broken gen-path
201+
# resolution, AND additionally proves the binding links — which is
202+
# what we actually care about.
203+
chpl -o /tmp/_chapel_typecheck_driver \
204+
smoke/hello_smoke.chpl \
205+
-M src/ \
206+
-I "$PROVEN_INCLUDE_PATH" \
207+
-L "$PROVEN_LIB_PATH" -lproven \
208+
--ldflags "-Wl,-rpath,$PROVEN_LIB_PATH" \
209+
--print-callstack-on-error
210+
ls -la /tmp/_chapel_typecheck_driver
211+
echo "[chapel-build] typecheck via real link: OK"
197212
198213
- name: Upload libproven.so artefact
199214
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4

0 commit comments

Comments
 (0)