Allow compiler executable under test to be overridden #11457
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds an environment variable
SPEC_COMPILER
which, when set, overrides the Crystal compiler executable being used in specs.This is mainly relevant for local development on Windows. Unlike on CI,
bin\crystal.exe
relative to the repository root is normally not expected to exist, because the local compiler is supposed to go into.build
instead; also unlike on Unix,bin\crystal
must resolve to an.exe
, never some other script likebin\crystal.bat
. With this PR, any installation of Crystal or wrapper script can be used in place ofbin/crystal
.crystal spec
automatically sets this environment variable to the compiler process itself if the variable is absent, before building the specs (not just before running, so thatSPEC_COMPILER
would always be available even in macros). If the specs are built and then run separately, like on CI, thenSPEC_COMPILER
should also be set beforehand (our workflows don't need this).