What breaks
The new CI workflow (#21) fails its first run with УПАЛО: 2:
test/51_composition.lisp ❌ УПАЛ (код 1) Unhandled SB-INT:SIMPLE-FILE-ERROR
test/52_sequence.lisp ❌ УПАЛ (код 1) Unhandled SB-INT:SIMPLE-FILE-ERROR
Root cause — absolute paths hardcoded to the author's workstation:
test/51_composition.lisp:1: (load "/srv/langs/nolang/src/parse.lisp")
test/52_sequence.lisp:1: (load "/srv/langs/nolang/src/verdict.lisp")
Both files landed in d731e5d without a battery run — locally they load by accident (the clone happens to live at /srv/langs/nolang). Every other test in the battery uses the portable convention:
(load (merge-pathnames "../src/check.lisp" *load-pathname*)) ; e.g. test/40_types.lisp
Fix
Two one-line changes to the portable merge-pathnames form. No behavior change on any machine where the tests currently work.
Related (out of scope here, same disease)
repl.lisp hardcodes /srv/langs/nolang in three places (lines 30, 108, 110). The REPL is outside the battery, so fixing it belongs in its own PR.
Proof
Both tests green locally after the fix; the CI workflow (#21) green after this merges.
What breaks
The new CI workflow (#21) fails its first run with
УПАЛО: 2:Root cause — absolute paths hardcoded to the author's workstation:
Both files landed in
d731e5dwithout a battery run — locally they load by accident (the clone happens to live at/srv/langs/nolang). Every other test in the battery uses the portable convention:Fix
Two one-line changes to the portable
merge-pathnamesform. No behavior change on any machine where the tests currently work.Related (out of scope here, same disease)
repl.lisphardcodes/srv/langs/nolangin three places (lines 30, 108, 110). The REPL is outside the battery, so fixing it belongs in its own PR.Proof
Both tests green locally after the fix; the CI workflow (#21) green after this merges.