* included in the distribution.
*
* $RCSfile: hugs.c,v $
- * $Revision: 1.34 $
- * $Date: 2000/01/10 16:27:03 $
+ * $Revision: 1.35 $
+ * $Date: 2000/01/11 14:21:43 $
* ------------------------------------------------------------------------*/
#include <setjmp.h>
}
addStackEntry("Prelude");
+ if (combined) addStackEntry("PrelHugs");
for (i=1; i < argc; ++i) { /* process command line arguments */
if (strcmp(argv[i], "--")==0) break;
checkExp();
defaultDefns = evalDefaults;
type = typeCheckExp(TRUE);
+
if (isPolyType(type)) {
ks = polySigOf(type);
bd = monotypeOf(type);
ERRTEXT "\n"
EEND;
}
- inputExpr = ap2(findName(findText("show")),d,inputExpr);
- inputExpr = ap(findName(findText("putStr")), inputExpr);
- inputExpr = ap(nameRunIO_toplevel, inputExpr);
+ inputExpr = ap2(nameShow, d,inputExpr);
+ inputExpr = ap (namePutStr, inputExpr);
+ inputExpr = ap (nameRunIO_toplevel, inputExpr);
evalExp(); printf("\n");
if (addType) {
* included in the distribution.
*
* $RCSfile: link.c,v $
- * $Revision: 1.31 $
- * $Date: 2000/01/10 17:19:33 $
+ * $Revision: 1.32 $
+ * $Date: 2000/01/11 14:21:43 $
* ------------------------------------------------------------------------*/
#include "prelude.h"
Name nameZero; /* for monads with a zero */
Name nameId;
+Name nameShow;
+Name namePutStr;
Name nameRunIO_toplevel;
Name namePrint;
classFloating = linkClass("Floating");
classNum = linkClass("Num");
classMonad = linkClass("Monad");
-
+assert(nonNull(typeDouble));
+assert(nonNull(typeInteger));
stdDefaults = NIL;
stdDefaults = cons(typeDouble,stdDefaults);
# if DEFAULT_BIGNUM
*/
name(namePrimTakeMVar).type = primType(MONAD_Id, "rbc", "d");
+ if (combined) {
for (i=2; i<=NUM_DTUPLES; i++) {/* Add derived instances of tuples */
addTupInst(classEq,i);
addTupInst(classOrd,i);
addTupInst(classRead,i);
addTupInst(classBounded,i);
}
+ }
}
}
nameInRange = linkName("inRange");
nameMinus = linkName("-");
/* These come before calls to implementPrim */
+ if (combined) {
for(i=0; i<NUM_TUPLES; ++i) {
implementTuple(i);
}
+ }
}
}
/* primops */
nameMkIO = linkName("hugsprimMkIO");
- for (i=0; asmPrimOps[i].name; ++i) {
- Text t = findText(asmPrimOps[i].name);
- Name n = findName(t);
- if (isNull(n)) {
- n = newName(t,NIL);
- }
- name(n).line = 0;
- name(n).defn = NIL;
- name(n).type = primType(asmPrimOps[i].monad,
- asmPrimOps[i].args,
- asmPrimOps[i].results);
- name(n).arity = strlen(asmPrimOps[i].args);
- name(n).primop = &(asmPrimOps[i]);
- implementPrim(n);
- }
+ if (!combined) {
+ for (i=0; asmPrimOps[i].name; ++i) {
+ Text t = findText(asmPrimOps[i].name);
+ Name n = findName(t);
+ if (isNull(n)) {
+ n = newName(t,NIL);
+ }
+ name(n).line = 0;
+ name(n).defn = NIL;
+ name(n).type = primType(asmPrimOps[i].monad,
+ asmPrimOps[i].args,
+ asmPrimOps[i].results);
+ name(n).arity = strlen(asmPrimOps[i].args);
+ name(n).primop = &(asmPrimOps[i]);
+ implementPrim(n);
+ }
+ }
/* static(tidyInfix) */
nameNegate = linkName("negate");
/* user interface */
nameRunIO_toplevel = linkName("hugsprimRunIO_toplevel");
+ nameShow = linkName("show");
+ namePutStr = linkName("putStr");
namePrint = linkName("print");
/* desugar */
nameOtherwise = linkName("otherwise");
namePmSub = linkName("hugsprimPmSub");
# endif
/* translator */
- nameEqChar = linkName("primEqChar");
+ nameEqChar = linkName("hugsprimEqChar");
nameCreateAdjThunk = linkName("hugsprimCreateAdjThunk");
namePmInt = linkName("hugsprimPmInt");
namePmInteger = linkName("hugsprimPmInteger");
- namePmDouble = linkName("primPmDouble");
+ namePmDouble = linkName("hugsprimPmDouble");
namePmFromInteger = linkName("hugsprimPmFromInteger");
namePmSubtract = linkName("hugsprimPmSubtract");