我在haskell-cafe上问了这个,但是还没有回复,所以也许没有足够的人使用7.8。也许现在有更多的人在阅读堆栈溢出:
我最近升级到7.8.2,我有一个愚蠢的问题。你怎么 得到ghci加载编译模块?当我尝试这个时:
% cat >T.hs
module T where
x :: Int
x = 42
% ghc -c -dynamic-too T.hs
% s
T.dyn_hi T.dyn_o T.hi T.hs T.o
% ghci
GHCi, version 7.8.2: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package filepath-1.3.0.2 ... linking ... done.
Prelude> :l T
[1 of 1] Compiling T ( T.hs, interpreted )
Ok, modules loaded: T.
*T>
即使存在.dyn_o,它仍会加载解释的文件 当下。我做错了什么?
这是在x86-64 OS X上。
还有一件事可能与此有关。由于我现在加载所有解释的内容,我注意到当我加载了大约一百个模块时,输入变得非常迟缓。此外,haskeline状态也会混淆,例如我点击了逃生k以获得前一行,但随后它又自发地重新进入插入模式。它在大约15秒内保持笨拙和尴尬,然后稍微恢复正常。在加载所有字节码之后,它几乎就像在后台仍在进行大量的工作一样,并且持续GC冻结。但是它可以做些什么呢?字节码已加载,我还没有要求它做任何事情!我不知道这是7.8的新内容,还是加载字节码而不是二进制代码的结果。
答案 0 :(得分:0)