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
Elixir.Macro.Env.beam file differs between builds #10000
Comments
|
Hi @bmwiedemann! We do have tests for reproducible builds since then but, since compilation happens in parallel, we may have race conditions. Can you send us a copy of both beam files? That will help us iron out the issues. Thanks! |
|
Here are the two differing files: https://rb.zq1.de/other/elixir/ |
Before this patch, we could have slightly different AST while compiling modules in parallel, depending if modules were recompiled or not. Now we always recompile Kernel before compiling the whole stdlib. We used this opportunity to simplify bootstrap by breaking it two steps. The first step is the minimal necessary to compile Kernel itself. The second step contains the whole compiler. Closes #10000.
Before this patch, we could have slightly different AST while compiling modules in parallel, depending if modules were recompiled or not. Now we always recompile Kernel before compiling the whole stdlib. We used this opportunity to simplify bootstrap by breaking it two steps. The first step is the minimal necessary to compile Kernel itself. The second step contains the whole compiler. Closes #10000.
|
Tested master now and it looks fine again. If you want to improve your reproducible builds tests to catch more of this kind in the future, you can run one of the builds under |
|
@bmwiedemann oh, this is a very neat idea. I wrote a PR for it on #10005. Let's see how it goes in our CIs. Btw, it is hard to know if #10002 solved the issue for good, so if you see any other issues please let us know! |
Environment
Current behavior
Builds of elixir packages differ between 1-core-VM and 4-core-VM in Elixir.Macro.Env.beam
The start of the main diff has
elixir-1.10.3/lib/elixir/lib/macro/env.exj DbgiTwo builds on 4-core-VMs produce proper identical results.
Expected behavior
It should be possible to produce identical build results anywhere, anytime.
See https://reproducible-builds.org/ for why this matters.
This is sort of a regression on what was all fixed back in #8689
My last reproducible build happened on 2020-04-01 with elixir-1.9.4
How to reproduce:
The text was updated successfully, but these errors were encountered: