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
Update Gambit and Gerbil #44847
Update Gambit and Gerbil #44847
Conversation
@@ -2,6 +2,7 @@ | |||
|
|||
callPackage ./build.nix { | |||
version = "4.8.9"; | |||
git-version = "v${version}"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eval error because this isn't a recursive set. Try using callPackage ./build.nix rec {
to make it recursive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops. Thanks a lot! Fixed.
@@ -1,4 +1,4 @@ | |||
{ stdenv, git, openssl, autoconf, pkgs, makeStaticLibraries, version, SRC }: | |||
{ stdenv, git, openssl, autoconf, pkgs, makeStaticLibraries, version, SRC, git-version }: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The git-version
argument isn't used anywhere. Why did you add it?
version = "4.8.9"; | ||
git-version = "v${version}"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Defining git-version
only makes sense if it is actually used by build.nix
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well,
1- I include it by symmetry with gerbil, that actually uses it. I actually intended to use it in gambit in the very same way, but that requires changes to the gambit build system similar to those done in Gerbil, that haven't made it on top of my todo list yet.
2- It's somewhat useful for me to track the progress of gambit unstable, and needed by symmetry in the stable build, too.
3- If you object to it, I can make it a comment instead, until I get to modifying the gambit build system (and get the changes upstreamed).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for explaining. While I understand your intentions, unused code tends to confuse people and make packages harder to maintain - you might not be the only one modifying these in the future. So please remove the unused code but feel free to add your comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No problem. I understand your concerns. Here is an updated version where only the unstable build has the git-version, and only in a comment.
git-version will be commented out for gambit, until actually used. NixOS/nixpkgs#44847
@GrahamcOfBorg build gambit-unstable gerbil-unstable |
Timed out, unknown build status on x86_64-darwin (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
It does take a lot of time to build it — tens of minutes on my machine from last year. Also, I see you use clang. I believe gambit currently works better with GCC. How do I force the use of GCC for Gambit and Gerbil? |
Excerpt from an email last May by Marc Feeley, author of Gambit, on the gambit-list: the build time of a “make -j8” on my 4 core laptop is over 10x slower when using CLANG. As for speed of the generated code, CLANG produces code that is about 3x slower than GCC. |
Success on x86_64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
clang is the default compiler on darwin (MacOS), while x86_64-linux and aar64_linux use gcc7. |
It makes total sense as a default on Darwin. But can I somehow override the default? |
Timed out, unknown build status on aarch64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
Timeouts on ofborg are not uncommon since ofborg uses community-provided build machines that don't guarantee good performance. These packages usually build on hydra (higher time limit and better performance), so it should be fine without any changes. To force gcc on darwin, you can add |
Thanks, xeji. I added a commit that forces Gambit and Gerbil to use GCC rather than Clang. |
NB: I checked that these changes are NOPs on my Linux amd64 NixOS box. |
@GrahamcOfBorg build gambit-unstable gerbil-unstable |
Failure on x86_64-darwin (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
@vyzo can you give a look at the darwin failure? If not, who is building Gerbil on Darwin? |
This looks like a recent upstream bug in the new kqueue support. @grahamc What version of macOS is the Nix builder running? How do I tell? |
Timed out, unknown build status on aarch64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
The darwin failure should be fixed by mighty-gerbils/gerbil#118 |
clang builds gambit 10x slower to produce code that is 3x slower than when using GCC. So use GCC to build Gambit and Gerbil.
@GrahamcOfBorg build gambit-unstable gerbil-unstable I updated this PR to include @vyzo's latest upstream fixes. |
@GrahamcOfBorg build gambit-unstable gerbil-unstable |
Success on x86_64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
Timed out, unknown build status on aarch64-linux (full log) Attempted: gambit-unstable, gerbil-unstable Partial log (click to expand)
|
Can we either add a larger timeout for AA64, or disable it wholly? As such, it's only a waste of CPU. Can this be overridden on a per-package basis? |
Let me just say we don't block Chromium build attempts on ofBorg (obviously, they time out always and everywhere). No tooling is perfect |
Motivation for this change
Upstream update + make Gambit stable buildable with recent Nix.
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)