[project @ 2000-12-15 17:38:45 by sewardj]
[ghc-hetmet.git] / ghc / compiler / ghci / StgInterp.lhs
index c69be22..8428814 100644 (file)
@@ -48,6 +48,8 @@ module StgInterp (
 
 #include "HsVersions.h"
 
+
+
 import Linker
 import Id              ( Id, idPrimRep )
 import Outputable
@@ -65,7 +67,7 @@ import Util
 import UniqFM
 import UniqSet
 
-import {-# SOURCE #-} MCI_make_constr
+--import {-# SOURCE #-} MCI_make_constr
 
 import FastString
 import GlaExts         ( Int(..) )
@@ -94,6 +96,26 @@ import PrelGHC               --( unsafeCoerce#, dataToTag#,
 import PrelAddr        ( Addr(..) )
 import PrelFloat       ( Float(..), Double(..) )
 
+
+#if 1
+interp = panic "interp"
+stgExprToInterpSyn = panic "stgExprToInterpSyn"
+stgBindsToInterpSyn = panic "stgBindsToInterpSyn"
+iExprToHValue = panic "iExprToHValue"
+linkIModules = panic "linkIModules"
+filterNameMap = panic "filterNameMap"
+type ItblEnv    = FiniteMap Name (Ptr StgInfoTable)
+type ClosureEnv = FiniteMap Name HValue
+data StgInfoTable = StgInfoTable {
+   ptrs :: Word16,
+   nptrs :: Word16,
+   srtlen :: Word16,
+   tipe :: Word16,
+   code0, code1, code2, code3, code4, code5, code6, code7 :: Word8
+}
+
+#else
+
 -- ---------------------------------------------------------------------------
 -- Environments needed by the linker
 -- ---------------------------------------------------------------------------
@@ -180,8 +202,6 @@ conapp2expr ie dcon args
              in
                  rearranged
 
-foreign label "PrelBase_Izh_con_info" prelbase_Izh_con_info :: Addr
-
 -- Handle most common cases specially; do the rest with a generic
 -- mechanism (deferred till later :)
 mkConApp :: Name -> [Rep] -> [UnlinkedIExpr] -> UnlinkedIExpr
@@ -801,7 +821,10 @@ evalP (ConAppGen itbl args) de
                        let c' = setDoubleOffClosure c off d#
                        in c' `seq` loop c' (off +# 2#) as }
 
-evalP (PrimOpP IntEqOp [e1,e2]) de = unsafeCoerce# (evalI e1 de ==# evalI e2 de)
+evalP (PrimOpP IntEqOp [e1,e2]) de 
+    = case evalI e1 de of 
+         i1# -> case evalI e2 de of 
+                   i2# -> unsafeCoerce# (i1# ==# i2#)
 
 evalP (PrimOpP primop _) de
    = error ("evalP: unhandled primop: " ++ showSDoc (ppr primop))
@@ -1396,5 +1419,7 @@ load addr = do x <- peek addr
 -----------------------------------------------------------------------------q
 
 foreign import "strncpy" strncpy :: Ptr a -> ByteArray# -> CInt -> IO ()
+#endif
+
 \end{code}