Использование опции -with-rtsopts ghc в качестве прагмы

Я пытаюсь решить алгоритмическую головоломку в 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, поэтому я ищу решение, которое могло бы работать и с этой старой версией.

9
задан imz -- Ivan Zakharyaschev 20 May 2015 в 05:03
поделиться