input-output-hk / input-output-hk/tools
Compiling Plutus dependencies with core bindings
- Dominant language
- Nix
- Stars
- 5
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
With extensible interfaces, we can currently compile a package using a plugin to produce interface files that contain core bindings, which can be used to recover ASTs during Plutus compilation.
However, as a design choice of Cabal, we can’t include flags for dependencies as part of the build process. So, we can’t run our plugin to serialise core bindings on the dependencies automatically, and neither can we implement a specialised GHC flag to perform the serialisation - because we can’t get either of those flags into the build of each dependency.
This is unlikely to change with Cabal (https://github.com/haskell/cabal/issues/4853), so we need an alternative solution.
One possible solution is to use a custom compiler that serialises core bindings by default - in which case we can get around the build tool’s limitations. This may involve building up the `package-db` in a more controlled way, depending on how isolated the build is.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.