我有一个项目,其主要的阴谋组成部分是一个库。
library
hs-source-dirs: src
...它也定义了
executable todo
if !flag(example)
Buildable: False
ghc-options: -Wall
cpp-options: -DGHCJS_BROWSER
default-language: Haskell2010
hs-source-dirs: example/todo
other-modules: TodoDispatcher
TodoStore
TodoComponents
main-is: Main.hs现在,如果我试图键入一个文件,我会得到以下错误
Configuring react-flux-1.0.3...
EXCEPTION: types:
Could not find module ‘TodoDispatcher’
Use -v to see a list of the files searched for.如果我在命令行中这样做,我就会得到
$ ghc-mod --ghcOpt=-v7 type example/todo/TodoViews.hs 29 28 not sandboxed
EXCEPTION: types:
Could not find module ‘TodoDispatcher’
Locations searched:
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.hs
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.lhs
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.hsig
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.lhsig
src/TodoDispatcher.hs
src/TodoDispatcher.lhs
src/TodoDispatcher.hsig
src/TodoDispatcher.lhsig
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.hs
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.lhs
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.hsig
.stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.lhsig因此,它似乎忽略了我试图键入的当前文件所属的组件的hs-source-dirs设置,而是考虑包的第一个组件中的一个,就像默认情况下阴谋集团所做的那样。
By default cabal repl loads the first component in a package.
我怎样才能改变这种美好的全球状态?
发布于 2016-05-24 14:20:03
好的,下面是你应该做的事情,这样才能让它发挥作用:
Buildable : True在Emacs:
haskell-process-load-file (又名C,又名空间m b)它应该加载正确的“目标”,这是黑斯克尔模式下的“组件”在阴谋中的说法。如果这有效,那么ghc也应该这样做。(?)
http://haskell.github.io/haskell-mode/manual/latest/Interactive-Haskell.html
14.8.1改变REPL目标 使用haskell- session - change,您可以更改REPL会话的目标。 在REPL会话开始后,在haskell-交互式模式缓冲区中调用haskell-会话更改-目标并从可用的目标中选择
回答“是”重新启动会话,并运行您的测试,基准测试,可执行文件。
https://stackoverflow.com/questions/37414984
复制相似问题