Я пытаюсь решить алгоритмическую головоломку в Haskell, и для этого мне нужна довольно большая структура данных. . Однако сайт решения проблем, на который я отправляю свое решение, не использует никаких параметров времени выполнения, чтобы разрешить больший стек, но я слышал, что могу использовать параметры компилятора в качестве прагмы. Я пробовал использовать в своем коде следующую прагму:
{-# OPTIONS_GHC -O2 -rtsopts -with-rtsopts=-K32m #-}
Затем я компилирую с помощью ghc --make algo.hs
. Однако, когда я запускаю на своей машине некоторые большие тесты, программа падает с переполнением стека и сообщает, что текущий размер стека составляет 8 МБ. С другой стороны, когда я компилирую так:
ghc -rtsopts -with-rtsopts=-K32M --make algo.hs -fforce-recomp
Программа прекрасно работает с теми же данными, без добавления аргументов +RTS
. Я использую GHC 7.0.2, но сайт решения проблем использует 6.12.3, поэтому я ищу решение, которое могло бы работать и с этой старой версией.