-
-
Notifications
You must be signed in to change notification settings - Fork 15.5k
acl2: build standard library as well #85903
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
Conversation
8fedbfb
to
ddbc250
Compare
OK, I think this is ready for review at this point. Everything builds successfully, though there's plenty of stuff that could stand to be removed from the default distribution, as mentioned in the PR description. |
18fcb47
to
1657113
Compare
I'm not sure why ofBorg isn't able to evaluate |
I think the patch depends on ipasirglucose unconditionally, which depends on glucose, am I getting something wrong? |
Unless I'm missing something, libipasirglucose4 doesn't depend on glucose, though. (Here's the expression: https://github.com/NixOS/nixpkgs/blob/b7d3837934c29d4a3fa5e7d30f117427de7ff158/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix) |
Oh interesting. One would expect some problems on ARM, but mayb build-time problems… |
Hm wait, a glucose wrapper is also an unconditional parameter to |
I only did a brief test with one of the books, but it worked perfectly for me. Thanks! |
@@ -9612,6 +9612,7 @@ in | |||
### DEVELOPMENT / INTERPRETERS | |||
|
|||
acl2 = callPackage ../development/interpreters/acl2 { }; | |||
acl2-minimal = callPackage ../development/interpreters/acl2 { certifyBooks = false; }; |
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.
Are using this? Otherwise I would propose to not build this at all and just have the option so that someone can use acl2.override ({ certifyBooks = false; })
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 current situation is that acl2
has no books but is cached at cache.nixos.org
. After this PR, acl2-minimal
will be what acl2
used to be, and acl2
will now have all the books compiled and certified etc., but will not be cached at cache.nixos.org
and will be unavailable to people who don't want to turn on allowUnfree
.
So I was concerned that if I didn't include acl2-minimal
here, this PR could be considered a step backwards from the status quo, because while you could indeed do acl2.override ({ certifyBooks = false; })
to get the old package, it would no longer be cached at cache.nixos.org
since it would have no attribute in all-packages.nix
. So for people who wanted ACL2 without the books, this would be strictly worse than before.
But no, personally I would not use this acl2-minimal
package.
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.
I would leave the decision to @7c6f434c if he wants to maintain to separate versions
Thanks for testing!
I see, so maybe the better thing is to put |
Before this commit, we only built the main ACL2 executable. Most users will also want the standard library (the "Community Books"), so after this commit, we build the entire `make everything` suite, which includes essentially everything provided in the ACL2 repository. There's also a new top-level package called `acl2-minimal` which has just the core ACL2 executable, for those who really only want that. Future work: modularize the build so that we can support multiple different subsets of the standard library. A lot of the stuff in this complete build is probably superfluous to almost all users. Also, because some of the books have unclear or idiosyncratic licenses, the full build will not be cached on cache.nixos.org, and installing it will mean spending a few hours building it. So it would be good to have a pared down build which excluded non-free books and things that people rarely or never use.
Motivation for this change
Before this commit, we only built the main ACL2 executable. Most users will also want the standard library (the "Community Books"), so after this commit, we build the entire
make everything
suite, which includes essentially everything provided in the ACL2 repository.There's also a new top-level package called
acl2-minimal
which has just the core ACL2 executable, for those who really only want that.Future work: modularize the build so that we can support multiple different subsets of the standard library. A lot of the stuff in this complete build is probably superfluous to almost all users. Also, because some of the books have unclear or idiosyncratic licenses, the full build will not be cached on cache.nixos.org, and installing it will mean spending a few hours building it. So it would be good to have a pared down build which excluded non-free books and things that people rarely or never use.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)