ghci segfault与简单的数学

时间:2011-05-12 16:31:56

标签: haskell ghc ghci

任何人都可以向我解释这个吗?我正在使用最新版本的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 个答案:

答案 0 :(得分:1)

有趣的是,我没有在这里得到段错误(在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> 

答案 1 :(得分:1)

适用于带有GHC 7.02的Windows XP:

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>

答案 2 :(得分:1)

  

GHCi版本6.10.4,Mac OS 10.6,Intel Macbook Pro

在这种情况下要做的第一件事就是检查软件的最新稳定版本。

  • GHC 6.10.4于2009年7月发布。
  • GHC 7.0.3现已于2011年5月上市。

通过Haskell Platform升级到GHC 7.0.3,然后再次检查。

如果您还有错误,请通过the bug tracker进行举报,因为任何崩溃都需要高优先级错误修复。