Segfault читает ленивый bytestring за 2 ^ 18 байтов

Рассмотрим следующий код: http://hpaste.org/90394

Я использую карту памяти большого файла размером 460 МБ для ленивой ByteString. Длина отчета ByteString 471053056.

Когда nxNodeFromID file 110000 изменяется на нижний node ID, то есть: 10000, он работает отлично. Однако; как только я попробую и сериализую что-нибудь прошлое ровно 2 ^ 18 байт (262144) ByteString, я получаю Segmentation fault/access violation in generated code и завершение.

Я запускаю Windows и использую GHC 7.4.2.

Пожалуйста, сообщите, является ли это моей ошибкой или какой-то проблемой с лень, или, что-то связано с Haskell.

Ответ 1

Обратите внимание, что я обновил mmap, чтобы правильно включить прагму NOINLINE в стратегическую точку в коде. mmap-0.5.9 для захватов. Дайте мне знать, сохранится ли проблема. Изменить: да, я автор mmap.