import LLVM.PassManager
import LLVM.Pretty
import LLVM.Target
+import Numeric
import System.IO
import System.IO.Error
import Text.Read (readMaybe)
-- This can eventually be used to resolve external functions, e.g. a stdlib call
symResolver :: MangledSymbol -> IO (Either JITSymbolError JITSymbol)
-symResolver sym = undefined
+symResolver sym = do
+ ptr <- getSymbolAddressInProcess sym
+ putStrLn $ "Resolving " <> show sym <> " to 0x" <> showHex ptr ""
+ return (Right (JITSymbol ptr defaultJITSymbolFlags))
repl :: ModuleBuilderT (ReaderT JITEnv IO) ()
repl = do