[project @ 2000-07-07 11:03:57 by simonmar]
[ghc-hetmet.git] / ghc / rts / Prelude.c
index d469d8b..154b046 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: Prelude.c,v 1.2 2000/03/14 14:34:47 sewardj Exp $
+ * $Id: Prelude.c,v 1.8 2000/06/15 13:23:52 daan Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
 #include "Prelude.h"
 
 #if defined(INTERPRETER)
-const StgClosure *ind_True_static_closure;
-const StgClosure *ind_False_static_closure;
+const StgClosure *ind_True_closure;
+const StgClosure *ind_False_closure;
 const StgClosure *ind_unpackCString_closure;
+const StgClosure *ind_runFinalizerBatch_closure;
+
 const StgClosure *ind_stackOverflow_closure;
 const StgClosure *ind_heapOverflow_closure;
-const StgClosure *ind_PutFullMVar_static_closure;
-const StgClosure *ind_NonTermination_static_closure;
-const StgClosure *ind_mainIO_closure;
+const StgClosure *ind_PutFullMVar_closure;
+const StgClosure *ind_BlockedOnDeadMVar_closure;
+const StgClosure *ind_NonTermination_closure;
 
 const StgInfoTable *ind_Czh_static_info;
 const StgInfoTable *ind_Izh_static_info;
@@ -73,6 +75,17 @@ INFO_TABLE_CONSTR(hugs_standalone_Wzh_static_info,Hugs_CONSTR_entry,
                   0,sizeofW(StgWord),0,CONSTR_NOCAF_STATIC,,EF_,0,0);
 INFO_TABLE_CONSTR(hugs_standalone_StablePtr_static_info,Hugs_CONSTR_entry,
                   0,sizeofW(StgStablePtr),0,CONSTR_NOCAF_STATIC,,EF_,0,0);
+
+#ifdef XMLAMBDA
+/* The Inj constructor: data Inj = forall a. Inj a Int#
+   Since this one is not present in Haskell compiled stuff, we bind it statically. 
+*/
+INFO_TABLE_CONSTR(xmlambda_Inj_con_info,Hugs_CONSTR_entry,
+                  sizeofW(StgPtr),sizeofW(StgInt),0,CONSTR,,EF_,0,0);
+
+const StgInfoTable* ind_Inj_con_info = &xmlambda_Inj_con_info;
+#endif /* XMLAMBDA */
+
 #endif
 
 
@@ -94,15 +107,18 @@ INFO_TABLE_CONSTR(hugs_standalone_StablePtr_static_info,Hugs_CONSTR_entry,
 */
 void fixupRTStoPreludeRefs ( void*(*ask_hugs_dynamic_linker)(char*) )
 {
+  (void)ask_hugs_dynamic_linker;   /* keep gcc -Wall happy */
 #if defined(INTERPRETER)
   if (ask_hugs_dynamic_linker == NULL) {
 
     /* Hugs standalone mode. */
-    ind_True_static_closure           = NULL; /* True_static_closure; */
-    ind_False_static_closure          = NULL; /* False_static_closure; */
-    ind_PutFullMVar_static_closure    = NULL; /* PutFullMVar_static_closure; */
-    ind_NonTermination_static_closure = NULL; /* NonTermination_static_closure; */
-    ind_unpackCString_closure         = NULL; /* unpackCString_closure; */
+    ind_True_closure               = NULL; /* True__closure; */
+    ind_False_closure              = NULL; /* False_closure; */
+    ind_runFinalizerBatch_closure  = NULL; /* runFinalizerBatch_closure; */
+    ind_PutFullMVar_closure        = NULL; /* PutFullMVar_closure; */
+    ind_BlockedOnDeadMVar_closure  = NULL; /* BlockedOnDeadMVar_closure; */
+    ind_NonTermination_closure     = NULL; /* NonTermination_closure; */
+    ind_unpackCString_closure      = NULL; /* unpackCString_closure; */
 
     ind_stackOverflow_closure = stackOverflow_closure;
     ind_heapOverflow_closure  = heapOverflow_closure;
@@ -129,14 +145,18 @@ void fixupRTStoPreludeRefs ( void*(*ask_hugs_dynamic_linker)(char*) )
     /* Hugs combined mode. */
     void*(*ask)(char*) = ask_hugs_dynamic_linker;
 
-    ind_True_static_closure           
-       = ask("PrelBase_True_static_closure");
-    ind_False_static_closure          
-       = ask("PrelBase_False_static_closure");
-    ind_PutFullMVar_static_closure    
-       = ask("PrelException_PutFullMVar_static_closure");
-    ind_NonTermination_static_closure 
-       = ask("PrelException_NonTermination_static_closure");
+    ind_True_closure           
+       = ask("PrelBase_True_closure");
+    ind_False_closure          
+       = ask("PrelBase_False_closure");
+    ind_runFinalizerBatch_closure    
+       = ask("PrelWeak_runFinalizzerBatch_closure");
+    ind_PutFullMVar_closure    
+       = ask("PrelException_PutFullMVar_closure");
+    ind_BlockedOnDeadMVar_closure    
+       = ask("PrelException_BlockedOnDeadMVar_closure");
+    ind_NonTermination_closure 
+       = ask("PrelException_NonTermination_closure");
 
     ind_unpackCString_closure = ask("PrelPack_unpackCString_closure");
     ind_stackOverflow_closure = ask("PrelException_stackOverflow_closure");