2011-08-21 2 views
3

힌트 (Language.Haskell.Interpreter)로 해석 모드를 강제 적용하려면 어떻게해야합니까?힌트로 해석을 강제하는 방법

module Main where 

import Language.Haskell.Interpreter 
import Control.Monad 

main = do 
    res <- runInterpreter (test "test") 
    case res of 
     Left e -> putStrLn (show e) 
     Right t -> putStrLn (show t) 
    return() 

test :: String -> Interpreter() 
test mname = 
    do 
    loadModules [mname ++ ".hs"] 
    setTopLevelModules ["Main"] 

(here에서 응답 기준)가 발생합니다 :

NotAllowed "These modules are not interpreted:\nMain\n" 

는 GHC는 test.o를 발견 한 경우에만

는이 코드를!

나는 -fforce-recomp 옵션 GHCi/힌트에서 사용할 때 해석을 강제로 보인다 사용

unsafeSetGhcOption ("-fbyte-code") 

답변

4

시도했습니다.

unsafeSetGhcOption "-fforce-recomp" 

나는이를 확인하려면 모든 문서를 찾을 수 있지만

, GHCi/힌트는 GHC에서 검사 재 컴파일을 다시 것이 합리적인 것 같다.


UPDATE : 조금 주위에 파고는 더 나는 별표 모듈 이름을 접두어로하는 GHCi에서 해석을 강제 것을 주장한다 GHC ticket #2542을 발견했다. 이것은 또한 the documentation에서 확인됩니다.

:load *test.hs 

이뿐만 아니라 힌트에 이월 나타납니다, 그래서 이것은 또한 작동합니다

loadModules ["*" ++ mname ++ ".hs"]