From: Vincent St-Amour Date: Fri, 9 Oct 2009 14:58:47 +0000 (-0400) Subject: Changed the name of the * primitive to mul-non-neg. X-Git-Url: https://repo.or.cz/w/picobit.git/commitdiff_plain/18862297eb7bfc7aa637046a84cff5142d287d65 Changed the name of the * primitive to mul-non-neg. --- diff --git a/dispatch.c b/dispatch.c index 8b04a69..03b15d8 100644 --- a/dispatch.c +++ b/dispatch.c @@ -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; diff --git a/encoding.scm b/encoding.scm index b1d228f..a0da6bc 100644 --- a/encoding.scm +++ b/encoding.scm @@ -384,7 +384,7 @@ (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)) @@ -576,7 +576,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 --- 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)) diff --git a/library.scm b/library.scm index 577ffb4..3541044 100644 --- a/library.scm +++ b/library.scm @@ -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?) diff --git a/primitives.c b/primitives.c index 603b0f3..bb9d2b2 100644 --- a/primitives.c +++ b/primitives.c @@ -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");