ghci segfault с простой математикой - PullRequest
3 голосов
/ 12 мая 2011

Кто-нибудь может мне это объяснить?Я использую последнюю версию 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 ]

1 голос
/ 12 мая 2011

Работает на 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>
1 голос
/ 12 мая 2011

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

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

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

Так что обновитесь до GHC7.0.3, через Haskell Platform и проверьте еще раз.

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

1 голос
/ 12 мая 2011

Интересно, у меня здесь нет ошибки (в 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> 
...