Как увеличить размер стека с помощью 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