* included in the distribution.
*
* $RCSfile: link.c,v $
- * $Revision: 1.53 $
- * $Date: 2000/03/22 18:14:22 $
+ * $Revision: 1.60 $
+ * $Date: 2000/04/27 16:35:29 $
* ------------------------------------------------------------------------*/
-#include "prelude.h"
+#include "hugsbasictypes.h"
#include "storage.h"
#include "connect.h"
#include "errors.h"
-#include "Assembler.h" /* for asmPrimOps and AsmReps */
#include "Rts.h" /* to make Prelude.h palatable */
+#include "Assembler.h" /* for asmPrimOps and AsmReps */
#include "Prelude.h" /* for fixupRTStoPreludeRefs */
Name nameMult;
Name nameMFail;
Type typeOrdering;
+Module modulePrelPrim;
Module modulePrelude;
Name nameMap;
Name nameMinus;
-
/* --------------------------------------------------------------------------
* Frequently used type skeletons:
* ------------------------------------------------------------------------*/
tc = findTyconInAnyModule(findText(s));
if (nonNull(tc)) return tc;
}
-fprintf(stderr, "frambozenvla! unknown tycon %s\n", s );
+FPrintf(stderr, "frambozenvla! unknown tycon %s\n", s );
return NIL;
ERRMSG(0) "Prelude does not define standard type \"%s\"", s
EEND;
cc = findClassInAnyModule(findText(s));
if (nonNull(cc)) return cc;
}
-fprintf(stderr, "frambozenvla! unknown class %s\n", s );
+FPrintf(stderr, "frambozenvla! unknown class %s\n", s );
return NIL;
ERRMSG(0) "Prelude does not define standard class \"%s\"", s
EEND;
n = findNameInAnyModule(findText(s));
if (nonNull(n)) return n;
}
-fprintf(stderr, "frambozenvla! unknown name %s\n", s );
+FPrintf(stderr, "frambozenvla! unknown name %s\n", s );
return NIL;
ERRMSG(0) "Prelude does not define standard name \"%s\"", s
EEND;
if (!initialised) {
Int i;
initialised = TRUE;
- setCurrModule(modulePrelude);
+ if (combined) {
+ setCurrModule(modulePrelude);
+ } else {
+ setCurrModule(modulePrelPrim);
+ }
typeChar = linkTycon("Char");
typeInt = linkTycon("Int");
Int i;
initialised = TRUE;
- setCurrModule(modulePrelude);
+ if (combined) {
+ setCurrModule(modulePrelude);
+ } else {
+ setCurrModule(modulePrelPrim);
+ }
/* constructors */
nameFalse = linkName("False");
if (!initialised) {
initialised = TRUE;
- setCurrModule(modulePrelude);
+ if (combined) {
+ setCurrModule(modulePrelude);
+ } else {
+ setCurrModule(modulePrelPrim);
+ }
/* primops */
nameMkIO = linkName("hugsprimMkIO");
Module modulePrelBase = findModule(findText("PrelBase"));
assert(nonNull(modulePrelBase));
/* fprintf(stderr, "linkControl(POSTPREL)\n"); */
- setCurrModule(modulePrelude);
+ setCurrModule(modulePrelude);
linkPreludeTC();
linkPreludeCM();
linkPrimNames();
*/
modulePrelBase = findModule(findText("PrelBase"));
module(modulePrelBase).objectExtraNames
- = singleton(findText("libHS_cbits"));
+ = singleton(findText("libHSstd_cbits"));
setCurrModule(modulePrelBase);
pFun(nameId, "id");
} else {
fixupRTStoPreludeRefs(NULL);
- modulePrelude = //newModule(textPrelude);
- findFakeModule(textPrelude);
- setCurrModule(modulePrelude);
+ modulePrelPrim = findFakeModule(textPrelPrim);
+ modulePrelude = findFakeModule(textPrelude);
+ setCurrModule(modulePrelPrim);
for (i=0; i<NUM_TUPLES; ++i) {
if (i != 1) addTupleTycon(i);
}
- setCurrModule(modulePrelude);
+ setCurrModule(modulePrelPrim);
typeArrow = addPrimTycon(findText("(->)"),
pair(STAR,pair(STAR,STAR)),
pFun(namePrimRaise, "primRaise");
pFun(namePrimTakeMVar, "primTakeMVar");
{
- StgVar vv = mkStgVar(NIL,NIL);
- Name n = namePrimSeq;
- name(n).line = 0;
- name(n).arity = 1;
- name(n).type = NIL;
- vv = mkStgVar(NIL,NIL);
- stgVarInfo(vv) = mkPtr ( asm_BCO_seq() );
- name(n).stgVar = vv;
- stgGlobals=cons(pair(n,vv),stgGlobals);
- namePrimSeq = n;
+ Name n = namePrimSeq;
+ name(n).line = 0;
+ name(n).arity = 1;
+ name(n).type = NIL;
+ name(n).closure = mkCPtr ( asm_BCO_seq() );
+ addToCodeList ( modulePrelPrim, n );
}
{
- StgVar vv = mkStgVar(NIL,NIL);
- Name n = namePrimCatch;
- name(n).line = 0;
- name(n).arity = 2;
- name(n).type = NIL;
- stgVarInfo(vv) = mkPtr ( asm_BCO_catch() );
- name(n).stgVar = vv;
- stgGlobals=cons(pair(n,vv),stgGlobals);
+ Name n = namePrimCatch;
+ name(n).line = 0;
+ name(n).arity = 2;
+ name(n).type = NIL;
+ name(n).closure = mkCPtr ( asm_BCO_catch() );
+ addToCodeList ( modulePrelPrim, n );
}
{
- StgVar vv = mkStgVar(NIL,NIL);
- Name n = namePrimRaise;
- name(n).line = 0;
- name(n).arity = 1;
- name(n).type = NIL;
- stgVarInfo(vv) = mkPtr ( asm_BCO_raise() );
- name(n).stgVar = vv;
- stgGlobals=cons(pair(n,vv),stgGlobals);
+ Name n = namePrimRaise;
+ name(n).line = 0;
+ name(n).arity = 1;
+ name(n).type = NIL;
+ name(n).closure = mkCPtr ( asm_BCO_raise() );
+ addToCodeList ( modulePrelPrim, n );
}
{
- StgVar vv = mkStgVar(NIL,NIL);
- Name n = namePrimTakeMVar;
- name(n).line = 0;
- name(n).arity = 2;
- name(n).type = NIL;
- stgVarInfo(vv) = mkPtr ( asm_BCO_takeMVar() );
- name(n).stgVar = vv;
- stgGlobals=cons(pair(n,vv),stgGlobals);
+ Name n = namePrimTakeMVar;
+ name(n).line = 0;
+ name(n).arity = 2;
+ name(n).type = NIL;
+ name(n).closure = mkCPtr ( asm_BCO_takeMVar() );
+ addToCodeList ( modulePrelPrim, n );
}
}
break;
}
#undef pFun
-//#include "fooble.c"
/*-------------------------------------------------------------------------*/