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.
The nif repo (https://github.com/nim-lang/nif) is now installed as a dependency for the Nim compiler. At the moment the important tools (nifler, xelim, nifgram, gear2) are imported to test that this dependency installation works, but only with the define
-d:testNifImports
, which the test suite enables for now. This is temporary until NIF is actually used in the compiler.For nif to be able to import the compiler, the original plan was to generate a config file as described in nim-lang/nif#96 but config files in parent folders aren't checked for imports. Instead the compiler generally defines
--path:".."
so that dependencies can import it likeimport compiler / ...
. nif also defines--path:$nim
to work with any version of the compiler, but$nim
isn't set to the compiler path when compiling the compiler, so this is disabled via-d:nifCompilerInPath
.In the future we can maybe just move the mutually dependent parts of NIF to the compiler codebase (gear2 & nifler for now), it might be painful to have to update both codebases for each change.
Also, for nif to compile for the bootstrapping version of the compiler (csources_v2),
system.ensureMove
is declared as a no-op for compiler versions that don't have it.