1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

Changes from arch/CVS synchronization

This commit is contained in:
Ludovic Courtès 2007-01-19 09:11:43 +00:00
parent 0c6f7f15c6
commit 09c9ec0533
5 changed files with 118 additions and 62 deletions

View file

@ -1,3 +1,10 @@
2007-01-19 Ludovic Courtès <ludovic.courtes@laas.fr>
* struct.c (scm_i_struct_equalp): Skip comparison if both FIELD1
is equal to S1 and FIELD2 is equal to S2. This avoids infinite
recursion when comparing `s' fields, as the REQUIRED_VTABLE_FIELDS
added by `make-vtable-vtable'. Reported by Marco Maggi.
2007-01-16 Kevin Ryde <user42@zip.com.au> 2007-01-16 Kevin Ryde <user42@zip.com.au>
* feature.c, feature.h (scm_set_program_arguments_scm): New function, * feature.c, feature.h (scm_set_program_arguments_scm): New function,
@ -104,13 +111,13 @@
* posix.c (scm_crypt): Check for NULL return from crypt(), which the * posix.c (scm_crypt): Check for NULL return from crypt(), which the
linux man page says is a possibility. linux man page says is a possibility.
2006-12-12 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-12-12 Ludovic Courtès <ludovic.courtes@laas.fr>
* libguile/unif.c (read_decimal_integer): Let RESP be SIGN * RES * libguile/unif.c (read_decimal_integer): Let RESP be SIGN * RES
instead of RES (reported by Gyula Szavai). This allows the use of instead of RES (reported by Szavai Gyula). This allows the use of
negative lower bounds. negative lower bounds.
(scm_i_read_array): Make sure LEN is non-negative (reported by (scm_i_read_array): Make sure LEN is non-negative (reported by
Gyula Szavai). Szavai Gyula).
(scm_array_in_bounds_p): Iterate over S instead of always (scm_array_in_bounds_p): Iterate over S instead of always
comparing indices with the bounds of S[0]. This fixes comparing indices with the bounds of S[0]. This fixes
@ -131,7 +138,7 @@
Makefile stopped it having any effect. Use just $(AWK), which can be Makefile stopped it having any effect. Use just $(AWK), which can be
overridden with "make AWK=xxx" in the usual way if desired. overridden with "make AWK=xxx" in the usual way if desired.
2006-11-29 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-11-29 Ludovic Courtès <ludovic.courtes@laas.fr>
* libguile/vectors.c (scm_vector_to_list): Fixed list * libguile/vectors.c (scm_vector_to_list): Fixed list
construction: elements were not copied when INC is zero (see construction: elements were not copied when INC is zero (see
@ -185,7 +192,7 @@
* numbers.c, numbers.h (scm_log, scm_log10, scm_exp, scm_sqrt): New * numbers.c, numbers.h (scm_log, scm_log10, scm_exp, scm_sqrt): New
functions. functions.
2006-09-20 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-09-20 Ludovic Courtès <ludovic.courtes@laas.fr>
* srfi-14.c: Include <config.h>. Define `_GNU_SOURCE'. * srfi-14.c: Include <config.h>. Define `_GNU_SOURCE'.
(make_predset, define_predset, make_strset, define_strset, false, (make_predset, define_predset, make_strset, define_strset, false,
@ -261,7 +268,7 @@
arrangements and avoid an illegal instruction during arrangements and avoid an illegal instruction during
call-with-current-continuation. call-with-current-continuation.
2006-07-12 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-07-12 Ludovic Courtès <ludovic.courtes@laas.fr>
* numbers.c (guile_ieee_init): Use regular ANSI C casts rather * numbers.c (guile_ieee_init): Use regular ANSI C casts rather
than C++-style `X_CAST ()'. Patch posted by by Mike Gran. than C++-style `X_CAST ()'. Patch posted by by Mike Gran.
@ -285,7 +292,7 @@
(scm_strptime): Use tm_gmtoff from the strptime result when that field (scm_strptime): Use tm_gmtoff from the strptime result when that field
exists, it's set by glibc strptime "%s". exists, it's set by glibc strptime "%s".
2006-06-13 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-06-13 Ludovic Courtès <ludovic.courtes@laas.fr>
* eq.c: Include "struct.h", "goops.h" and "objects.h". * eq.c: Include "struct.h", "goops.h" and "objects.h".
(scm_equal_p): Invoke `scm_i_struct_equalp ()' on structures that (scm_equal_p): Invoke `scm_i_struct_equalp ()' on structures that
@ -423,7 +430,7 @@
2006-04-06 Kevin Ryde <user42@zip.com.au> 2006-04-06 Kevin Ryde <user42@zip.com.au>
* fports.c (scm_setvbuf): Fix for not _IOLBF, clear SCM_BUFLINE * fports.c (scm_setvbuf): Fix for not _IOLBF, clear SCM_BUFLINE
instead of toggling it. Reported by Ludovic Courtès. instead of toggling it. Reported by Ludovic Courtès.
2006-03-26 Marius Vollmer <mvo@zagadka.de> 2006-03-26 Marius Vollmer <mvo@zagadka.de>
@ -435,7 +442,7 @@
* gc_os_dep.c (scm_get_stack_base): Abort when the machine type is * gc_os_dep.c (scm_get_stack_base): Abort when the machine type is
unknown instead of returning NULL. unknown instead of returning NULL.
2006-03-21 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-03-21 Ludovic Courtès <ludovic.courtes@laas.fr>
* numbers.c (scm_i_mem2number): Renamed to * numbers.c (scm_i_mem2number): Renamed to
scm_c_locale_stringn_to_number. scm_c_locale_stringn_to_number.
@ -494,7 +501,7 @@
scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and
scm_t_int32. scm_t_int32.
2006-02-14 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-02-14 Ludovic Courtès <ludovic.courtes@laas.fr>
* strings.c (scm_i_take_stringbufn): Register LEN+1 bytes instead of * strings.c (scm_i_take_stringbufn): Register LEN+1 bytes instead of
LEN. Without this, too much collectable memory gets unregistered, LEN. Without this, too much collectable memory gets unregistered,
@ -612,7 +619,7 @@
* inline.h, pairs.c (scm_is_pair): Moved scm_is_pair from pairs.c * inline.h, pairs.c (scm_is_pair): Moved scm_is_pair from pairs.c
to inline.h to make it inline. to inline.h to make it inline.
2005-12-19 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-12-19 Ludovic Courtès <ludovic.courtes@laas.fr>
* strings.c (scm_i_take_stringbufn): New. * strings.c (scm_i_take_stringbufn): New.
(scm_i_c_take_symbol): New. (scm_i_c_take_symbol): New.
@ -645,7 +652,7 @@
2005-12-29 Neil Jerram <neil@ossau.uklinux.net> 2005-12-29 Neil Jerram <neil@ossau.uklinux.net>
* fluids.c (next_fluid_num): [From Ludovic Courtès:] Don't trigger * fluids.c (next_fluid_num): [From Ludovic Courtès:] Don't trigger
the GC when allocated_fluids_len is zero. the GC when allocated_fluids_len is zero.
2005-12-14 Neil Jerram <neil@ossau.uklinux.net> 2005-12-14 Neil Jerram <neil@ossau.uklinux.net>
@ -677,7 +684,7 @@
* srfi-4.h, srfi-4.c, srfi-4.i.c (take_uvec): Make BASE pointer * srfi-4.h, srfi-4.c, srfi-4.i.c (take_uvec): Make BASE pointer
non-const. non-const.
(scm_take_u8vector, etc): Likewise. Thanks to Ludovic Courtès! (scm_take_u8vector, etc): Likewise. Thanks to Ludovic Courtès!
* threads.h, threads.c (scm_t_guile_ticket, scm_leave_guile, * threads.h, threads.c (scm_t_guile_ticket, scm_leave_guile,
scm_enter_guile): Removed from public API. See comment at scm_enter_guile): Removed from public API. See comment at
@ -692,7 +699,7 @@
* eval.c (scm_m_cond): Recognize SRFI 61 cond syntax. * eval.c (scm_m_cond): Recognize SRFI 61 cond syntax.
(CEVAL): Evaluate SRFI 61 cond clauses. (CEVAL): Evaluate SRFI 61 cond clauses.
2005-12-06 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-12-06 Ludovic Courtès <ludovic.courtes@laas.fr>
* gc-card.c (scm_i_card_statistics): Return if BITVEC is NULL. * gc-card.c (scm_i_card_statistics): Return if BITVEC is NULL.
This was typically hit when running `gc-live-object-stats' right This was typically hit when running `gc-live-object-stats' right
@ -706,7 +713,7 @@
2005-11-26 Kevin Ryde <user42@zip.com.au> 2005-11-26 Kevin Ryde <user42@zip.com.au>
* gc-mark.c (scm_mark_all): Change C++ comment to C comment. Reported * gc-mark.c (scm_mark_all): Change C++ comment to C comment. Reported
by Ludovic Courtès. by Ludovic Courtès.
* list.c (list): Should be "primitive" in SCM_SNARF_DOCS, not * list.c (list): Should be "primitive" in SCM_SNARF_DOCS, not
"register". "register".
@ -718,7 +725,7 @@
* socket.c (scm_fill_sockaddr): Remove SCM_C_INLINE_KEYWORD, this is * socket.c (scm_fill_sockaddr): Remove SCM_C_INLINE_KEYWORD, this is
much too big to want to inline. much too big to want to inline.
2005-11-17 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-11-17 Ludovic Courtès <ludovic.courtes@laas.fr>
* print.c (EXIT_NESTED_DATA): Before popping from the stack, reset * print.c (EXIT_NESTED_DATA): Before popping from the stack, reset
the value at its top. This fixes a reference leak. the value at its top. This fixes a reference leak.
@ -726,14 +733,14 @@
`PSTATE_STACK_SET ()' in order to avoid undesired potential side `PSTATE_STACK_SET ()' in order to avoid undesired potential side
effects. effects.
2005-11-12 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-11-12 Ludovic Courtès <ludovic.courtes@laas.fr>
* gc.c (scm_weak_vectors): Removed. * gc.c (scm_weak_vectors): Removed.
2005-11-12 Kevin Ryde <user42@zip.com.au> 2005-11-12 Kevin Ryde <user42@zip.com.au>
* socket.c (scm_setsockopt): Missing @defvar in docstring. Reported * socket.c (scm_setsockopt): Missing @defvar in docstring. Reported
by Ludovic Courtès. by Ludovic Courtès.
2005-11-07 Marius Vollmer <mvo@zagadka.de> 2005-11-07 Marius Vollmer <mvo@zagadka.de>
@ -755,7 +762,7 @@
* debug.h (SCM_CHEAPTRAPS_P): Removed. * debug.h (SCM_CHEAPTRAPS_P): Removed.
2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr>
* socket.c (scm_fill_sockaddr): No need to check NULL from scm_malloc. * socket.c (scm_fill_sockaddr): No need to check NULL from scm_malloc.
(scm_connect, scm_bind, scm_sendto): Accept sockaddr object. (scm_connect, scm_bind, scm_sendto): Accept sockaddr object.
@ -1063,7 +1070,7 @@
2005-05-11 Neil Jerram <neil@ossau.uklinux.net> 2005-05-11 Neil Jerram <neil@ossau.uklinux.net>
Fix C99isms reported by Ludovic Courtès: Fix C99isms reported by Ludovic Courtès:
* threads.c (s_scm_lock_mutex): Don't declare msg in middle of * threads.c (s_scm_lock_mutex): Don't declare msg in middle of
code. code.
@ -1178,7 +1185,7 @@
2005-03-18 Kevin Ryde <user42@zip.com.au> 2005-03-18 Kevin Ryde <user42@zip.com.au>
* arbiters.c (FETCH_STORE) [generic C]: Should be * arbiters.c (FETCH_STORE) [generic C]: Should be
scm_i_scm_pthread_mutex_lock/unlock now. Reported by Ludovic Courtès. scm_i_scm_pthread_mutex_lock/unlock now. Reported by Ludovic Courtès.
2005-03-13 Kevin Ryde <user42@zip.com.au> 2005-03-13 Kevin Ryde <user42@zip.com.au>
@ -2324,7 +2331,7 @@
2004-11-02 Marius Vollmer <mvo@zagadka.de> 2004-11-02 Marius Vollmer <mvo@zagadka.de>
Mac OS X and OpenBSD compatibility patches from Andreas Vögele. Mac OS X and OpenBSD compatibility patches from Andreas Vögele.
Thanks! Thanks!
* backtrace.c (scm_display_backtrace_with_highlights): Join the * backtrace.c (scm_display_backtrace_with_highlights): Join the
@ -2768,7 +2775,7 @@
* numbers.h, numbers.c: Include <gmp.h> in numbers.h, not in * numbers.h, numbers.c: Include <gmp.h> in numbers.h, not in
numbers.c. numbers.c.
(scm_to_mpz, scm_from_mpz): New. (scm_to_mpz, scm_from_mpz): New.
Thanks to Andreas Vögele! Thanks to Andreas Vögele!
* read.c (skip_scsh_block_comment): Recognize "!#" everywhere, not * read.c (skip_scsh_block_comment): Recognize "!#" everywhere, not
just on a line of its own. just on a line of its own.
@ -2777,7 +2784,7 @@
scm_string_tabulate, string_upcase_x, string_down_case_x, scm_string_tabulate, string_upcase_x, string_down_case_x,
string_titlecase_x, string_reverse_x, scm_string_tokenize): Use string_titlecase_x, string_reverse_x, scm_string_tokenize): Use
size_t instead of int for indices into strings. Make sure that no size_t instead of int for indices into strings. Make sure that no
over- or underflow occurs. Thanks to Andreas Vögele! over- or underflow occurs. Thanks to Andreas Vögele!
(scm_xsubstring, scm_string_xcopy_x): Use ints for 'extended' (scm_xsubstring, scm_string_xcopy_x): Use ints for 'extended'
indices, which can also be negative. indices, which can also be negative.
@ -2799,7 +2806,7 @@
* filesys.c, stime.c (_POSIX_C_SOURCE): Use this only on hpux, it * filesys.c, stime.c (_POSIX_C_SOURCE): Use this only on hpux, it
causes too many problems elsewhere (glibc, freebsd, mingw). Reported causes too many problems elsewhere (glibc, freebsd, mingw). Reported
by Andreas Vögele. by Andreas Vögele.
2004-09-08 Marius Vollmer <marius.vollmer@uni-dortmund.de> 2004-09-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
@ -3634,7 +3641,7 @@
* gc_os_dep.c: update ifdefery for macosx. * gc_os_dep.c: update ifdefery for macosx.
(scm_get_stack_base): separate result initialization from (scm_get_stack_base): separate result initialization from
declaration to slience warnings with macosx and hp-ux using gcc declaration to slience warnings with macosx and hp-ux using gcc
3.3. Thanks to Andreas Vögele. 3.3. Thanks to Andreas Vögele.
2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl> 2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
@ -3844,10 +3851,10 @@
2004-05-02 Kevin Ryde <user42@zip.com.au> 2004-05-02 Kevin Ryde <user42@zip.com.au>
* eval.c (scm_macroexp): Add prototype, since it's not in eval.h under * eval.c (scm_macroexp): Add prototype, since it's not in eval.h under
--disable-deprecated. Reported by Andreas Vögele. --disable-deprecated. Reported by Andreas Vögele.
* filesys.c (_POSIX_C_SOURCE): Define to 199506L to get readdir_r (in * filesys.c (_POSIX_C_SOURCE): Define to 199506L to get readdir_r (in
particular on HP-UX). Reported by Andreas Vögele. particular on HP-UX). Reported by Andreas Vögele.
* list.c (varargs.h): Remove, leave just stdarg.h which is all the * list.c (varargs.h): Remove, leave just stdarg.h which is all the
code has support for. Fixes building with AIX cc, which is ansi but code has support for. Fixes building with AIX cc, which is ansi but
@ -3858,14 +3865,14 @@
2004-05-01 Kevin Ryde <user42@zip.com.au> 2004-05-01 Kevin Ryde <user42@zip.com.au>
* continuations.c (scm_dynthrow): Use >= instead of SCM_PTR_GE which * continuations.c (scm_dynthrow): Use >= instead of SCM_PTR_GE which
is now gone. Reported by Andreas Vögele. is now gone. Reported by Andreas Vögele.
2004-04-28 Kevin Ryde <user42@zip.com.au> 2004-04-28 Kevin Ryde <user42@zip.com.au>
* backtrace.c (display_frame_expr), numbers.c (XDIGIT2UINT, * backtrace.c (display_frame_expr), numbers.c (XDIGIT2UINT,
mem2uinteger, mem2decimal_from_point, mem2ureal): Cast char to int for mem2uinteger, mem2decimal_from_point, mem2ureal): Cast char to int for
ctype.h tests, to avoid warnings from gcc on HP-UX about char as array ctype.h tests, to avoid warnings from gcc on HP-UX about char as array
subscript. Reported by Andreas Vögele. subscript. Reported by Andreas Vögele.
Also cast through unsigned char to avoid passing negatives to those Also cast through unsigned char to avoid passing negatives to those
macros if input contains 8-bit values. macros if input contains 8-bit values.
@ -3879,17 +3886,17 @@
* numbers.c (scm_bit_extract): Use min instead of MIN. * numbers.c (scm_bit_extract): Use min instead of MIN.
(MIN): Remove, this conflicts with similar macro defined by limits.h (MIN): Remove, this conflicts with similar macro defined by limits.h
on HP-UX. Reported by Andreas Vögele. on HP-UX. Reported by Andreas Vögele.
* stime.c (_POSIX_C_SOURCE): Define to 199506L to get gmtime_r (in * stime.c (_POSIX_C_SOURCE): Define to 199506L to get gmtime_r (in
particular on HP-UX). Reported by Andreas Vögele. particular on HP-UX). Reported by Andreas Vögele.
* threads.c (scm_threads_mark_stacks): Correction sizet -> size_t. * threads.c (scm_threads_mark_stacks): Correction sizet -> size_t.
Reported by Andreas Vögele. Reported by Andreas Vögele.
* threads-plugin.h (SCM_MUTEX_MAXSIZE): Increase to 25*sizeof(long), * threads-plugin.h (SCM_MUTEX_MAXSIZE): Increase to 25*sizeof(long),
for the benefit of hpux11 where pthread_mutex_t is 88 bytes. Reported for the benefit of hpux11 where pthread_mutex_t is 88 bytes. Reported
by Andreas Vögele. by Andreas Vögele.
2004-04-22 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> 2004-04-22 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
@ -7742,7 +7749,7 @@
2002-08-26 Marius Vollmer <mvo@zagadka.ping.de> 2002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
* script.c (scm_compile_shell_switches): Added "2002" to Copyright * script.c (scm_compile_shell_switches): Added "2002" to Copyright
years. Thanks to Martin Grabmüller! years. Thanks to Martin Grabmüller!
2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl> 2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
@ -9658,7 +9665,7 @@
* deprecation.c (scm_include_deprecated_features): Simplified. * deprecation.c (scm_include_deprecated_features): Simplified.
* eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
`SCM_IMP' instead of `!SCM_CELLP´. `SCM_IMP' instead of `!SCM_CELLP´.
* eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests. * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
Extract side-effecting operations from macros. Extract side-effecting operations from macros.
@ -10699,7 +10706,7 @@
2001-06-09 Marius Vollmer <mvo@zagadka.ping.de> 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
* ports.c (scm_lfwrite): Maintain columnd and row count in port. * ports.c (scm_lfwrite): Maintain columnd and row count in port.
Thanks to Matthias Köppe! Thanks to Matthias Köppe!
2001-06-08 Michael Livshin <mlivshin@bigfoot.com> 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
@ -10707,7 +10714,7 @@
space-happy C preprocessors. space-happy C preprocessors.
* filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
inside cookies. thanks to Matthias Köppe! inside cookies. thanks to Matthias Köppe!
2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de> 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
@ -11282,7 +11289,7 @@
SCM_VARIABLE_INIT since that it what it used to be. SCM_VARIABLE_INIT since that it what it used to be.
* deprecation.c (scm_include_deprecated_features): Make docstring * deprecation.c (scm_include_deprecated_features): Make docstring
ANSIsh. Thanks to Matthias Köppe! ANSIsh. Thanks to Matthias Köppe!
2001-05-21 Marius Vollmer <mvo@zagadka.ping.de> 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
@ -11636,7 +11643,7 @@
2001-05-15 Marius Vollmer <mvo@zagadka.ping.de> 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
* values.c (print_values): Print as a unreadable object, not as * values.c (print_values): Print as a unreadable object, not as
multiple lines. Thanks to Matthias Köppe! multiple lines. Thanks to Matthias Köppe!
2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de> 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
@ -11668,7 +11675,7 @@
2001-05-09 Michael Livshin <mlivshin@bigfoot.com> 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
from Matthias Köppe (thanks!): from Matthias Köppe (thanks!):
* ports.c (scm_c_read): pointer arithmetic on void pointers isn't * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
portable. portable.
@ -13525,7 +13532,7 @@
2001-01-11 Michael Livshin <mlivshin@bigfoot.com> 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
from Matthias Köppe: from Matthias Köppe:
* objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
casts its result, so doesn't yield an lvalue per ANSI C. casts its result, so doesn't yield an lvalue per ANSI C.
@ -13594,3 +13601,7 @@
(write_all): new helper procedure. (write_all): new helper procedure.
The ChangeLog continues in the file: "ChangeLog-2000" The ChangeLog continues in the file: "ChangeLog-2000"
;; Local Variables:
;; coding: utf-8
;; End:

View file

@ -564,10 +564,15 @@ scm_i_struct_equalp (SCM s1, SCM s2)
field1 = scm_struct_ref (s1, s_field_num); field1 = scm_struct_ref (s1, s_field_num);
field2 = scm_struct_ref (s2, s_field_num); field2 = scm_struct_ref (s2, s_field_num);
if (scm_is_false (scm_equal_p (field1, field2))) /* Self-referencing fields (type `s') must be skipped to avoid infinite
return SCM_BOOL_F; recursion. */
if (!(scm_is_eq (field1, s1) && (scm_is_eq (field2, s2))))
if (scm_is_false (scm_equal_p (field1, field2)))
return SCM_BOOL_F;
} }
/* FIXME: Tail elements should be tested for equality. */
return SCM_BOOL_T; return SCM_BOOL_T;
} }
#undef FUNC_NAME #undef FUNC_NAME

View file

@ -1,3 +1,11 @@
2007-01-19 Ludovic Courtès <ludovic.courtes@laas.fr>
* tests/eval.test (values): New test prefix. Values are structs,
and `equal?' on structs with `s' fields used to yield infinite
recursion.
* tests/structs.test (equal?): New test prefix. Added tests that
used to show the infinite recursion problem.
2007-01-16 Kevin Ryde <user42@zip.com.au> 2007-01-16 Kevin Ryde <user42@zip.com.au>
* tests/regexp.test (regexp-exec): Further tests, in particular #\nul * tests/regexp.test (regexp-exec): Further tests, in particular #\nul
@ -11,7 +19,7 @@
* tests/numbers.test (*): Exercise multiply by exact 0 giving exact 0. * tests/numbers.test (*): Exercise multiply by exact 0 giving exact 0.
2006-12-12 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-12-12 Ludovic Courtès <ludovic.courtes@laas.fr>
* tests/unif.test (syntax): New test prefix. Check syntax for * tests/unif.test (syntax): New test prefix. Check syntax for
negative lower bounds and negative lengths (reported by Gyula negative lower bounds and negative lengths (reported by Gyula
@ -38,13 +46,13 @@
ensure intended exact vs inexact is checked. Reported by Aaron ensure intended exact vs inexact is checked. Reported by Aaron
M. Ucko, Debian bug 396119. M. Ucko, Debian bug 396119.
2006-11-29 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-11-29 Ludovic Courtès <ludovic.courtes@laas.fr>
* test-suite/tests/vectors.test: Use `define-module'. * test-suite/tests/vectors.test: Use `define-module'.
(vector->list): New test prefix. "Shared array" test contributed (vector->list): New test prefix. "Shared array" test contributed
by Szavai Gyula. by Szavai Gyula.
2006-10-26 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-10-26 Ludovic Courtès <ludovic.courtes@laas.fr>
* tests/srfi-14.test (Latin-1)[char-set:punctuation]: Fixed a * tests/srfi-14.test (Latin-1)[char-set:punctuation]: Fixed a
typo: `thrown' instead of `throw'. typo: `thrown' instead of `throw'.
@ -75,7 +83,7 @@
the error+thread tests seem ok now (previously were upset by something the error+thread tests seem ok now (previously were upset by something
leaking out of syntax.test). leaking out of syntax.test).
2006-09-20 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-09-20 Ludovic Courtès <ludovic.courtes@laas.fr>
* tests/srfi-14.test: Use `define-module'. Use modules `(srfi * tests/srfi-14.test: Use `define-module'. Use modules `(srfi
srfi-1)' and `(test-suite lib)'. srfi-1)' and `(test-suite lib)'.
@ -120,7 +128,7 @@
* tests/time.test (localtime, mktime, strptime): More tests. * tests/time.test (localtime, mktime, strptime): More tests.
2006-06-13 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-06-13 Ludovic Courtès <ludovic.courtes@laas.fr>
* Makefile.am (SCM_TESTS): Added `tests/structs.test'. * Makefile.am (SCM_TESTS): Added `tests/structs.test'.
* tests/structs.test: New file. * tests/structs.test: New file.
@ -183,7 +191,7 @@
* tests/unif.test (make-shared-array): Add example usages from the * tests/unif.test (make-shared-array): Add example usages from the
manual, two of which currently fail. manual, two of which currently fail.
2006-03-04 Ludovic Courtès <ludovic.courtes@laas.fr> 2006-03-04 Ludovic Courtès <ludovic.courtes@laas.fr>
* test-suite/tests/modules.test: New file. * test-suite/tests/modules.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Added it. * test-suite/Makefile.am (SCM_TESTS): Added it.
@ -231,7 +239,7 @@
* tests/srfi-1.test (lset-difference!): More tests. * tests/srfi-1.test (lset-difference!): More tests.
2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr> 2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr>
* tests/socket.test (make-socket-address): New tests. * tests/socket.test (make-socket-address): New tests.
(connect, bind, sendto): Exercise sockaddr object. (connect, bind, sendto): Exercise sockaddr object.
@ -762,7 +770,7 @@
* lib.scm (exception:numerical-overflow): New define. * lib.scm (exception:numerical-overflow): New define.
* tests/numbers.test (modulo-expt): Use it and * tests/numbers.test (modulo-expt): Use it and
exception:wrong-type-arg, avoiding empty "" regexp which is invalid on exception:wrong-type-arg, avoiding empty "" regexp which is invalid on
BSD. Reported by Andreas Vögele. BSD. Reported by Andreas Vögele.
2004-05-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> 2004-05-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
@ -787,12 +795,12 @@
* tests/srfi-19.test (test-dst, string->date local DST): Test with * tests/srfi-19.test (test-dst, string->date local DST): Test with
"EST5EDT" instead of "CET", since HP-UX doesn't know CET. Reported by "EST5EDT" instead of "CET", since HP-UX doesn't know CET. Reported by
Andreas Vögele. Andreas Vögele.
2004-05-03 Kevin Ryde <user42@zip.com.au> 2004-05-03 Kevin Ryde <user42@zip.com.au>
* tests/time.test (strftime): Force tm:isdst to 0 for the test, for * tests/time.test (strftime): Force tm:isdst to 0 for the test, for
the benefit of HP-UX. Reported by Andreas Vögele. the benefit of HP-UX. Reported by Andreas Vögele.
Use set-tm:zone rather than a hard coded vector offset. Use set-tm:zone rather than a hard coded vector offset.
2004-04-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> 2004-04-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
@ -1733,7 +1741,7 @@
2001-06-16 Marius Vollmer <mvo@zagadka.ping.de> 2001-06-16 Marius Vollmer <mvo@zagadka.ping.de>
Thanks to Matthias Köppe! Thanks to Matthias Köppe!
* tests/ports.test: New test for output port line counts. * tests/ports.test: New test for output port line counts.
* tests/format.test, tests/optargs.test, tests/srfi-19.test: New * tests/format.test, tests/optargs.test, tests/srfi-19.test: New
@ -2327,3 +2335,7 @@ Fri Dec 17 12:14:10 1999 Greg J. Badros <gjb@cs.washington.edu>
* lib.scm, guile-test, paths.scm: Log begins. * lib.scm, guile-test, paths.scm: Log begins.
;; Local Variables:
;; coding: utf-8
;; End:

View file

@ -1,5 +1,5 @@
;;;; eval.test --- tests guile's evaluator -*- scheme -*- ;;;; eval.test --- tests guile's evaluator -*- scheme -*-
;;;; Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc. ;;;; Copyright (C) 2000, 2001, 2006, 2007 Free Software Foundation, Inc.
;;;; ;;;;
;;;; 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
@ -315,5 +315,20 @@
'(a b c d e f g h i j k l m '(a b c d e f g h i j k l m
n o p q r s t u v w x y z)))) n o p q r s t u v w x y z))))
;;;
;;; values
;;;
(with-test-prefix "values"
(pass-if "single value"
(equal? 1 (values 1)))
(pass-if "call-with-values"
(equal? (call-with-values (lambda () (values 1 2 3 4)) list)
'(1 2 3 4)))
(pass-if "equal?"
(equal? (values 1 2 3 4) (values 1 2 3 4))))
;;; eval.test ends here ;;; eval.test ends here

View file

@ -1,7 +1,7 @@
;;;; structs.test --- Test suite for Guile's structures. -*- Scheme -*- ;;;; structs.test --- Test suite for Guile's structures. -*- Scheme -*-
;;;; Ludovic Courtès <ludovic.courtes@laas.fr>, 2006-06-12. ;;;; Ludovic Courtès <ludovic.courtes@laas.fr>, 2006-06-12.
;;;; ;;;;
;;;; Copyright (C) 2006 Free Software Foundation, Inc. ;;;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
;;;; ;;;;
;;;; This program is free software; you can redistribute it and/or modify ;;;; This program is free software; you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by ;;;; it under the terms of the GNU General Public License as published by
@ -18,7 +18,8 @@
;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;;;; Boston, MA 02110-1301 USA ;;;; Boston, MA 02110-1301 USA
(use-modules (test-suite lib)) (define-module (test-suite test-structs)
:use-module (test-suite lib))
@ -80,15 +81,27 @@
(pass-if "struct-set!" (pass-if "struct-set!"
(let ((ball (make-ball green "Bob"))) (let ((ball (make-ball green "Bob")))
(set-owner! ball "Bill") (set-owner! ball "Bill")
(string=? (owner ball) "Bill"))) (string=? (owner ball) "Bill"))))
(pass-if "equal?"
(with-test-prefix "equal?"
(pass-if "simple structs"
(let* ((vtable (make-vtable-vtable "pr" 0))
(s1 (make-struct vtable 0 "hello"))
(s2 (make-struct vtable 0 "hello")))
(equal? s1 s2)))
(pass-if "more complex structs"
(let ((first (make-ball red (string-copy "Bob"))) (let ((first (make-ball red (string-copy "Bob")))
(second (make-ball red (string-copy "Bob")))) (second (make-ball red (string-copy "Bob"))))
(equal? first second))) (equal? first second)))
(pass-if "not-equal?" (pass-if "not-equal?"
(not (or (equal? (make-ball red "Bob") (make-ball green "Bill")) (not (or (equal? (make-ball red "Bob") (make-ball green "Bob"))
(equal? (make-ball red "Bob") (make-ball red "Bill")))))) (equal? (make-ball red "Bob") (make-ball red "Bill"))))))
;;; Local Variables:
;;; coding: latin-1
;;; End: