* included in the distribution.
*
* $RCSfile: link.c,v $
- * $Revision: 1.21 $
- * $Date: 1999/12/10 15:59:48 $
+ * $Revision: 1.25 $
+ * $Date: 2000/01/05 19:10:21 $
* ------------------------------------------------------------------------*/
#include "prelude.h"
break;
case POSTPREL:
+#if 0
fprintf(stderr, "linkControl(POSTPREL)\n");
+#endif
if (combined) assert(0);
break;
case PREPREL :
- modulePrelude = newModule(textPrelude);
- setCurrModule(modulePrelude);
-
- for (i=0; i<NUM_TUPLES; ++i) {
- allocTupleTycon(i);
- }
-
if (combined) {
+
+ modulePrelude = findFakeModule(textPrelude);
+ module(modulePrelude).objectExtraNames
+ = singleton(findText("libHS_cbits"));
+
+ nameMkC = addWiredInBoxingTycon("PrelBase","Char", "C#",1,0,CHAR_REP );
+ nameMkI = addWiredInBoxingTycon("PrelBase","Int", "I#",1,0,INT_REP );
+ nameMkW = addWiredInBoxingTycon("PrelAddr","Word", "W#",1,0,WORD_REP );
+ nameMkA = addWiredInBoxingTycon("PrelAddr","Addr", "A#",1,0,ADDR_REP );
+ nameMkF = addWiredInBoxingTycon("PrelBase","Float", "F#",1,0,FLOAT_REP );
+ nameMkD = addWiredInBoxingTycon("PrelBase","Double","D#",1,0,DOUBLE_REP);
+ nameMkInteger
+ = addWiredInBoxingTycon("PrelBase","Integer","Integer#",1,0,0);
+ nameMkPrimByteArray
+ = addWiredInBoxingTycon("PrelGHC","ByteArray","PrimByteArray#",1,0,0);
+
+ for (i=0; i<NUM_TUPLES; ++i) {
+ addTupleTycon(i);
+ }
+ addWiredInEnumTycon("PrelBase","Bool",
+ doubleton(findText("False"),findText("True")));
+
+ //nameMkThreadId
+ // = addWiredInBoxingTycon("PrelConc","ThreadId","ThreadId#"
+ // ,1,0,THREADID_REP);
+
+ setCurrModule(modulePrelude);
+
+ typeArrow = addPrimTycon(findText("(->)"),
+ pair(STAR,pair(STAR,STAR)),
+ 2,DATATYPE,NIL);
} else {
+ modulePrelude = newModule(textPrelude);
+ setCurrModule(modulePrelude);
+
+ for (i=0; i<NUM_TUPLES; ++i) {
+ addTupleTycon(i);
+ }
+ setCurrModule(modulePrelude);
+
typeArrow = addPrimTycon(findText("(->)"),
pair(STAR,pair(STAR,STAR)),
2,DATATYPE,NIL);