我試圖解決Haskell中的算法難題,爲此我需要相當大的數據結構。然而,我提交解決方案的問題解決網站並未使用任何運行時選項來允許更大的堆棧,但我聽說我可以使用編譯器選項作爲雜注。我試過在我的代碼中使用下面的編譯指示:使用-with-rtsopts ghc選項作爲編譯指示
{-# OPTIONS_GHC -O2 -rtsopts -with-rtsopts=-K32m #-}
然後我用ghc --make algo.hs
進行編譯。但是,當我在我的機器上運行某些大型測試時,程序崩潰時出現堆棧溢出,並報告當前堆棧大小爲8MB。在另一方面,當我編譯這樣的:
ghc -rtsopts -with-rtsopts=-K32M --make algo.hs -fforce-recomp
該項目工程在相同的數據就好了,不添加任何+RTS
參數。我使用GHC 7.0.2,但解決問題的網站使用的是6.12.3,所以最好是我正在尋找可以使用該舊版本的解決方案。