@@ -80,9 +80,13 @@ initRtsSupport progName progArgs mods = do
8080 , bName == binderName
8181 ]
8282
83+ promptM_ $ do
84+ forM_ mods $ \ m@ Module {.. } -> do
85+ liftIO $ print (moduleUnitId, moduleName)
86+ 8387 forM_ wiredInClosures $ \ (u, m, n, setter) -> do
8488 case Map. lookup (u, m, n) closureMap of
85- Nothing -> error $ " missing wired in closure: " ++ show (u, m, n)
89+ Nothing -> liftIO $ putStrLn $ " missing wired in closure: " ++ show (u, m, n) -- ++ "\n" ++ unlines (map show $ Map.keys closureMap )
8690 Just b -> do
8791 cl <- lookupEnv mempty b
8892 modify' $ \ s@ StgState {.. } -> s {ssRtsSupport = setter ssRtsSupport cl}
@@ -111,25 +115,25 @@ wiredInCons =
111115 -- unit-id, module, type con, data con
112116 [ (" ghc-prim" , " GHC.Types" , " Char" , " C#" , \ s dc -> s {rtsCharCon = dc})
113117 , (" ghc-prim" , " GHC.Types" , " Int" , " I#" , \ s dc -> s {rtsIntCon = dc})
114- , (" base" , " GHC.Int" , " Int8" , " I8#" , \ s dc -> s {rtsInt8Con = dc})
115- , (" base" , " GHC.Int" , " Int16" , " I16#" , \ s dc -> s {rtsInt16Con = dc})
116- , (" base" , " GHC.Int" , " Int32" , " I32#" , \ s dc -> s {rtsInt32Con = dc})
117- , (" base" , " GHC.Int" , " Int64" , " I64#" , \ s dc -> s {rtsInt64Con = dc})
118118 , (" ghc-prim" , " GHC.Types" , " Word" , " W#" , \ s dc -> s {rtsWordCon = dc})
119- , (" base" , " GHC.Word" , " Word8" , " W8#" , \ s dc -> s {rtsWord8Con = dc})
120- , (" base" , " GHC.Word" , " Word16" , " W16#" , \ s dc -> s {rtsWord16Con = dc})
121- , (" base" , " GHC.Word" , " Word32" , " W32#" , \ s dc -> s {rtsWord32Con = dc})
122- , (" base" , " GHC.Word" , " Word64" , " W64#" , \ s dc -> s {rtsWord64Con = dc})
123- , (" base" , " GHC.Ptr" , " Ptr" , " Ptr" , \ s dc -> s {rtsPtrCon = dc})
124- , (" base" , " GHC.Ptr" , " FunPtr" , " FunPtr" , \ s dc -> s {rtsFunPtrCon = dc})
125119 , (" ghc-prim" , " GHC.Types" , " Float" , " F#" , \ s dc -> s {rtsFloatCon = dc})
126120 , (" ghc-prim" , " GHC.Types" , " Double" , " D#" , \ s dc -> s {rtsDoubleCon = dc})
127- , (" base" , " GHC.Stable" , " StablePtr" , " StablePtr" , \ s dc -> s {rtsStablePtrCon = dc})
128121 , (" ghc-prim" , " GHC.Types" , " Bool" , " True" , \ s dc -> s {rtsTrueCon = dc})
129122 , (" ghc-prim" , " GHC.Types" , " Bool" , " False" , \ s dc -> s {rtsFalseCon = dc})
123+ , (" ghc-internal" , " GHC.Internal.Int" , " Int8" , " I8#" , \ s dc -> s {rtsInt8Con = dc})
124+ , (" ghc-internal" , " GHC.Internal.Int" , " Int16" , " I16#" , \ s dc -> s {rtsInt16Con = dc})
125+ , (" ghc-internal" , " GHC.Internal.Int" , " Int32" , " I32#" , \ s dc -> s {rtsInt32Con = dc})
126+ , (" ghc-internal" , " GHC.Internal.Int" , " Int64" , " I64#" , \ s dc -> s {rtsInt64Con = dc})
127+ , (" ghc-internal" , " GHC.Internal.Word" , " Word8" , " W8#" , \ s dc -> s {rtsWord8Con = dc})
128+ , (" ghc-internal" , " GHC.Internal.Word" , " Word16" , " W16#" , \ s dc -> s {rtsWord16Con = dc})
129+ , (" ghc-internal" , " GHC.Internal.Word" , " Word32" , " W32#" , \ s dc -> s {rtsWord32Con = dc})
130+ , (" ghc-internal" , " GHC.Internal.Word" , " Word64" , " W64#" , \ s dc -> s {rtsWord64Con = dc})
131+ , (" ghc-internal" , " GHC.Internal.Ptr" , " Ptr" , " Ptr" , \ s dc -> s {rtsPtrCon = dc})
132+ , (" ghc-internal" , " GHC.Internal.Ptr" , " FunPtr" , " FunPtr" , \ s dc -> s {rtsFunPtrCon = dc})
133+ , (" ghc-internal" , " GHC.Internal.Stable" , " StablePtr" , " StablePtr" , \ s dc -> s {rtsStablePtrCon = dc})
130134
131135 -- validation for extStgRtsSupportModule
132- , (" ghc-prim" , " GHC.Tuple" , " (,) " , " (,)" , \ s _dc -> s)
136+ , (" ghc-prim" , " GHC.Tuple" , " Tuple2 " , " (,)" , \ s _dc -> s)
133137 ]
134138{-
135139 "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
@@ -142,19 +146,19 @@ wiredInCons =
142146wiredInClosures :: [(Name , Name , Name , Rts -> Atom -> Rts )]
143147wiredInClosures =
144148 -- unit-id, module, binder, closure setter
145- [ (" base " , " GHC.TopHandler" , " runIO" , \ s cl -> s {rtsTopHandlerRunIO = cl})
146- , (" base " , " GHC.TopHandler" , " runNonIO" , \ s cl -> s {rtsTopHandlerRunNonIO = cl})
147- , (" base " , " GHC.TopHandler" , " flushStdHandles" , \ s cl -> s {rtsTopHandlerFlushStdHandles = cl})
148- , (" base " , " GHC.Pack" , " unpackCString" , \ s cl -> s {rtsUnpackCString = cl})
149- , (" base " , " GHC.Exception.Type" , " divZeroException" , \ s cl -> s {rtsDivZeroException = cl})
150- , (" base " , " GHC.Exception.Type" , " underflowException" , \ s cl -> s {rtsUnderflowException = cl})
151- , (" base " , " GHC.Exception.Type" , " overflowException" , \ s cl -> s {rtsOverflowException = cl})
149+ [ (" ghc-internal " , " GHC.Internal .TopHandler" , " runIO" , \ s cl -> s {rtsTopHandlerRunIO = cl})
150+ , (" ghc-internal " , " GHC.Internal .TopHandler" , " runNonIO" , \ s cl -> s {rtsTopHandlerRunNonIO = cl})
151+ , (" ghc-internal " , " GHC.Internal .TopHandler" , " flushStdHandles" , \ s cl -> s {rtsTopHandlerFlushStdHandles = cl})
152+ , (" ghc-internal " , " GHC.Internal .Pack" , " unpackCString" , \ s cl -> s {rtsUnpackCString = cl})
153+ , (" ghc-internal " , " GHC.Internal .Exception.Type" , " divZeroException" , \ s cl -> s {rtsDivZeroException = cl})
154+ , (" ghc-internal " , " GHC.Internal .Exception.Type" , " underflowException" , \ s cl -> s {rtsUnderflowException = cl})
155+ , (" ghc-internal " , " GHC.Internal .Exception.Type" , " overflowException" , \ s cl -> s {rtsOverflowException = cl})
152156 , (" :ext-stg" , " :ExtStg.RTS.Support" , " applyFun1Arg" , \ s cl -> s {rtsApplyFun1Arg = cl})
153157 , (" :ext-stg" , " :ExtStg.RTS.Support" , " tuple2Proj0" , \ s cl -> s {rtsTuple2Proj0 = cl})
154- , (" base " , " Control.Exception.Base" , " nestedAtomically" , \ s cl -> s {rtsNestedAtomically = cl})
155- , (" base " , " Control.Exception.Base" , " nonTermination" , \ s cl -> s {rtsNonTermination = cl})
156- , (" base " , " GHC.IO.Exception" , " blockedIndefinitelyOnMVar" , \ s cl -> s {rtsBlockedIndefinitelyOnMVar = cl})
157- , (" base " , " GHC.IO.Exception" , " blockedIndefinitelyOnSTM" , \ s cl -> s {rtsBlockedIndefinitelyOnSTM = cl})
158+ , (" ghc-internal " , " GHC.Internal. Control.Exception.Base" , " nestedAtomically" , \ s cl -> s {rtsNestedAtomically = cl})
159+ , (" ghc-internal " , " GHC.Internal. Control.Exception.Base" , " nonTermination" , \ s cl -> s {rtsNonTermination = cl})
160+ , (" ghc-internal " , " GHC.Internal .IO.Exception" , " blockedIndefinitelyOnMVar" , \ s cl -> s {rtsBlockedIndefinitelyOnMVar = cl})
161+ , (" ghc-internal " , " GHC.Internal .IO.Exception" , " blockedIndefinitelyOnSTM" , \ s cl -> s {rtsBlockedIndefinitelyOnSTM = cl})
158162 ]
159163
160164{-
0 commit comments