我現在應該真的知道這一點,但我不知道。我經常在基于 Cabal 的包上作業,并且剛剛成功運行了一個cabal build. 現在我想在 GHCi 中嘗試一些東西。如果我運行cabal repl,則 GHC 會將整個包重新編譯為位元組碼并在解釋器中運行它。完全不是我想要的!如果我只是直接運行 GHCi,我會使用類似的東西-O -fobject-code,但這不會給我包背景關系。我只想“給我一個編譯好的包的副本,僅在必要時編譯其他內容。” 我該怎么做?
uj5u.com熱心網友回復:
我不知道正確的方法,但我知道一種有時可能有用的解決方法。如果你關心的是一個庫組件,你可以要求一個可執行組件的 repl。
uj5u.com熱心網友回復:
我相信--repl-options -fobject-code有點做你想要的:
cabal repl --repl-options -fobject-code --repl-options -O --builddir dist-repl
當您在 GHCi 中作業時,這將為您提供編譯代碼的增量構建。注意事項:
dist-repl是-fobject-code構建物件的替代目錄。至少從cabal 3.6.2.0 開始,嘗試重用來自的常規輸出cabal build會導致一些不必要的重建和其他奇怪的行為,如cabal issue #3565 所述。既然如此,最好妥協并使用--builddir保留一組單獨的構建物件。請注意,cabal clean接受該--builddir選項就好了。明確設定優化級別是必要的,否則默認
-O0從cabal repl將覆寫你的軟體包的設定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363879.html
上一篇:如何手動評估我的多功能?
