New opam-based CI and build system
Submodules are gone. If you have opam set up,
make build-dep will install the right version of everything.
This is not exactly what we discussed last week; I think I found something better. In particular, this approach lets us also figure out for historic lambdaRust versions, which commit of iris they needed. No magic branches in other repositories are needed, everything is local here.
Essentially, since the
opam files do not support documenting detailed enough version information, I added a new file
opam.pins that "enhances" the opam file appropriately. This file contains pins (one per line) that have to be set to compile lambdaRust. The script in
build/opam-pins.sh applies those pins - and crucially, it does so recursively: When it finds a pin that is one of our git repositories, it will download the
opam.pins files for that commit and also apply its pins. So if lambdaRust pins a particular commit of iris, and iris pins a particular commit of the prelude, then doing
make build-dep in lambdaRust will follow this transitive chain and install the correct versions of iris and the prelude.