![](/img/trans.png)
[英]why `stack build` doesn't print the warning, but `stack ghci` does?
[英]In emacs stack-ghci cannot load interface files but `stack build` from the command line does
我可以從命令行stack build
項目,但是當我在emacs中嘗試Cc Cl
時(使用(custom-set-variables '(haskell-process-type 'stack-ghci))
)我得到一個錯誤,即所有包模塊我導入無法找到。
/home/amcp011/bec/amcp011/accelerate/gpe/src/Numeric/GPE/Utils.hs:30:1: error:
Failed to load interface for ‘Data.Array.Accelerate’
Locations searched:
Data/Array/Accelerate.hs
Data/Array/Accelerate.lhs
Data/Array/Accelerate.hsig
Data/Array/Accelerate.lhsig
/home/amcp011/bec/amcp011/accelerate/gpe/src/Data/Array/Accelerate.hs
/home/amcp011/bec/amcp011/accelerate/gpe/src/Data/Array/Accelerate.lhs
/home/amcp011/bec/amcp011/accelerate/gpe/src/Data/Array/Accelerate.hsig
/home/amcp011/bec/amcp011/accelerate/gpe/src/Data/Array/Accelerate.lhsig
gpe.cabal
:
build-depends: base >= 4.7 && < 5
, bytestring
, bytestring-conversion
, mtl
, time
, filepath
, directory
, accelerate
, accelerate-io
stack.yaml
:
extra-deps: [accelerate-1.0.0.0
,accelerate-io-1.0.0.0
]
我能夠使用stack build
編譯您的項目(當然,在安裝了一些系統范圍的依賴項,如llvm,cuda,fftw3等之后)並在emacs中使用Cc Cl
加載它。
這是最適合我的emacs配置:
(defun haskell-mode-setup ()
(setq haskell-process-type 'stack-ghci))
(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
(add-hook 'haskell-mode-hook 'haskell-mode-setup)
我能夠復制你遇到的問題的唯一方法是使用inf-haskell-mode
,而不是interactive-haskell-mode
,以及簡單地通過設置(setq haskell-process-type 'ghci)
。 因此,emacs可能找不到stack
。
我建議嘗試讓haskell-mode知道堆棧的位置,以防它安裝在非公共位置: (setq haskell-process-path-stack "/path/to/stack")
。
或者,我已經解決了過去與$PATH
環境變量相關的一些問題,這些問題與為當前用戶設置的不同,但是在系統范圍內使用的問題。 只需安裝exec-path-from-shell
emacs包並將(exec-path-from-shell-initialize)
到~/.emacs
。
此外,如果您還沒有這樣做,檢查haskell模式日志可能會很有用。 將(setq haskell-process-log t)
到haskell-mode-setup
,這將導致帶有日志的額外緩沖區。
筆記:
stack.yaml
刪除幾行,即包含本地dirs /home/amcp011/local/
,它們不包含在repo中並使用我的系統安裝gcc
而不是RHEL6.3
的一行RHEL6.3
。 haskell-mode
之外的其他一些emacs包,它們也可能是問題的原因。 我用intero
和flycheck
測試了它沒有任何問題。 stack upgrade
和haskell-mode
,這可能會有所幫助。 我在emacs-25.2.2
上測試了stack-1.5.1
和haskell-mode-20170824.1124
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.