silveroak
silveroak copied to clipboard
Source tree clean up and building and CI modernisation
In the direction of cleaning up source trees, adding support for matrix CI builds and dune building, I'm proposing the following:
- [x] Keep everything simply buildable via
make
- [X] Make haskell files built by cabal by default (#743)
- [ ] Add dune build files but dont make the switch yet
- [ ] Upgrade nix files to support multi coq,ghc,verilator versions
- to be expanded
Then once everything has settled:
- [ ] Add a dependency on dune (everything will still be buildable via
make
) - to be expanded
And should enable:
- Generated non-source files (
.vo
etc), kept in build directories (dune -> _build, cabal -> dist) - Generated source files (
.hs
,.sv
, etc) in-tree in marked directories - Simplification of makefiles e.g. dune handles _CoqProject and no files in source tree = easier cleaning
- Easier/better caching in CI & easier integration of matrix builds (run CI with multiple versions of Coq/Haskell/Verilator, keep requirement for only one blessed version to pass)