2014-11-04 90 views
2

目前,cabal repl對我無法使用。在提示符下鍵入是不穩定的:幾個字母出現,然後它似乎掛起5-10秒,只能在以後再次進行。我懷疑這與它將Alex/Happy生成的文件(分別爲81K和134K)加載到REPL中有關。我大部分時間並不需要這些文件來支持REPL。我不確定這是否是問題所在,但我不知道還有什麼可以嘗試的。cabal repl太慢

我希望能夠將它們從REPL中排除,同時仍將它們包含在構建過​​程中。更好:我能以某種方式只使用這些文件中的一個功能(lex/parse)嗎?

編輯:我看到在OS X 10.9上運行的GHC 7.8.3/Cabal 1.20.0.3和具有16GB內存的2012年中期rMBP(Sandy Bridge)的這種行爲。 GHC/Cabal通過Homebrew安裝。

編輯2:Cabal file問題

+1

你可以提供一些關於你正在運行的機器的信息嗎?它是本地機器還是遠程機器? OS?這種東西。 – 2014-11-04 15:52:50

+1

已添加到原始帖子。 – 2014-11-04 16:37:40

回答

0

我試着爲每個user5402的答案重新編寫代碼,但即使代碼位於不同的基礎包中,我也無法獲得很大的加速。

相反,我創建了一個.ghci文件在項目目錄包含以下內容:模塊

:set -fobject-code 

加載的這個編譯版本,只有導出的函數調用。對於我的用途,這很好。

2

您可以發佈您.cabal文件?

如果我正確理解你的處境,這裏是我如何可能會進行:

  1. 驗證Alex和幸福產生的文件造成的放緩。
  2. 如果是這種情況,請考慮將它們移動到不同的包中,以便ghci將加載它們的編譯版本。

#1,我可能會嘗試只用存根更換Alex和快樂生成的文件 - 它包含了只有被其他模塊導入的符號定義(= undefined)骨骼文件。

+0

好主意!我會試一試並報告。我不知道如何做#2,所以我會告訴你,如果這能解決問題。 – 2014-11-04 16:38:56

+0

我已確認這些生成的文件正在導致放緩。我還編輯了一個鏈接到當前的Cabal文件。我把它們放到'Hython.Parser'包中,我需要做什麼特殊的事情來防止ghci自動加載它們嗎? – 2014-11-05 01:24:02