Update of /cvsroot/fink/dists/10.4/stable/main/finkinfo/10.4-EOL/languages
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24154

Modified Files:
        guile20.info 
Added Files:
        guile20.patch 
Log Message:
sync. w/ 10.!4, texinfo-5 patches


--- NEW FILE: guile20.patch ---
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 52e227f..66c95db 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -7640,10 +7640,16 @@ scm_product (SCM x, SCM y)
       if (SCM_LIKELY (SCM_I_INUMP (y)))
        {
          scm_t_inum yy = SCM_I_INUM (y);
-         scm_t_inum kk = xx * yy;
-         SCM k = SCM_I_MAKINUM (kk);
-         if ((kk == SCM_I_INUM (k)) && (kk / xx == yy))
-           return k;
+#if SCM_I_FIXNUM_BIT < 32 && SCM_HAVE_T_INT64
+          scm_t_int64 kk = xx * (scm_t_int64) yy;
+          if (SCM_FIXABLE (kk))
+            return SCM_I_MAKINUM (kk);
+#else
+          scm_t_inum axx = (xx > 0) ? xx : -xx;
+          scm_t_inum ayy = (yy > 0) ? yy : -yy;
+          if (SCM_MOST_POSITIVE_FIXNUM / axx >= ayy)
+            return SCM_I_MAKINUM (xx * yy);
+#endif
          else
            {
              SCM result = scm_i_inum2big (xx);
diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test
index ddbd209..66aa01a 100644
--- a/test-suite/tests/numbers.test
+++ b/test-suite/tests/numbers.test
@@ -3070,6 +3070,16 @@
     (pass-if (eqv?   fixnum-min (* (* fixnum-min -1) -1)))
     (pass-if (equal? fixnum-min (* (* fixnum-min -1) -1))))
 
+  (with-test-prefix "signed fixnum overflow"
+    (pass-if (eqv? (* 65536 65536) 4294967296))
+    (pass-if (eqv? (* -65536 65536) -4294967296))
+    (pass-if (eqv? (* 65536 -65536) -4294967296))
+    (pass-if (eqv? (* -65536 -65536) 4294967296))
+    (pass-if (eqv? (* 4294967296 4294967296) 18446744073709551616))
+    (pass-if (eqv? (* -4294967296 4294967296) -18446744073709551616))
+    (pass-if (eqv? (* 4294967296 -4294967296) -18446744073709551616))
+    (pass-if (eqv? (* -4294967296 -4294967296) 18446744073709551616)))
+
   (with-test-prefix "signed zeroes"
     (pass-if (eqv? +0.0 (* +0.0 +0.0)))
     (pass-if (eqv? -0.0 (* -0.0 +0.0)))
diff --git a/doc/ref/api-control.texi b/doc/ref/api-control.texi
index 95c4925..ea943d3 100644
--- a/doc/ref/api-control.texi
+++ b/doc/ref/api-control.texi
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
-@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009, 2010, 2011, 
2012
-@c   Free Software Foundation, Inc.
+@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009, 2010,
+@c   2011, 2012, 2013 Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
 @node Control Mechanisms
@@ -1732,8 +1732,8 @@ and the call to these routines doesn't change 
@code{errno}.
 @deftypefnx {C Function} void scm_wrong_type_arg (char *@var{subr}, int 
@var{argnum}, SCM @var{bad_value})
 @deftypefnx {C Function} void scm_wrong_type_arg_msg (char *@var{subr}, int 
@var{argnum}, SCM @var{bad_value}, const char *@var{expected})
 @deftypefnx {C Function} void scm_memory_error (char *@var{subr})
-Throw an error with the various keys described above.
 @deftypefnx {C Function} void scm_misc_error (const char *@var{subr}, const 
char *@var{message}, SCM @var{args})
+Throw an error with the various keys described above.
 
 In @code{scm_wrong_num_args}, @var{proc} should be a Scheme symbol
 which is the name of the procedure incorrectly invoked.  The other
diff --git a/doc/ref/r6rs.texi b/doc/ref/r6rs.texi
index 2028ada..13f9e20 100644
--- a/doc/ref/r6rs.texi
+++ b/doc/ref/r6rs.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
-@c Copyright (C)  2010, 2011, 2012
+@c Copyright (C)  2010, 2011, 2012, 2013
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
@@ -273,10 +273,8 @@ grouped below by the existing manual sections to which 
they correspond.
 @end deffn
 
 @deffn {Scheme Syntax} define-syntax keyword expression
-@deffnx {Scheme Syntax} let-syntax ((keyword transformer) @dots{})
-                        exp1 exp2 @dots{}
-@deffnx {Scheme Syntax} letrec-syntax ((keyword transformer) @dots{})
-                        exp1 exp2 @dots{}
+@deffnx {Scheme Syntax} let-syntax ((keyword transformer) @dots{}) exp1 exp2 
@dots{}
+@deffnx {Scheme Syntax} letrec-syntax ((keyword transformer) @dots{}) exp1 
exp2 @dots{}
 @xref{Defining Macros}, for documentation.
 @end deffn
 

Index: guile20.info
===================================================================
RCS file: 
/cvsroot/fink/dists/10.4/stable/main/finkinfo/10.4-EOL/languages/guile20.info,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- guile20.info        7 Jan 2013 21:21:21 -0000       1.5
+++ guile20.info        10 May 2013 17:47:55 -0000      1.6
@@ -27,11 +27,11 @@
 Source: mirror:gnu:guile/guile-%v.tar.gz
 # Source: 
http://hydra.nixos.org/job/gnu/guile-2-0/tarball/latest/download-by-type/file/source-dist
 Source-MD5: c18d48ba90296fb346f4cf2779f41598
-# PatchFile: %n.patch
-# PatchFile-MD5: 4876e126e4183f61fbf03905d2d39373
+PatchFile: %n.patch
+PatchFile-MD5: 5dbf26198f3b0a02c9f1e2e09d5530ec
 PatchScript: <<
 #!/bin/sh -ev
-# patch -p1 < %{PatchFile}
+patch -p1 < %{PatchFile}
 perl -i -pe 's|(lt_dlinit\s*\(\s*\))|\1; lt_dladdsearchdir("\%p/lib")|' 
libguile/dynl.c
 # When LIBICONV_PLUG is not defined (normal) iconv, iconv_open, iconv_close
 # are all #defined to libiconv* in <iconv.h>, but this #undef messes it up.


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to