[project @ 2000-01-14 19:14:26 by rrt]
[ghc-hetmet.git] / ghc / interpreter / link.h
index b2b8bf6..d8d149c 100644 (file)
@@ -1,7 +1,10 @@
 
 extern Cell conCons;
 
-extern Name nameRunIO;
+extern Name nameShow;
+extern Name namePutStr;
+extern Name nameRunIO_toplevel;
+
 
 /* The following data constructors are used to box unboxed
  * arguments and are treated differently by the code generator.
@@ -12,45 +15,31 @@ extern Name nameRunIO;
 
 extern Name nameMkC;
 extern Name nameMkI;
-#ifdef PROVIDE_INT64
-extern Name nameMkInt64;
-#endif
-#ifdef PROVIDE_WORD
 extern Name nameMkW;
-#endif
-#ifdef PROVIDE_ADDR
 extern Name nameMkA;
-#endif
 extern Name nameMkF;
 extern Name nameMkD;
-#ifdef PROVIDE_STABLE
 extern Name nameMkStable;    
-#endif
 
 /* The following data constructors are used to make boxed but 
  * unpointed values pointed and require no special treatment
  * by the code generator.
  */
-#ifdef PROVIDE_INTEGER
 extern Name nameMkInteger;
-#endif
-#ifdef PROVIDE_ARRAY
 extern Name nameMkPrimArray;            
 extern Name nameMkPrimByteArray;
 extern Name nameMkRef;                  
 extern Name nameMkPrimMutableArray;     
 extern Name nameMkPrimMutableByteArray; 
-#endif
+extern Name nameMkThreadId;  
+extern Name nameMkPrimMVar;  
 #ifdef PROVIDE_FOREIGN
 extern Name nameMkForeign;   
 #endif
 #ifdef PROVIDE_WEAK
 extern Name nameMkWeak;
 #endif
-#ifdef PROVIDE_CONCURRENT
-extern Name nameMkThreadId;  
-extern Name nameMkMVar;  
-#endif
+
 
 /* For every primitive type provided by the runtime system,
  * we construct a Haskell type using a declaration of the form:
@@ -59,40 +48,25 @@ extern Name nameMkMVar;
  */
 extern Type typeChar;
 extern Type typeInt;
-#ifdef PROVIDE_INT64
-extern Type typeInt64;
-#endif
-#ifdef PROVIDE_INTEGER
 extern Type typeInteger;
-#endif
-#ifdef PROVIDE_WORD
 extern Type typeWord;
-#endif
-#ifdef PROVIDE_ADDR
 extern Type typeAddr;
-#endif
-#ifdef PROVIDE_ARRAY
 extern Type typePrimArray;            
 extern Type typePrimByteArray;
 extern Type typeRef;                  
 extern Type typePrimMutableArray;     
 extern Type typePrimMutableByteArray; 
-#endif
 extern Type typeFloat;
 extern Type typeDouble;
-#ifdef PROVIDE_STABLE
 extern Type typeStable;
-#endif
+extern Type typeThreadId;
+extern Type typeMVar;
 #ifdef PROVIDE_WEAK
 extern Type typeWeak;
 #endif
 #ifdef PROVIDE_FOREIGN
 extern Type typeForeign;
 #endif
-#ifdef PROVIDE_CONCURRENT
-extern Type typeThreadId;
-extern Type typeMVar;
-#endif
 
 /* And a smaller number of types defined in plain Haskell */
 extern Type typeList;
@@ -103,17 +77,6 @@ extern Type typeST;
 extern Type typeIO;
 extern Type typeException;
 
-/* copied out of K&R2, Appendix A */
-#define cat(x,y) x ## y
-#define xcat(x,y) cat(x,y)
-
-#ifdef BIGNUMTYPE
-#define typeBignum   xcat(type,BIGNUMTYPE)
-#define nameMkBignum xcat(nameMk,BIGNUMTYPE)
-#else
-#warning BIGNUMTYPE undefined
-#endif
-
 /* used while desugaring */
 extern Name nameId;
 extern Name nameOtherwise;
@@ -128,11 +91,8 @@ extern Name nameSel;
 /* used in translation */
 extern Name nameEq;     
 extern Name namePMFail;
-extern Name namePMFailBUG;
 extern Name nameEqChar;
-extern Name nameEqInt;
 extern Name nameEqInteger;
-extern Name nameEqDouble;
 extern Name namePmInt;
 extern Name namePmInteger;
 extern Name namePmDouble;
@@ -164,3 +124,5 @@ extern       Cell  predFractional;;            /* Fractional (mkOffset(0))
 extern       Cell  predIntegral;;              /* Integral (mkOffset(0))          */
 extern       Kind  starToStar;;                /* Type -> Type                    */
 extern       Cell  predMonad;;                 /* Monad (mkOffset(0))             */
+
+