-
Notifications
You must be signed in to change notification settings - Fork 53
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
Install why3 and why3find in local switch #1373
base: master
Are you sure you want to change the base?
Conversation
- This finally reduces the installation to "clone then install". - `./INSTALL` now creates a local switch in `~/.local/share/creusot/_opam`, and reuses it if there already is one. - an install option `--external why3-and-why3find` to use whatever is in the `$PATH`. That is the old behavior, "for experts". CI also uses this option because the new behavior does work well with caching (we do not want to cache the whole opam switch in CI (3Gb)). - I noticed that `cargo test --test why3` does an odd thing where it uses the installed `why3`, `why3find`, and provers, but the local prelude. It's a bit ad hoc, but I also couldn't think of a better solution, so I added some comments to remember that oddity.
Could we reduce the size of |
The binaries would still work, but would |
That's a question I've been asking myself for a long time: there seems to be a lot of duplication in opam switches, and a lot of caches. Which directory is it safe to remove? I've never had an answer. |
It turns out a couple of those gigs are just the package sources and their build outputs. Removing them keeps the switch working, it will redownload the sources as needed. (I wonder if that breaks packages with custom uninstall scripts that need a built source but there are none in our dependencies.) The remaining files in a fresh switch with why3+why3find occupy 550Mb, almost all of it in |
I was thinking that we could do something similar to the Rust dependencies: create the opam switch in |
I think users will be fine with an extra opam switch lying around (especially if it can be reduced to just 0.5Gb). The issue here is specifically for CI which runs |
Right, that seems reasonable indeed! |
Close #1359
./INSTALL
now creates a local switch in~/.local/share/creusot/_opam
, and reuses it if there already is one.--external why3-and-why3find
to use whatever is in the$PATH
. That is the old behavior, "for experts". CI also uses this option because the new behavior doesn't work well with caching (we do not want to cache the whole opam switch in CI (3Gb)).cargo test --test why3
does an odd thing where it uses the installedwhy3
,why3find
, and provers, but the local prelude. It's a bit ad hoc, but I also couldn't think of a better solution, so I added some comments to remember that oddity.