-
Notifications
You must be signed in to change notification settings - Fork 21
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
Untangle the macaw-loader
submodule knot
#283
Comments
I'm happy to merge it in. Id like to think about the API a bit, but maybe we can just mark it unstable and refine it over time |
I also like option 2: merging in macaw-loader. IIRC, it wasn't originally a circular dependency until we merged some of the other macaw repos together. |
Before GHC 9.4 the cabal build cache did not work properly with submodules. This was worked around by automatically converting submodules into source repository packages in cabal.project. This has two issues: * source repo checkouts are implicitly recursive, creating a lot of duplicate checkouts of all sub-repos * macaw and macaw-loader are mutually dependent, causing a recursive checkout of either to get stuck in a loop. see: GaloisInc/macaw#283 Since we have no explicit reason to support older GHC revisions, we can just drop it from CI for simplicity
Another unfortunate consequence of doing this is that |
Currently the
macaw
repo depends on themacaw-loader
repo as a submodule dependency. However, themacaw-loader
repo also depends on themacaw
repo as a submodule. This makes coordinating submodule bumps between the repos challenging, as they sometimes have to be updated simultaneously.I'd like to propose that we find a way to make this situation more tolerable. Some possible ideas for doing so:
macaw
's dependency onmacaw-loader
, thereby removing themacaw-loader
submodule dependency frommacaw
. This would require changing some code inmacaw
to avoid the use ofmacaw-loader
, however. In some cases, this would impact the public-facing API, such as inmacaw-ppc
andmacaw-refinement
.macaw-loader
packages into themacaw
repo. This would involve some amount of churn for downstream libraries, but it could be done.The text was updated successfully, but these errors were encountered: