You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-- This ensures that we don't put *anything* about these functions into the interface-- file, otherwise GHC can be clever about the ones that are always error, even though-- they're NOINLINE!
{-# OPTIONS_GHC -O0 #-}
Now I don't know what the problem is with GHC being clever like that (that should be documented!), but this is overkill regardless. As far as I can tell, the only thing that's always error is error :: BuiltinUnit -> a. Everything else in the module should ideally be analyzed properly. I think the right thing is to just tell GHC exactly what we mean.
Note: in combination with #4193, we'll then want to use lazy in the BuiltinByteString functions so GHC sees those as strict in their BuiltinByteString arguments but not in the underlying ByteStrings.
The text was updated successfully, but these errors were encountered:
Yes, it's a blunt hammer, but it works. What we really want is ghc-proposals/ghc-proposals#415 (for essentially the same reason as the Clash folks want it).
I think it's fine to have -O0 in there, so rather than spending time investigating this issue, I'm going to close it instead. Feel free to reopen if you have a strong feeling about it.
Currently,
Now I don't know what the problem is with GHC being clever like that (that should be documented!), but this is overkill regardless. As far as I can tell, the only thing that's always error is
error :: BuiltinUnit -> a
. Everything else in the module should ideally be analyzed properly. I think the right thing is to just tell GHC exactly what we mean.Note: in combination with #4193, we'll then want to use
lazy
in theBuiltinByteString
functions so GHC sees those as strict in theirBuiltinByteString
arguments but not in the underlyingByteString
s.The text was updated successfully, but these errors were encountered: