On Wed, May 2, 2018 at 12:27 PM, Simon Peyton Jones
wrote:
> Wow. Could you open a ticket?
Done: https://ghc.haskell.org/trac/ghc/ticket/15114
> I just tried with 8.2.2 which is what I have on this laptop, but it printed
> "all is well". Does that mean it was fine in 8.2, went wrong in 8.4.1
19:39
| To: Simon Peyton Jones
| Cc: ghc-devs@haskell.org
| Subject: Re: ghc 8.4.1 and trac 13930
|
| Ok, here's a short module:
|
| import qualified Control.Exception as Exception
|
| main :: IO ()
| main = do
| unserialize
| putStrLn "all is well"
|
| unserialize :: IO Char
Ok, here's a short module:
import qualified Control.Exception as Exception
main :: IO ()
main = do
unserialize
putStrLn "all is well"
unserialize :: IO Char
unserialize =
if definitelyTrue
then do
return 'a'
else do
Exception.evaluate (error "w
On Wed, May 2, 2018 at 1:24 AM, Simon Peyton Jones
wrote:
> | I recently noticed that with -O1, ghc was optimizing some code
> |
> | if Trace.traceShowId "b" $ True
> | then ...
> | else ...
> |
> | to always evaluate the 'else' branch.
>
> Are you certain this is #13930?
| I recently noticed that with -O1, ghc was optimizing some code
|
| if Trace.traceShowId "b" $ True
| then ...
| else ...
|
| to always evaluate the 'else' branch.
Are you certain this is #13930? I don't see an obvious connection. It seems
really really terrible
On Tue, May 1, 2018 at 9:58 PM, Ben Gamari wrote:
> Yes, I suppose the language in the release notes does rather understate
> the degree of the incorrectness.
>
> I'll push a new version of the manual with some stronger language
> tomorrow.
Good deal, thanks for the quick response.
__
Evan Laforge writes:
> I recently noticed that with -O1, ghc was optimizing some code
>
> if Trace.traceShowId "b" $ True
> then return $ Left $ Serialize.BadMagic (Serialize.magicBytes
> magic) file_magic
> else first Serialize.UnserializeError <$> Exception.evaluate
> (Seria