Changed the name of the * primitive to mul-non-neg.
authorVincent St-Amour <stamourv@iro.umontreal.ca>
Fri, 9 Oct 2009 14:58:47 +0000 (9 10:58 -0400)
committerVincent St-Amour <stamourv@iro.umontreal.ca>
Fri, 9 Oct 2009 14:58:47 +0000 (9 10:58 -0400)
dispatch.c
encoding.scm
env.scm
library.scm
primitives.c

index 8b04a69..03b15d8 100644 (file)
@@ -485,15 +485,15 @@ void interpreter () {
     case 0:
       arg1 = pop();  prim_numberp ();  push_arg1();  break;
     case 1:
-      arg2 = pop();  arg1 = pop();  prim_add ();      push_arg1();  break;
+      arg2 = pop();  arg1 = pop();  prim_add ();         push_arg1();  break;
     case 2:
-      arg2 = pop();  arg1 = pop();  prim_sub ();      push_arg1();  break;
+      arg2 = pop();  arg1 = pop();  prim_sub ();         push_arg1();  break;
     case 3:
-      arg2 = pop();  arg1 = pop();  prim_mul ();      push_arg1();  break;
+      arg2 = pop();  arg1 = pop();  prim_mul_non_neg (); push_arg1();  break;
     case 4:
-      arg2 = pop();  arg1 = pop();  prim_div ();      push_arg1();  break;
+      arg2 = pop();  arg1 = pop();  prim_div_non_neg (); push_arg1();  break;
     case 5:
-      arg2 = pop();  arg1 = pop();  prim_rem ();      push_arg1();  break;
+      arg2 = pop();  arg1 = pop();  prim_rem ();         push_arg1();  break;
 #if 0
     case 6: // FREE
       break;
index b1d228f..a0da6bc 100644 (file)
             (define (prim.number?)         (prim 0))
             (define (prim.+)               (prim 1))
             (define (prim.-)               (prim 2))
-            (define (prim.*)               (prim 3))
+            (define (prim.mul-non-neg)     (prim 3))
             (define (prim.quotient)        (prim 4))
             (define (prim.remainder)       (prim 5))
             (define (prim.=)               (prim 7))
                              ((#%number?)         (prim.number?))
                              ((#%+)               (prim.+))
                              ((#%-)               (prim.-))
-                             ((#%*)               (prim.*))
+                             ((#%mul-non-neg)     (prim.mul-non-neg))
                              ((#%quotient)        (prim.quotient))
                              ((#%remainder)       (prim.remainder))
                              ((#%=)               (prim.=))
diff --git a/env.scm b/env.scm
index 859968e..e05c56f 100644 (file)
--- a/env.scm
+++ b/env.scm
@@ -31,7 +31,7 @@
      (make-var '#%number? #t '() '() '() #f (make-primitive 1 #f #f))
      (make-var '#%+ #t '() '() '() #f (make-primitive 2 #f #f))
      (make-var '#%- #t '() '() '() #f (make-primitive 2 #f #f))
-     (make-var '#%* #t '() '() '() #f (make-primitive 2 #f #f))
+     (make-var '#%mul-non-neg #t '() '() '() #f (make-primitive 2 #f #f))
      (make-var '#%quotient #t '() '() '() #f (make-primitive 2 #f #f))
      (make-var '#%remainder #t '() '() '() #f (make-primitive 2 #f #f))
      (make-var '#%= #t '() '() '() #f (make-primitive 2 #f #f))
index 577ffb4..3541044 100644 (file)
@@ -67,7 +67,7 @@
            (y-neg? (< y 0))
            (x      (if x-neg? (neg x) x))
            (y      (if y-neg? (neg y) y)))
-      (let ((prod   (#%* x y)))
+      (let ((prod   (#%mul-non-neg x y)))
         (cond ((and x-neg? y-neg?)
                prod)
               ((or x-neg? y-neg?)
index 603b0f3..bb9d2b2 100644 (file)
@@ -14,7 +14,7 @@ char *prim_name[64] =
     "prim #%number?",
     "prim #%+",
     "prim #%-",
-    "prim #%*",
+    "prim #%mul-non-neg",
     "prim #%quotient",
     "prim #%remainder",
     "prim 6",
@@ -116,7 +116,7 @@ void prim_sub () {
   arg2 = OBJ_FALSE;
 }
 
-void prim_mul () {
+void prim_mul_non_neg () {
 #ifdef INFINITE_PRECISION_BIGNUMS
   arg1 = mulnonneg (arg1, arg2);
 #else
@@ -126,7 +126,7 @@ void prim_mul () {
   arg2 = OBJ_FALSE;
 }
 
-void prim_div () {
+void prim_div_non_neg () {
 #ifdef INFINITE_PRECISION_BIGNUMS
   if (obj_eq(arg2, ZERO))
     ERROR("quotient", "divide by 0");