Update of /cvsroot/fink/dists/10.4/stable/main/finkinfo/languages In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24047
Modified Files: guile20.info Added Files: guile20.patch Log Message: sync. w/ 10.7, 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/languages/guile20.info,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- guile20.info 7 Jan 2013 21:21:20 -0000 1.6 +++ guile20.info 10 May 2013 17:45:28 -0000 1.7 @@ -28,8 +28,8 @@ 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} ------------------------------------------------------------------------------ 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