* 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>
* .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>
* autogen.sh (Module): only try to run render-bugs if it exists.
* New procedures (see the manual for details)
** set-program-arguments
+** make-vtable
* Bugs fixed
** 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.
** Structures, records, and SRFI-9 records can now be compared with `equal?'.
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
AC_PREREQ(2.53)
-AC_INIT(m4_esyscmd(. ./GUILE-VERSION && echo -n ${PACKAGE}),
- m4_esyscmd(. ./GUILE-VERSION && echo -n ${GUILE_VERSION}),
+dnl `patsubst' here deletes the newline which "echo" prints. We can't use
+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])
AC_CONFIG_AUX_DIR([.])
AC_CONFIG_SRCDIR(GUILE-VERSION)
AC_C_CONST
+# "volatile" is used in a couple of tests below.
+AC_C_VOLATILE
+
AC_C_INLINE
if test "$ac_cv_c_inline" != no; then
SCM_I_GSC_C_INLINE="\"${ac_cv_c_inline}\""
# use <math.h> so doesn't detect on macro-only systems like HP-UX.
#
AC_MSG_CHECKING([for isinf])
-AC_LINK_IFELSE(
-[#include <math.h>
-int main () { return (isinf(0.0) != 0); }],
+AC_LINK_IFELSE(AC_LANG_SOURCE(
+[[#include <math.h>
+volatile double x = 0.0;
+int main () { return (isinf(x) != 0); }]]),
[AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_ISINF, 1,
[Define to 1 if you have the `isinf' macro or function.])],
[AC_MSG_RESULT([no])])
AC_MSG_CHECKING([for isnan])
-AC_LINK_IFELSE(
-[#include <math.h>
-int main () { return (isnan(0.0) != 0); }],
+AC_LINK_IFELSE(AC_LANG_SOURCE(
+[[#include <math.h>
+volatile double x = 0.0;
+int main () { return (isnan(x) != 0); }]]),
[AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_ISNAN, 1,
[Define to 1 if you have the `isnan' macro or function.])],
+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>
* Makefile.am (noinst_HEADERS): Add private-options.h, so that it
acquiring the locale mutex.
(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>
* 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>
* vectors.c (s_scm_vector_move_right_x): complain about naming.
-/* 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.
*
* This library is free software; you can redistribute it and/or
scm_simple_format (string_port,
scm_from_locale_string ("~A:~S:~S: ~A"),
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_locale_string (message)));
SCM sharp = scm_get_hash_procedure (c);
if (scm_is_true (sharp))
{
- int line = SCM_LINUM (port);
+ long line = SCM_LINUM (port);
int column = SCM_COL (port) - 2;
SCM got;
if (scm_is_true (sharp))
{
- int line = SCM_LINUM (port);
+ long line = SCM_LINUM (port);
int column = SCM_COL (port) - 2;
SCM got;
register SCM tl, tl2 = SCM_EOL;
SCM ans, ans2 = SCM_EOL;
/* Need to capture line and column numbers here. */
- int line = SCM_LINUM (port);
+ long line = SCM_LINUM (port);
int column = SCM_COL (port) - 1;
c = scm_flush_ws (port, name);
/* 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
* modify it under the terms of the GNU Lesser General Public
void
scm_init_stacks ()
{
- SCM vtable;
- SCM stack_layout
- = scm_make_struct_layout (scm_from_locale_string (SCM_STACK_LAYOUT));
- vtable = scm_make_vtable_vtable (scm_nullstr, SCM_INUM0, SCM_EOL);
- scm_stack_type
- = scm_permanent_object (scm_make_struct (vtable, SCM_INUM0,
- scm_cons (stack_layout,
- SCM_EOL)));
+ scm_stack_type =
+ scm_permanent_object
+ (scm_make_vtable (scm_from_locale_string (SCM_STACK_LAYOUT),
+ SCM_UNDEFINED));
scm_set_struct_vtable_name_x (scm_stack_type,
scm_from_locale_symbol ("stack"));
#include "libguile/stacks.x"