1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-20 02:30:23 +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

@ -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>
* Makefile.am (noinst_HEADERS): Add private-options.h, so that it
@ -39,10 +62,24 @@
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.

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.
*
* 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_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)));
@ -407,7 +407,7 @@ scm_lreadr (SCM *tok_buf, SCM port, SCM *copy)
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;
@ -533,7 +533,7 @@ scm_lreadr (SCM *tok_buf, SCM port, SCM *copy)
if (scm_is_true (sharp))
{
int line = SCM_LINUM (port);
long line = SCM_LINUM (port);
int column = SCM_COL (port) - 2;
SCM got;
@ -823,7 +823,7 @@ scm_lreadrecparen (SCM *tok_buf, SCM port, char *name, SCM *copy)
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);

View file

@ -1,5 +1,5 @@
/* 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
@ -741,14 +741,10 @@ SCM_DEFINE (scm_frame_overflow_p, "frame-overflow?", 1, 0, 0,
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"