-
Notifications
You must be signed in to change notification settings - Fork 149
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
Behaves differently: zipWith3 f a b c
/ f <$> a <*> b <*> c
#2723
Comments
No specialisation takes place, so it cannot be a specialisation cache issue. The "problem" is
where it inlines the definition of clash-compiler/clash-ghc/src-ghc/Clash/GHC/Evaluator/Primitive.hs Lines 192 to 216 in a245bb8
zipWith .
|
zipWith3 f a b c
/ f <$> a <*> b <*> c
zipWith3 f a b c
/ f <$> a <*> b <*> c
Why do we have a blackbox for In this specific case the behavior of the bb is better btw, though correctness obviously beats prettiness. |
Haskell-to-HDL compile speed. Without them, the clash compiler would have to unfold/unroll all functions over vector. That could increase compile times by 100x. |
That is, the following causes Clash to generate one module for
bbWrapper
:But the following generates tries to generate 4:
Reproducer (note that this reproducer will fail to error if #2722 gets fixed):
Gives:
I'm somewhat undecided whether this is a
bug
or anenhancement
, so I've labelled them as both.The text was updated successfully, but these errors were encountered: