-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nim compiler built directly from bin/nim_csources is buggy #12917
Comments
Well csources are frozen and are known to evaluate |
maybe we could unfreeze csources and keep updating them as needed with new nim releases as it's been the case before, so that nim can bootstrap from csources in 1 step instead of (right now 2, later maybe more than 2) steps and so that compiler code can keep using recent nim features to benefit from those without resorting to too many conditionals at very least this should be documented (or even enforced) as it is a very subtle very bug-prone gotcha of the worst kind: silent subtle change in behavior that only triggers (without necessarily crashing, just different results) in some tests, so might fly under the radar in user code until it bugs in production code, in what user thought was a freshly built nim compiler lots of ppl install nim via other ways than tartballs also |
Well we cannot support an arbitrary set of build instructions that people think "will work", you wrote
We have a plan to solve that, a "csources2" repo. |
ok, replacing bin/nim_csources by for example $HOME/.choosenim/toolchains/nim-1.0.4/bin/nim (installed by choosenim) works around the problem in this issue to have a recent-yet-stable base to rebuild development versions of nim (without bootstrapping from scratch each time which takes more time, or simply relying on
curious what's the difference with csources? |
There is no difference per se, the advantage is that every CI script with |
on top of that, implementing #11457 would make it all automatic so the tag (or hash) would be tied to a nim commit |
It doesn't matter what "would achieve" the same when plenty of scripts do exactly |
Example
the
--skipUserCfg --skipParentCfg
are optional, just for isolation.Current Output
Expected Output
Additional Information
git rev-parse HEAD
5848f00
directly using bin/nim_csources works:
2nd order bootstrapping works (bin/nim_csources => bin/nim_temp4 => bin/nim_temp5)
workaround
to build from a recent and stable nim release, use smthg like:
export nim_stable_X=$HOME/.choosenim/toolchains/nim-1.0.4/bin/nim
and use $nim_stable_X instead of bin/nim_csources
The text was updated successfully, but these errors were encountered: