guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. release_1-9-15-134-g4


From: Mark H Weaver
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-15-134-g4324bf9
Date: Tue, 08 Mar 2011 23:20:23 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=4324bf9a961f0ed57376db752b67dba1a6344748

The branch, master has been updated
       via  4324bf9a961f0ed57376db752b67dba1a6344748 (commit)
       via  0748e3f3f07fb6b6680160ea488d73b04506f8c7 (commit)
      from  5d344028fbf8b3e764549d975b20aa20ae316aa9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4324bf9a961f0ed57376db752b67dba1a6344748
Author: Mark H Weaver <address@hidden>
Date:   Fri Mar 4 13:44:02 2011 -0500

    Within `while', `continue' takes zero arguments
    
    * module/ice-9/boot-9.scm (while): Report an error if `continue' is
      passed one or more arguments.  Previously, it would report an error if
      `(continue arg rest ...)' was found within the `while', but not if
      `continue' was found bare and later applied to one or more arguments,
      e.g. `(apply continue (list arg rest ...))'.

commit 0748e3f3f07fb6b6680160ea488d73b04506f8c7
Author: Mark H Weaver <address@hidden>
Date:   Sun Mar 6 20:27:40 2011 -0500

    Quotient, remainder and modulo accept inexact integers
    
    * libguile/numbers.c (scm_quotient, scm_remainder, scm_modulo): Accept
      inexact integers as well as exact ones, as required by the R5RS.
    
    * test-suite/tests/numbers.test (quotient, remainder, modulo): Add tests.

-----------------------------------------------------------------------

Summary of changes:
 libguile/numbers.c            |   12 ++++++------
 module/ice-9/boot-9.scm       |    4 ++--
 test-suite/tests/numbers.test |   18 ++++++++++++++++++
 3 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/libguile/numbers.c b/libguile/numbers.c
index be86eb5..f8891fa 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -796,9 +796,9 @@ SCM_PRIMITIVE_GENERIC (scm_quotient, "quotient", 2, 0, 0,
        "Return the quotient of the numbers @var{x} and @var{y}.")
 #define FUNC_NAME s_scm_quotient
 {
-  if (SCM_LIKELY (SCM_I_INUMP (x)) || SCM_LIKELY (SCM_BIGP (x)))
+  if (SCM_LIKELY (scm_is_integer (x)))
     {
-      if (SCM_LIKELY (SCM_I_INUMP (y)) || SCM_LIKELY (SCM_BIGP (y)))
+      if (SCM_LIKELY (scm_is_integer (y)))
        return scm_truncate_quotient (x, y);
       else
        SCM_WTA_DISPATCH_2 (g_scm_quotient, x, y, SCM_ARG2, s_scm_quotient);
@@ -817,9 +817,9 @@ SCM_PRIMITIVE_GENERIC (scm_remainder, "remainder", 2, 0, 0,
        "@end lisp")
 #define FUNC_NAME s_scm_remainder
 {
-  if (SCM_LIKELY (SCM_I_INUMP (x)) || SCM_LIKELY (SCM_BIGP (x)))
+  if (SCM_LIKELY (scm_is_integer (x)))
     {
-      if (SCM_LIKELY (SCM_I_INUMP (y)) || SCM_LIKELY (SCM_BIGP (y)))
+      if (SCM_LIKELY (scm_is_integer (y)))
        return scm_truncate_remainder (x, y);
       else
        SCM_WTA_DISPATCH_2 (g_scm_remainder, x, y, SCM_ARG2, s_scm_remainder);
@@ -839,9 +839,9 @@ SCM_PRIMITIVE_GENERIC (scm_modulo, "modulo", 2, 0, 0,
        "@end lisp")
 #define FUNC_NAME s_scm_modulo
 {
-  if (SCM_LIKELY (SCM_I_INUMP (x)) || SCM_LIKELY (SCM_BIGP (x)))
+  if (SCM_LIKELY (scm_is_integer (x)))
     {
-      if (SCM_LIKELY (SCM_I_INUMP (y)) || SCM_LIKELY (SCM_BIGP (y)))
+      if (SCM_LIKELY (scm_is_integer (y)))
        return scm_floor_remainder (x, y);
       else
        SCM_WTA_DISPATCH_2 (g_scm_modulo, x, y, SCM_ARG2, s_scm_modulo);
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 0f89dce..4b28ad7 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -2805,8 +2805,8 @@ module '(ice-9 q) '(make-q q-length))}."
                          ((_ . args)
                           (syntax-violation 'continue "too many arguments" x))
                          (_
-                          #'(lambda args 
-                              (apply abort-to-prompt continue-tag args))))))
+                          #'(lambda ()
+                              (abort-to-prompt continue-tag))))))
                    (do () ((not cond)) body ...))
                  (lambda (k) (lp)))))
             (lambda (k)
diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test
index cb582ed..9584294 100644
--- a/test-suite/tests/numbers.test
+++ b/test-suite/tests/numbers.test
@@ -633,6 +633,12 @@
     (pass-if "n = fixnum-min - 1"
       (eqv? 1 (quotient (- fixnum-min 1) (- fixnum-min 1)))))
   
+  ;; Inexact integers
+
+  (pass-if (eqv? 5.0 (quotient 35.0 7.0)))
+  (pass-if (eqv? 5.0 (quotient 35   7.0)))
+  (pass-if (eqv? 5.0 (quotient 35.0 7  )))
+
   ;; Positive dividend and divisor
 
   (pass-if "35 / 7"
@@ -826,6 +832,12 @@
     (pass-if "n = fixnum-min - 1"
       (eqv? 0 (remainder (- fixnum-min 1) (- fixnum-min 1)))))
 
+  ;; Inexact integers
+
+  (pass-if (eqv? 2.0 (remainder 37.0 7.0)))
+  (pass-if (eqv? 2.0 (remainder 37   7.0)))
+  (pass-if (eqv? 2.0 (remainder 37.0 7  )))
+
   ;; Positive dividend and divisor
 
   (pass-if "35 / 7"
@@ -1009,6 +1021,12 @@
     (pass-if "n = fixnum-min - 1"
       (eqv? 0 (modulo (- fixnum-min 1) (- fixnum-min 1)))))
 
+  ;; Inexact integers
+
+  (pass-if (eqv? 1.0 (modulo 13.0 4.0)))
+  (pass-if (eqv? 1.0 (modulo 13   4.0)))
+  (pass-if (eqv? 1.0 (modulo 13.0 4  )))
+
   ;; Positive dividend and divisor
 
   (pass-if "13 % 4"


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]