ghci segfault с простой математикой

Кто-нибудь может мне это объяснить? Я использую последнюю версию GHC.

Prelude> let f x = 1/((x**2)-36)  
Prelude> f (0 - 6.5)  
0.16  
Prelude> f (0 - 5.999)  
-Segmentation fault  
Prelude> f (0 - 5)  
-Segmentation fault

Спасибо!

Изменить: GHCi версия 6.10.4, Mac OS 10.6, Intel Macbook Pro
Edit2: GHCi 7.0.3 не имеет этой проблемы.

3 ответа

Интересно, что здесь я не вижу ошибки (в MacOS это так):

GHCi, version 7.0.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.

Prelude> let f x = 1/((x**2)-36)  
Prelude> f (0 - 6.5)  
0.16
Prelude> f (0 - 5)  
-9.090909090909091e-2
Prelude> 

Работает на Windows XP с GHC 7.02:

GHCi, version 7.0.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let f x = 1/((x**2)-36)
Prelude> f (0 - 6.5)
0.16
Prelude> f (0 - 5.999)
-83.34027835650902
Prelude> f (0 - 5)
-9.090909090909091e-2
Prelude>

GHCi версия 6.10.4, Mac OS 10.6, Intel Macbook Pro

Первое, что нужно сделать в такой ситуации, - это проверить последнюю стабильную версию программного обеспечения.

  • GHC 6.10.4 был выпущен в июле 2009 года.
  • GHC 7.0.3 доступен сейчас, в мае 2011 года.

Поэтому обновитесь до GHC 7.0.3 через платформу Haskell и проверьте снова.

Если у вас все еще есть ошибка, сообщите о ней через систему отслеживания ошибок, так как любой сбой требует исправления ошибки с высоким приоритетом.

Другие вопросы по тегам