Segfault读取延迟字节串超过2 ^ 18个字节

时间:2013-06-25 07:56:58

标签: haskell ghc lazy-evaluation mmap bytestring

请考虑以下代码:http://hpaste.org/90394

我将内存映射到一个大的460mb文件到一个懒惰的ByteString。 ByteString的长度报告471053056

nxNodeFromID file 110000更改为较低的节点ID,即:10000时,它可以正常工作。然而;一旦我尝试序列化任何超过ByteString的2 ^ 18个字节(262144),我得到Segmentation fault/access violation in generated code并终止。

我正在运行Windows并使用GHC 7.4.2。

请告知这是我的错,还是懒惰的问题,或Haskell的一些问题。

1 个答案:

答案 0 :(得分:1)

请注意,我已更新mmap以在代码中的关键点正确包含NOINLINE pragma。 mmap-0.5.9可用于抓取。如果问题仍然存在,请告诉我。 编辑:是的,我是mmap的作者。