HaskellStack ошибки переполнения пространства в Haskell с очень небольшой размер стека программы
main=main>>main
терпит неудачу с
2mem: Stack space overflow: current size 33624 bytes.
2mem: Use `+RTS -Ksize -RTS' to increase it.
33k кажется весьма мала. OS (сверху) сообщает об общем использовании памяти 6G перед сбоем. Когда я скомпилирую программу с ghc -rtsopts 2mem.hs
и запускаю ее с ./2mem +RTS -K32M
, я получаю ту же ошибку.
Я использую ghc, версия 8.0.1 на MacOS 10.11.6.
Почему пространство стека настолько мало и почему не -K32M
увеличить его?
Это не имеет большого значения. Ваша программа будет взорвать стек независимо от того, как вы его запускаете. Это в основном то же самое, что и 'main = main', но позже создаст исключение' <> 'вместо переполнения стека. 33K - довольно большой стек для использования GHC. –
dfeuer
Указанный размер стека в сообщении неверен. Я думал, что это исправлено. –
@ReidBarton: ошибка в ghc, может быть [этот] (https://ghc.haskell.org/trac/ghc/ticket/10445), хотя он отмечен как «фиксированный»? Кто-нибудь знаком с системой отслеживания ошибок ghc? Есть ли способ повторно открыть билет? – nimi