Как увеличить размер стека с помощью runhaskell?

Я пишу некоторые одноразовые сценарии Haskell, чтобы решить некоторые из Проект Эйлера проблемы. Я действительно не хочу компилировать их из-за количества изменений, которые мне постоянно приходится делать, но в нескольких случаях я обнаружил, что у меня закончилось пространство стека.

документация runhaskell говорит, что следующий синтаксис должен увеличить пространство стека:

runhaskell +RTS -K5M -RTS Script.hs

никогда, никогда не работает (в любой перестановке я пробовал). Размер стека всегда остается 8,388,608. Это сводит с ума, и я не нашел большой помощи в Google.

какие предложения? Что я делаю не так?

3 ответов


Я предполагаю, что вы используете GHC. Глава 4 руководства пользователя недавно выпущенного 6.10.1 гласит:

единственный флаг runghc в настоящее время - f / path/ to / ghc, который сообщает runghc, который GHC использовать для запуска программы.

Я не вижу ошибка входа в http://hackage.haskell.org/trac/ghc . По-моему, довольно неубедительно. Я бы предложил запросить irc #ghc или список рассылки cvs-ghc.

другого Хаскелла компиляторы/интерпретаторы, только nhc98, кажется, позволяют установить максимальный размер стека. В зависимости от вашей ОС, nhc98 может быть вариантом.


просто скомпилировать его.

Problem123.hs:

module Main where
main = do
    print solution
solution = ...

короткая и сладкая командная строка:

ghc --make -O3 Problem123.hs
./Problem123

последнее примечание: Я не уверен, что назвал бы их "скриптами".


Я делаю то же самое (Project Euler) и использую ghc. Трюк (спасибо #haskell!) это сказать исполняемый чтобы иметь больше размера стека, а не компилятор.

$ ghc -O2 -o 23 23.hs
$ ./23 +RTS -K128M