Skip to content

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Oct 24, 2025

Right now the only default GHC version gets exported by the flake. This means that libraries wanting to use the clash-compiler flake realistically can only support the default GHC version. If someone wants to use any of the other supported versions, that would work fine for clash-compiler, but it wouldn't trickle down to the libraries (which are stuck with the default ghc version).

Graphs visualizing the issue:
If you want to develop with the default version (ghc9101)

myprogram => ghc9101
 |- clash-compiler => ghc9101
 \- clash-protocols => ghc9101
     |- clash-compiler => ghc9101
     \- circuit-notation => ghc9101
         \- clash-compiler => ghc9101

With a non-default, but supported version (ghc964)

myprogram => ghc964
 |- clash-compiler => ghc964
 \- clash-protocols => ghc9101
     |- clash-compiler => ghc9101
     \- circuit-notation => ghc9101
         \- clash-compiler => ghc9101

By exposing all supported libraries, clash-* libraries can be adapted to build for the same set of ghc versions.

Still TODO:

  • Write a changelog entry (see changelog/README.md)
  • Check copyright notices are up to date in edited files

This is an automatic copy of pull request #2987 done by [Mergify](https://mergify.com).

Right now the only default GHC version gets exported by the flake. This
means that libraries wanting to use the clash-compiler flake
realistically can only support the default GHC version. If someone wants
to use any of the other supported versions, that would work fine for
clash-compiler, but it wouldn't trickle down to the libraries (which are
stuck with the default ghc version).

Graphs visualizing the issue:

If you want to develop with the default version (ghc9101)
```
myprogram => ghc9101
 |- clash-compiler => ghc9101
 \- clash-protocols => ghc9101
     |- clash-compiler => ghc9101
     \- circuit-notation => ghc9101
         \- clash-compiler => ghc9101
```

With a non-default, but supported version (ghc964)
```
myprogram => ghc964
 |- clash-compiler => ghc964
 \- clash-protocols => ghc9101
     |- clash-compiler => ghc9101
     \- circuit-notation => ghc9101
         \- clash-compiler => ghc9101
```

(cherry picked from commit 6a08104)

# Conflicts:
#	flake.nix
@mergify mergify bot added the conflicts label Oct 24, 2025
@mergify
Copy link
Contributor Author

mergify bot commented Oct 24, 2025

Cherry-pick of 6a08104 has failed:

On branch mergify/copy/1.8/pr-2987
Your branch is up to date with 'origin/1.8'.

You are currently cherry-picking commit 6a081049.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   flake.nix

no changes added to commit (use "git add" and/or "git commit -a")

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@DigitalBrains1 DigitalBrains1 marked this pull request as draft October 24, 2025 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant