How to describe this bug?

Christian Maeder Christian.Maeder at dfki.de
Tue Jul 10 15:28:27 CEST 2012


Am 10.07.2012 13:06, schrieb Sönke Hahn:
> I've attached the code. The code does not make direct use of
> unsafePerformIO. It uses QuickCheck, but I don't think, this is a
> QuickCheck bug. The used Eq-instance is the one for Float.

The Eq-instance for floats is broken wrt NaN

Prelude> (0/0 :: Float) == 0/0
False

I do not know if you create NaN in your tests, though.

C.

>
> I've only managed to reproduce this bug on 32-bit-linux with ghc-7.4.2
> when compiling with -O2.
>
> (The code might seem a bit odd, but this is the most boiled down version
> I could come up with. Even removing the "module Main where" line changes
> the behaviour.)
>
> Cheers,
> Sönke
>
>
> On 07/10/2012 12:51 PM, malcolm.wallace wrote:
>> Also, it is more likely to be a buggy instance of Eq, than a real loss
>> of referential transparency.
>>
>> Regards,
>>      Malcolm
>>
>>
>> On Jul 10, 2012, at 11:49 AM, Christopher Done <chrisdone at gmail.com> wrote:
>>
>>> Depends what the real offending code is. For example, if it contains
>>> unsafePerformIO then it's not a bug.
>>>
>>> On 10 July 2012 12:42, Sönke Hahn <shahn at cs.tu-berlin.de
>>> <mailto:shahn at cs.tu-berlin.de>> wrote:
>>>> Hi!
>>>>
>>>> I've discovered a strange bug that violates simple equational reasoning.
>>>> Basically, something similar to this:
>>>>
>>>> let a = f x
>>>> in a == f x
>>>>
>>>> evaluates to False.
>>>>
>>>> I'd like to report this on ghc-trac, but I realised, that I don't know a
>>>> good name for behaviour like this. Is there one? "Broken referential
>>>> transparency", perhaps?
>>>>
>>>> Thanks,
>>>> Sönke
>>>>
>>>>
>>>> _______________________________________________
>>>> Glasgow-haskell-users mailing list
>>>> Glasgow-haskell-users at haskell.org
>>> <mailto:Glasgow-haskell-users at haskell.org>
>>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>>
>>> _______________________________________________
>>> Glasgow-haskell-users mailing list
>>> Glasgow-haskell-users at haskell.org
>>> <mailto:Glasgow-haskell-users at haskell.org>
>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>
>>
>> _______________________________________________
>> Glasgow-haskell-users mailing list
>> Glasgow-haskell-users at haskell.org
>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>
>
>
>
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>




More information about the Glasgow-haskell-users mailing list