Build dist/std before make test#2857
Conversation
The compiler test suite includes project builds that resolve the local std distribution. A standalone make test could reach test_acton before dist/std existed, even though the full CI build normally prepared it earlier. Make the top-level test target depend on dist/std and split the stdlib test commands into a helper so make test does not rebuild dist/std through test-stdlib.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f266e641a3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| $(MAKE) -C test | ||
|
|
||
| test-stdlib: dist/bin/acton dist/std | ||
| test-stdlib: dist/bin/acton dist/std test-stdlib-run |
There was a problem hiding this comment.
Keep stdlib tests ordered after dist/std
When make -j test-stdlib is used, test-stdlib-run is just another independent prerequisite of test-stdlib, so GNU make may start it before dist/std finishes (make --help documents -j as allowing multiple jobs at once). That reintroduces the same missing/preparing dist/std race for the documented standalone stdlib target; make the run step a recipe after the prerequisites instead of a parallelizable prerequisite.
Useful? React with 👍 / 👎.
Standalone
make testcan runtest_actonbefore the localdist/stddistribution exists, while several compiler tests build projects that resolve that path. This makes the top-level test target preparedist/stdfirst.The stdlib test commands now live behind a helper target so the full
make testpath can reuse the prepared distribution instead of invokingtest-stdliband rebuilding it.