1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00

merge from 1.8 branch

This commit is contained in:
Kevin Ryde 2007-03-07 23:35:55 +00:00
parent 1ef21ad2a9
commit b3aa4626cd
6 changed files with 86 additions and 23 deletions

View file

@ -20,10 +20,25 @@
* ABOUT-NLS: New upstream version. * ABOUT-NLS: New upstream version.
2007-01-23 Kevin Ryde <user42@zip.com.au>
* configure.in (isinf, isnan): Use a volatile global to stop gcc
optimizing out the test. In particular this fixes solaris where there
isn't an isinf or isnan (though gcc still optimizes as if there is).
Reported by Hugh Sasse.
(AC_C_VOLATILE): New.
2007-01-22 Han-Wen Nienhuys <hanwen@lilypond.org> 2007-01-22 Han-Wen Nienhuys <hanwen@lilypond.org>
* .gitignore: new file. Make using git easier. * .gitignore: new file. Make using git easier.
2007-01-22 Kevin Ryde <user42@zip.com.au>
* configure.in (AC_INIT): Don't use "echo -n", it's not portable and
in particular fails on solaris (resulting in literal "-n"s going into
the output, making the resulting configure unusable). Reported by
Hugh Sasse.
2007-01-03 Han-Wen Nienhuys <hanwen@lilypond.org> 2007-01-03 Han-Wen Nienhuys <hanwen@lilypond.org>
* autogen.sh (Module): only try to run render-bugs if it exists. * autogen.sh (Module): only try to run render-bugs if it exists.

3
NEWS
View file

@ -34,6 +34,7 @@ Changes in 1.8.2 (since 1.8.1):
* New procedures (see the manual for details) * New procedures (see the manual for details)
** set-program-arguments ** set-program-arguments
** make-vtable
* Bugs fixed * Bugs fixed
@ -78,6 +79,8 @@ Changes in 1.8.1 (since 1.8.0):
** Build problems have been fixed on MacOS, SunOS, and QNX. ** Build problems have been fixed on MacOS, SunOS, and QNX.
** `strftime' fix sign of %z timezone offset.
** A one-dimensional array can now be 'equal?' to a vector. ** A one-dimensional array can now be 'equal?' to a vector.
** Structures, records, and SRFI-9 records can now be compared with `equal?'. ** Structures, records, and SRFI-9 records can now be compared with `equal?'.

View file

@ -4,7 +4,7 @@ dnl
define(GUILE_CONFIGURE_COPYRIGHT,[[ define(GUILE_CONFIGURE_COPYRIGHT,[[
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GUILE This file is part of GUILE
@ -27,8 +27,15 @@ Boston, MA 02110-1301, USA.
AC_PREREQ(2.53) AC_PREREQ(2.53)
AC_INIT(m4_esyscmd(. ./GUILE-VERSION && echo -n ${PACKAGE}), dnl `patsubst' here deletes the newline which "echo" prints. We can't use
m4_esyscmd(. ./GUILE-VERSION && echo -n ${GUILE_VERSION}), dnl "echo -n" since -n is not portable (see autoconf manual "Limitations of
dnl Builtins"), in particular on solaris it results in a literal "-n" in
dnl the output.
dnl
AC_INIT(patsubst(m4_esyscmd(. ./GUILE-VERSION && echo ${PACKAGE}),[
]),
patsubst(m4_esyscmd(. ./GUILE-VERSION && echo ${GUILE_VERSION}),[
]),
[bug-guile@gnu.org]) [bug-guile@gnu.org])
AC_CONFIG_AUX_DIR([.]) AC_CONFIG_AUX_DIR([.])
AC_CONFIG_SRCDIR(GUILE-VERSION) AC_CONFIG_SRCDIR(GUILE-VERSION)
@ -218,6 +225,9 @@ AC_CHECK_LIB(uca, __uc_get_ar_bsp)
AC_C_CONST AC_C_CONST
# "volatile" is used in a couple of tests below.
AC_C_VOLATILE
AC_C_INLINE AC_C_INLINE
if test "$ac_cv_c_inline" != no; then if test "$ac_cv_c_inline" != no; then
SCM_I_GSC_C_INLINE="\"${ac_cv_c_inline}\"" SCM_I_GSC_C_INLINE="\"${ac_cv_c_inline}\""
@ -957,17 +967,19 @@ AC_CHECK_FUNCS(asinh acosh atanh copysign finite sincos trunc)
# use <math.h> so doesn't detect on macro-only systems like HP-UX. # use <math.h> so doesn't detect on macro-only systems like HP-UX.
# #
AC_MSG_CHECKING([for isinf]) AC_MSG_CHECKING([for isinf])
AC_LINK_IFELSE( AC_LINK_IFELSE(AC_LANG_SOURCE(
[#include <math.h> [[#include <math.h>
int main () { return (isinf(0.0) != 0); }], volatile double x = 0.0;
int main () { return (isinf(x) != 0); }]]),
[AC_MSG_RESULT([yes]) [AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_ISINF, 1, AC_DEFINE(HAVE_ISINF, 1,
[Define to 1 if you have the `isinf' macro or function.])], [Define to 1 if you have the `isinf' macro or function.])],
[AC_MSG_RESULT([no])]) [AC_MSG_RESULT([no])])
AC_MSG_CHECKING([for isnan]) AC_MSG_CHECKING([for isnan])
AC_LINK_IFELSE( AC_LINK_IFELSE(AC_LANG_SOURCE(
[#include <math.h> [[#include <math.h>
int main () { return (isnan(0.0) != 0); }], volatile double x = 0.0;
int main () { return (isnan(x) != 0); }]]),
[AC_MSG_RESULT([yes]) [AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_ISNAN, 1, AC_DEFINE(HAVE_ISNAN, 1,
[Define to 1 if you have the `isnan' macro or function.])], [Define to 1 if you have the `isnan' macro or function.])],

View file

@ -1,3 +1,26 @@
2007-03-08 Kevin Ryde <user42@zip.com.au>
* struct.c, struct.h (scm_make_vtable): New function, providing
`make-vtable'.
* stacks.c (scm_init_stacks): Use it.
2007-03-06 Kevin Ryde <user42@zip.com.au>
* struct.c (scm_make_struct): Check for R,W,O at end of layout when
allocating a tail array. If there's no such then those tail fields
are uninitialized and garbage SCMs there can cause a segv if printed
(after fetching with struct-ref).
2007-02-22 Kevin Ryde <user42@zip.com.au>
* scmsigs.c (scm_sleep): In docstring, cross refence usleep.
(scm_usleep): Update docstring per manual, cross reference sleep.
* struct.c (scm_make_struct): Move SCM_CRITICAL_SECTION_END up so that
scm_struct_init is not within that section. scm_struct_init can
thrown an error, which within a critical section results in an
abort().
2007-02-19 Neil Jerram <neil@ossau.uklinux.net> 2007-02-19 Neil Jerram <neil@ossau.uklinux.net>
* Makefile.am (noinst_HEADERS): Add private-options.h, so that it * Makefile.am (noinst_HEADERS): Add private-options.h, so that it
@ -39,10 +62,24 @@
acquiring the locale mutex. acquiring the locale mutex.
(scm_init_posix): No longer initialize SCM_I_LOCALE_MUTEX here. (scm_init_posix): No longer initialize SCM_I_LOCALE_MUTEX here.
2007-01-27 Kevin Ryde <user42@zip.com.au>
* ports.c (scm_port_line, scm_set_port_line_x), read.c
(scm_i_input_error, scm_lreadr, scm_lreadrecparen): Corrections to
port line number type, should be "long" not "int", as per line_number
field of scm_t_port. (Makes a difference only on 64-bit systems, and
only then for a linenum above 2Gig.)
2007-01-25 Han-Wen Nienhuys <hanwen@lilypond.org> 2007-01-25 Han-Wen Nienhuys <hanwen@lilypond.org>
* vector.c: remove comment as per kryde's request. * vector.c: remove comment as per kryde's request.
2007-01-25 Kevin Ryde <user42@zip.com.au>
* sort.c (scm_stable_sort): Return empty list for input empty list, as
done in guile 1.6 and as always done by plain `sort'. Was falling
through to SCM_WRONG_TYPE_ARG. Reported by Ales Hvezda.
2007-01-22 Han-Wen Nienhuys <hanwen@lilypond.org> 2007-01-22 Han-Wen Nienhuys <hanwen@lilypond.org>
* vectors.c (s_scm_vector_move_right_x): complain about naming. * vectors.c (s_scm_vector_move_right_x): complain about naming.

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995,1996,1997,1999,2000,2001,2003, 2004, 2006 Free Software /* Copyright (C) 1995,1996,1997,1999,2000,2001,2003, 2004, 2006, 2007 Free Software
* Foundation, Inc. * Foundation, Inc.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
@ -91,7 +91,7 @@ scm_i_input_error (char const *function,
scm_simple_format (string_port, scm_simple_format (string_port,
scm_from_locale_string ("~A:~S:~S: ~A"), scm_from_locale_string ("~A:~S:~S: ~A"),
scm_list_4 (fn, scm_list_4 (fn,
scm_from_int (SCM_LINUM (port) + 1), scm_from_long (SCM_LINUM (port) + 1),
scm_from_int (SCM_COL (port) + 1), scm_from_int (SCM_COL (port) + 1),
scm_from_locale_string (message))); scm_from_locale_string (message)));
@ -407,7 +407,7 @@ scm_lreadr (SCM *tok_buf, SCM port, SCM *copy)
SCM sharp = scm_get_hash_procedure (c); SCM sharp = scm_get_hash_procedure (c);
if (scm_is_true (sharp)) if (scm_is_true (sharp))
{ {
int line = SCM_LINUM (port); long line = SCM_LINUM (port);
int column = SCM_COL (port) - 2; int column = SCM_COL (port) - 2;
SCM got; SCM got;
@ -533,7 +533,7 @@ scm_lreadr (SCM *tok_buf, SCM port, SCM *copy)
if (scm_is_true (sharp)) if (scm_is_true (sharp))
{ {
int line = SCM_LINUM (port); long line = SCM_LINUM (port);
int column = SCM_COL (port) - 2; int column = SCM_COL (port) - 2;
SCM got; SCM got;
@ -823,7 +823,7 @@ scm_lreadrecparen (SCM *tok_buf, SCM port, char *name, SCM *copy)
register SCM tl, tl2 = SCM_EOL; register SCM tl, tl2 = SCM_EOL;
SCM ans, ans2 = SCM_EOL; SCM ans, ans2 = SCM_EOL;
/* Need to capture line and column numbers here. */ /* Need to capture line and column numbers here. */
int line = SCM_LINUM (port); long line = SCM_LINUM (port);
int column = SCM_COL (port) - 1; int column = SCM_COL (port) - 1;
c = scm_flush_ws (port, name); c = scm_flush_ws (port, name);

View file

@ -1,5 +1,5 @@
/* Representation of stack frame debug information /* Representation of stack frame debug information
* Copyright (C) 1996,1997,2000,2001, 2006 Free Software Foundation * Copyright (C) 1996,1997,2000,2001, 2006, 2007 Free Software Foundation
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -741,14 +741,10 @@ SCM_DEFINE (scm_frame_overflow_p, "frame-overflow?", 1, 0, 0,
void void
scm_init_stacks () scm_init_stacks ()
{ {
SCM vtable; scm_stack_type =
SCM stack_layout scm_permanent_object
= scm_make_struct_layout (scm_from_locale_string (SCM_STACK_LAYOUT)); (scm_make_vtable (scm_from_locale_string (SCM_STACK_LAYOUT),
vtable = scm_make_vtable_vtable (scm_nullstr, SCM_INUM0, SCM_EOL); SCM_UNDEFINED));
scm_stack_type
= scm_permanent_object (scm_make_struct (vtable, SCM_INUM0,
scm_cons (stack_layout,
SCM_EOL)));
scm_set_struct_vtable_name_x (scm_stack_type, scm_set_struct_vtable_name_x (scm_stack_type,
scm_from_locale_symbol ("stack")); scm_from_locale_symbol ("stack"));
#include "libguile/stacks.x" #include "libguile/stacks.x"