Skip to content
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

Don't look for offsets from constants #49

Merged
merged 1 commit into from
Mar 26, 2024
Merged

Don't look for offsets from constants #49

merged 1 commit into from
Mar 26, 2024

Conversation

christiaanb
Copy link
Member

This introduces an infinite loop with the solver pipeline. i.e. when we have:

[G] x :: KnownNat 10
[W] KnownNat 4

we would produce

solved: x - y :: KnownNat 4
New wanted: y :: KnownNat 6

Then we would go to:

[G] x :: KnownNat 10
[W] KnownNat 6

and solve as:

solved: x - y :: KnownNat 6
new wanted: y :: KnownNat 4

And cycle....

Found when upgrading https://github.com/bittide/bittide-hardware/ to GHC 9.4. But it's hard to create a small reproducer, so there is no regression test.

This introduces an infinite loop with the solver pipeline.
i.e. when we have:

[G] x :: KnownNat 10
[W] KnownNat 4

we would produce

solved: x - y :: KnownNat 4
New wanted: y :: KnownNat 6

Then we would go to:

[G] x :: KnownNat 10
[W] KnownNat 6

and solve as:

solved: x - y :: KnownNat 6
new wanted: y :: KnownNat 4

And cycle....

Found when upgrading https://github.com/bittide/bittide-hardware/
to GHC 9.4. But it's hard to create a small reproducer, so there is
no regression test.
@christiaanb christiaanb merged commit 30b72d5 into master Mar 26, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant