+2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes.
+
+ * print.c (scm_isymnames): Add names for the new memoizer codes.
+
+ * eval.c (s_missing_clauses, s_bad_case_clause,
+ s_extra_case_clause, s_bad_case_labels, s_duplicate_case_label,
+ literal_p): New static identifiers.
+
+ (scm_m_case): Use ASSERT_SYNTAX to signal syntax errors. Be more
+ specific about the kind of error that was detected. Check for
+ duplicate case labels. Handle bound 'else. Avoid unnecessary
+ consing when creating the memoized code.
+
+ (scm_m_case, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
+ the syntactic keyword 'else.
+
+2003-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (s_bad_expression, syntax_error_key, syntax_error,
+ ASSERT_SYNTAX, ASSERT_SYNTAX_2): New static identifiers.
+
+ (scm_m_and): Use ASSERT_SYNTAX to signal syntax errors. Avoid
+ unnecessary consing when creating the memoized code.
+
+2003-10-09 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_inexact_to_exact): Don't depend on what double->long
+ cast gives for values bigger than a long, or for nan or inf.
+
+2003-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * smob.h (scm_make_smob_type): Made the declaration match the
+ definition.
+
+2003-10-07 Marius Vollmer <mvo@zagadka.de>
+
+ * goops.c, objects.h, smob.c, smob.h: Make type names char
+ const * instead of char *. Thanks to Paul Jarc!
+
+2003-10-02 Kevin Ryde <user42@zip.com.au>
+
+ * strports.c (scm_call_with_output_string): scm_get_output_string
+ rather than scm_strport_to_string, so as to guard against the port
+ having been closed by the called procedure. Reported by Nic Ferrier.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_INEXACTP): Removed uses of SCM_TYP16S.
+
+ * tags.h, deprecated.h (SCM_TYP16S): Deprecated and moved from
+ tags.h to deprecated.h.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This set of patches introduces a new tc7 code scm_tc7_number for
+ numbers. Bignums, reals and complex numbers are turned from smobs
+ into subtypes of scm_tc7_number.
+
+ * tags.h (scm_tc7_number): New.
+
+ * eq.c (scm_equal_p), eval.c (SCM_CEVAL), evalext.c
+ (scm_self_evaluating_p), gc-card.c (scm_i_sweep_card), gc-mark.c
+ (scm_gc_mark_dependencies), goops.c (create_smob_classes), hash.c
+ (scm_hasher), numbers.c, numbers.h (SCM_NUMP), objects.c
+ (scm_class_of), print.c (scm_iprin1), smob.c
+ (scm_smob_prehistory): Don't handle bignums, reals and complex
+ numbers as subtypes of scm_tc7_smob any more.
+
+ * numbers.h, tags.h (scm_tc16_big, scm_tc16_real,
+ scm_tc16_complex): Moved definitions from tags.h to numbers.h.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use
+ sizeof (scm_t_complex) to determine the memory size of the
+ malloc'd area for complex numbers.
+
+2003-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_bigequal): Fixed.
+
+2003-09-16 Marius Vollmer <mvo@zagadka.de>
+
+ * stime.c (scm_current_time): 'time' does not set errno so don't
+ use SCM_SYSERROR for reporting errors.
+
+2003-09-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This set of patches eliminates the dependency between the
+ implementation of evaluator specific memoization codes and special
+ constants like #f, '() etc. ('flags'), which are not evaluator
+ specific. The goal is to remove definitions of evaluator
+ memoization codes completely from the public interface. This will
+ make it possible to experiment more freely with optimizations of
+ guile's internal representation of memoized code.
+
+ * objects.c (scm_class_of): Eliminate dependency on SCM_ISYMNUM.
+
+ * print.c (iflagnames): New array, holding the printed names of
+ guile's special constants ('flags').
+
+ (scm_isymnames): Now holds only the printed names of the
+ memoization codes.
+
+ (scm_iprin1): Separate the handling of memoization codes and
+ guile's special constants.
+
+ * tags.h (scm_tc9_flag, SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA,
+ SCM_IFLAGNUM): new
+
+ (scm_tc8_char, scm_tc8_iloc, SCM_BOOL_F, SCM_BOOL_T,
+ SCM_UNDEFINED, SCM_EOF_VAL, SCM_EOL, SCM_UNSPECIFIED, SCM_UNBOUND,
+ SCM_ELISP_NIL, SCM_IM_DISPATCH, SCM_IM_SLOT_REF,
+ SCM_IM_SLOT_SET_X, SCM_IM_DELAY, SCM_IM_FUTURE,
+ SCM_IM_CALL_WITH_VALUES, SCM_IM_NIL_COND, SCM_IM_BIND): Changed
+ values.
+
+ (SCM_IFLAGP): SCM_IFLAGP now only tests for flags.
+
+ (SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Generalized to use the
+ tc9 macros and scm_tc9_flag.
+
+2003-09-15 Marius Vollmer <mvo@zagadka.de>
+
+ * posix.c (scm_setgroups): Check that the gid list is not too
+ long. Thanks to Paul Jarc!
+
+2003-09-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h: Reduced the number of short instructions from 14 to 13.
+ The typecode of the former 14th short instruction is now used to
+ represent long instructions. Changed some comments to reflect
+ this fact.
+
+ (SCM_MAKISYM): ISYMs get a new tc7 code, namely the one that was
+ previously used by SCM_IM_DEFINE.
+
+ (SCM_IM_DEFINE): Turned into a long instruction.
+
+ * eval.c (unmemocopy, SCM_CEVAL): Treat SCM_IM_DEFINE as a long
+ instruction.
+
+ * eval.c (SCM_CEVAL): Since characters and iflags have now a tc7
+ code that is separate from all instructions, one level of dispatch
+ for long instructions can be eliminated.
+
+ * print.c (scm_isymnames): Removed some commented code.
+
+2003-09-12 Marius Vollmer <mvo@zagadka.de>
+
+ * __scm.h (SCM_FENCE): Use __memory_barrier with the Intel
+ compiler on IA64.
+
+ * hashtab.h (scm_tc16_hashtable): Added "extern" declaration.
+
+ * modules.c (scm_module_reverse_lookup): Check that the obarray
+ really is a hashtable and do nothing if not.
+
+ * inline.h: Use "extern inline" only with GCC. Use "static
+ inline" else.
+
+2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Removed uses
+ of SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
+ * numbers.h, deprecated.h (SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP,
+ SCM_SLOPPY_COMPLEXP): Deprecated and moved from numbers.h to
+ deprecated.h.
+
+2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eq.c (scm_eqv_p, scm_equal_p): Removed uses of
+ SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
+ * eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from
+ 0.0==some_expression to some_expression==0.0. The latter is
+ better readable. The former is preferred by some people, since it
+ leads to a compiler error when confusing == with =. However, when
+ using gcc, a warning will be issued if in an if-statement an
+ assigment appears. Since many Guile developers are using gcc,
+ such errors will not remain unnoticed anyway. We can therefore
+ focus on better readability.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h: Added description of Guile's type system. Removed some
+ old and misleading comments.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unit.c (scm_cvref): Eliminate unnecessary uses of SCM_NIMP,
+ SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_MAKINUM): Define in terms of scm_tc2_int.
+
+ (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Define in terms of the
+ respective SLOPPY macro.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eq.c (scm_equal_p): Use SCM_TYP7 to check if an object is of
+ type string, not SCM_TYP7S.
+
+2003-09-03 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_lognot): Correction to docstring, ones-complement not
+ 2s-complement.
+
+ * stime.c (scm_strptime): Add comment about glibc strptime %s and
+ current timezone requiring SCM_DEFER_INTS.
+
+2003-08-30 Neil Jerram <neil@ossau.uklinux.net>
+
+ * script.c (scm_compile_shell_switches): Make -s switch optional
+ if file to be loaded does not begin with a `-'. (Thanks to Aaron
+ VanDevender for the patch!)
+
+2003-08-30 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_lognot): Rewrite using ~ and mpz_com, for directness
+ and to have non-integer types rejected as per other logical funcs.
+
+2003-08-28 Kevin Ryde <user42@zip.com.au>
+
+ * gc.h (scm_remember_upto_here_1): Revise comments on the asm form.
+
+2003-08-23 Kevin Ryde <user42@zip.com.au>
+
+ * simpos.c (scm_system): Remove SCM_DEFER_INTS, system() should be
+ thread safe, and could take a long time too.
+
+2003-08-22 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_difference): Correction to bignum - negative inum.
+
+2003-08-14 Kevin Ryde <user42@zip.com.au>
+
+ * gc.h (scm_remember_upto_here_1, scm_remember_upto_here_2)
+ [__GNUC__]: Use volatile asm macros rather than a function call.
+ * gc.c (scm_remember_upto_here_1, scm_remember_upto_here_2): Undefine
+ macros while defining functions.
+
+ * simpos.c (getenv): Use <stdlib.h> for prototype.
+ (scm_system): In docstring, refer to status:exit-val rather than
+ "functions above".
+
+2003-08-09 Kevin Ryde <user42@zip.com.au>
+
+ * srcprop.c (scm_source_properties): Return plist from hash if it's a
+ list set by source-properties! rather than an SRCPROPS object,
+
+2003-07-29 Kevin Ryde <user42@zip.com.au>
+
+ * properties.c (scm_primitive_property_ref): In docstring, note
+ parameters to not-found-proc, use hyphens rather than underscores for
+ that parameter name.
+ (scm_primitive_property_set_x): In docstring, VAL is the value
+ parameter not CODE.
+
+2003-07-27 Marius Vollmer <mvo@zagadka.de>
+
+ * print.c (scm_print_symbol_name): handle more weird characters by
+ escaping the symbol name properly. Thanks to Paul Jarc!
+
+ * posix.h (scm_setgroups): New prototype.
+ * posix.c (scm_setgroups): New. Thanks to Paul Jarc!
+ (scm_getgroups): Handle groups ids that don't fit into a fixnum.
+ Don't use SCM_WRITABLE_VELTS.
+
+ * gc.h (SCM_GC_SET_CELL_BVEC): New.
+ * gc-card.c (scm_i_init_card_freelist): Use it. Thanks to
+ Matthias Koeppe!
+
+ * __scm.h (SCM_C_INLINE_KEYWORD): New.
+ * numbers.c: Use it in place of SCM_C_INLINE so that the code
+ compiles when SCM_C_INLINE is undefined.
+
+2003-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h: Reformulated the architecture and compiler properties
+ in terms of properties of scm_t_bits and SCM variables rather than
+ in terms of c standard types. This is since it is not known which
+ of the standard types scm_t_bits and SCM variables will be defined
+ to.
+
+2003-07-24 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_angle): Use scm_flo0 for non-negative inum, bignum
+ and real.
+
+2003-07-18 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_product): In complex * bignum, correction to
+ REAL/IMAG fetch, x is the complex, not y.
+
+2003-07-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+
+ * numbers.c (scm_odd_p, scm_even_p): Bugfix: Treat result of
+ scm_inf_p test as Scheme values.
+ (scm_sum): Bugfix: Normalize bignum created from a negative bignum
+ and a positive inum.
+ Use GNU indentation style.
+
+2003-07-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * values.c (scm_values): Build lists of length 1 by using
+ scm_list_1 instead of using scm_cons.
+
+2003-07-10 Kevin Ryde <user42@zip.com.au>
+
+ * deprecation.c (scm_c_issue_deprecation_warning_fmt): Add va_end.
+ * list.c (scm_list_n): Ditto.
+
+ * gc-malloc.c (scm_gc_realloc): Define "ptr" at start of function.
+
+2003-07-08 Matthias Koeppe <mkoeppe@merkur.math.uni-magdeburg.de>
+
+ * tags.h (scm_t_bits, scm_t_signed_bits, etc): Avoid solaris empty
+ defines of INTPTR_MAX and UINTPTR_MAX, combine conditionals for
+ scm_t_bits and scm_t_signed_bits to avoid any chance of one and not
+ the other using intptr_t.
+
+2003-07-08 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_make_polar): Use sincos, when available.
+ (scm_magnitude): Use hypot.
+
+ * ports.c (scm_char_ready_p, scm_peek_char): In docstrings, don't use
+ @footnote since it doesn't go through to guile-procedures.txt.
+
+ * threads.c (scm_call_with_new_thread): In docstring, use "( )"
+ outside @var to quieten makeinfo, and use @code.
+
+2003-07-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * gc-malloc.c (decrease_mtrigger): new function
+ (increase_mtrigger): new function, separate debug registering and
+ mtrigger administration.
+ (scm_gc_realloc): bugfix: do mtrigger administration before the
+ actual realloc, for the realloc might invalidate a GC-d segment of
+ memory. Thanks to Sam Hocevar for pointing this out.
+ (scm_gc_realloc): use scm_malloc_reregister instead of
+ unregistering and registering in sequence.
+
+2003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
+
+2003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * __scm.h (SCM_ASRTGO): add "else" to macro expansions with if
+ clauses.
+
+2003-06-29 Marius Vollmer <mvo@zagadka.de>
+
+ * deprecated.h (SCM_OPDIRP, scm_fport, scm_option, scm_srcprops,
+ scm_srcprops_chunk, scm_info_frame, scm_stack, scm_array,
+ scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_FUNC_NAME, SCM_WTA,
+ RETURN_SCM_WTA, SCM_VALIDATE_NUMBER_COPY,
+ SCM_VALIDATE_NUMBER_DEF_COPY, SCM_VALIDATE_OPDIR): Re-added from
+ the release_1_6 branch.
+
+2003-06-25 Stefan Jahn <stefan@lkcc.org>
+
+ * continuations.c: Redeclaration of getcontext() via the
+ __asm__ ("getcontext") directive.
+
+ * continuations.h: Include <ucontext.h> instead of
+ <sys/ucontext.h>.
+
+2003-06-21 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (_GNU_SOURCE): #define, to get C99 things.
+ (scm_asinh, scm_acosh, scm_atanh, scm_truncate, $asinh, $acosh,
+ $atanh, truncate): Use C library asinh, acosh, atanh and trunc, when
+ available.
+ (scm_inexact_to_exact): Expand isfinite to its definition !xisinf.
+ (isfinite): Remove, conflicts with C99 isfinite().
+
+2003-06-19 Marius Vollmer <mvo@zagadka.de>
+
+ * deprecated.h, deprecated.c (scm_strhash, scm_sym2ovcell_soft,
+ scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
+ scm_symbol_value0, scm_string_to_obarray_symbol scm_intern_symbol,
+ scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
+ scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp): Re-added from
+ the release_1_6 branch.
+
+2003-06-14 Stefan Jahn <stefan@lkcc.org>
+
+ * threads.h: Redefined scm_getspecific() and scm_setspecific()
+ to be functions instead of macros.
+
+ * threads.c: Conditionalized inclusion of <sys/time.h> and
+ <unistd.h>.
+ (scm_getspecific, scm_setspecific): Made these two function
+ real part of the API.
+
+ * posix.c (s_scm_putenv): Added some code to make a
+ (putenv "FOO="), i.e. setting an empty string, work also on
+ Win32 systems. Thanks to Kevin Ryde for the proposal.
+
+2003-06-12 Kevin Ryde <user42@zip.com.au>
+
+ * posix.c (scm_putenv): Free temporary ptr in mingw unset. Add
+ freebsd to comment about need to use unsetenv.
+
+2003-06-02 Marius Vollmer <mvo@zagadka.de>
+
+ * ports.c (scm_peek_char): Safe the column of the port around the
+ getc/ungetc calls. Thanks to Dr. Peter Ivanyi!
+
+2003-06-07 Kevin Ryde <user42@zip.com.au>
+
+ * tags.h: Use inttypes.h and stdint.h when available, for INTPTR_MAX
+ and friends required by scm_t_bits setups.
+
+2003-06-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h (scm_tc2_int): Added.
+
+ * tags.h (scm_tc3_int_1, scm_tc3_int_2): Expressed in terms of
+ scm_tc2_int.
+
+ * tags.h (scm_tcs_cons_imcar, scm_tcs_cons_nimcar, scm_tcs_struct,
+ scm_tcs_closures): Hard coded values replaced by symbolic ones.
+
+2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c: Partially undid my patch from 2003-05-31. This patch
+ caused the segfault referenced in the previous changelog entry.
+
+2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h: Fixed comment about the immediate type code layout.
+
+ * eval.c: Fixed handling of non-special instructions. Without
+ this patch, guile will segfault on (#\0) and similar instructions.
+
+2003-06-05 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_max, scm_min): For inum, bignum and real, if other
+ operand is NaN, then return NaN. Also avoid passing NaN to mpz_cmp_d.
+
+ * read.c (scm_input_error): Pass arg list parameter to scm_error_scm,
+ rather than SCM_EOL. Needed by "Unknown # object" case in scm_lreadr.
+
+2003-06-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h, gc-card.c (SCM_DEBUG_DEBUGGER_SUPPORT,
+ SCM_DEBUG_DEBUGGING_SUPPORT): Renamed macro
+ SCM_DEBUG_DEBUGGER_SUPPORT to SCM_DEBUG_DEBUGGING_SUPPORT and
+ generalized it to apply not only to C level functions but also to
+ scheme level functions.
+
+ * debug.c, debug.h, eval.c (make-iloc, scm_make_iloc, iloc?,
+ scm_iloc_p, dbg-make-iloc, scm_dbg_make_iloc, dbg-iloc?,
+ scm_dbg_iloc_p): Moved functions scm_make_iloc, scm_iloc_p to
+ eval.c, made them available under SCM_DEBUG_DEBUGGING_SUPPORT == 1
+ only and renamed them to scm_dbg_make_iloc, scm_dbg_iloc_p,
+ respectively.
+
+ * deprecated.h, eval.c, eval.h (SCM_ILOC00, SCM_IDINC,
+ SCM_IDSTMSK): Deprecated. The macro definitions are moved from
+ eval.h into eval.c and a copy is placed into deprecated.h.
+
+ * eval.c, eval.h (SCM_MAKE_ILOC): Removed from eval.h and placed
+ into eval.c. This definition was not part of the API in any
+ officially released version of guile and thus does not need to go
+ through a phase of deprecation.
+
+2003-06-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * deprecated.c, deprecated.h, eval.c, eval.h (scm_s_expression,
+ scm_s_test, scm_s_body, scm_s_bindings, scm_s_variable,
+ scm_s_clauses, scm_s_formals): Deprecated. In eval.c the
+ definitions are make static and renamed from scm_s_xxx to s_xxx.
+ In deprecated.c the original definitions are copied.
+
+ * deprecated.h, eval.c, eval (SCM_EVALIM2, SCM_EVALIM, SCM_XEVAL,
+ SCM_XEVALCAR): Deprecated. The macro definitions are moved from
+ eval.h into eval.c and a copy (slightly modified to work in user
+ code) is placed into deprecated.h.
+
+ * eval.c: Use the local static s_xxx definitions instead of the
+ scm_s_xxx definitions throughout.
+
+2003-06-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This set of patches separates the representation of the cxr family
+ of functions (car, cdr etc.) from the dsubr family of functions
+ (i. e. functions that take a double precision floating point
+ argument). Further, the algorithm for handling the cxr function
+ is improved.
+
+ * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_1), numbers.c
+ (scm_asinh, scm_acosh, scm_atanh, scm_truncate, scm_round, floor,
+ ceil, sqrt, fabs, exp, log, sin, cos, tan, asin, acos, atan, sinh,
+ cosh, tanh), objects.c (scm_class_of), procprop.c
+ (scm_i_procedure_arity), ramap.c (scm_array_map_x), tags.h
+ (scm_tc7_dsubr, scm_tcs_subrs): Introduce scm_tc7_dsubr as new
+ typecode for the dsubr family of functions.
+
+ * ramap.c (ramap_cxr, ramap_dsubr): Renamed ramap_cxr to
+ ramap_dsubr.
+
+ * eval.c (SCM_CEVAL, SCM_APPLY, call_cxr_1), pairs.c
+ (scm_init_pairs): Make use of the (now usable) second cell element
+ of a scm_tc7_cxr function to implement the cxr family of functions
+ more efficiently.
+
+2003-05-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_0,
+ scm_trampoline_1, scm_trampoline_2): Postpone error cases to the
+ end of an if-else-if-sequence of checks.
+
+2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (SCM_CEVAL): Improved readability of call-with-values
+ execution. Generalize apply_closure to apply_proc and use that
+ for call-with-values.
+
+2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (SCM_CEVAL): Avoid one level of indirection when applying
+ a non closure.
+
+2003-05-30 Stefan Jahn <stefan@lkcc.org>
+
+ * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
+ appropriately for mingw32 hosts.
+
+ * numbers.h: Defining copysign(), isnan() and finite() to
+ be prefixed by a single '_' for mingw32 hosts.
+
+2003-05-30 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (z_negative_one): New variable.
+ (scm_init_numbers): Initialize it.
+ (scm_logcount): Use it and mpz_hamdist to count zeros for negatives.
+
+2003-05-29 Stefan Jahn <stefan@lkcc.org>
+
+ * win32-dirent.c: Use malloc() instead of scm_malloc().
+
+ * stime.c (s_scm_strftime): Add a type cast to avoid compiler
+ warning.
+
+ * posix.c (s_scm_putenv): Disable use of unsetenv() for the
+ mingw32 build.
+
+ * modules.c (s_scm_module_import_interface): Renamed local
+ variable interface to _interface. Seems like 'interface'
+ is a special compiler directive for the mingw32 compiler.
+
+ * mkstemp.c: Provide prototype to avoid compiler warning.
+
+ * load.c (s_scm_search_path): Fixed absolute and relative
+ path detections for native Windows platforms.
+
+ * gc.h, threads.h: Export some more symbols using SCM_API (necessary
+ to build on mingw32).
+
+ * gc-freelist.c ("s_scm_map_free_list",
+ "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
+
+ * fports.c (fport_fill_input): Disable use of
+ fport_wait_for_input() on Win32 platforms.
+
+ * filesys.c (s_scm_basename): Fixed __MINGW32__ code.
+
+ * Makefile.am: Modified some rules for cross compiling.
+
+2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (SCM_CEVAL): In case of an application, all checks for a
+ proper function object and the correct number of arguments are now
+ performed in the application part of SCM_CEVAL.
+
+ (scm_badformalsp): Removed.
+
+2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * deprecated.c (scm_read_and_eval_x): Fixed C99-ism.
+
+2003-05-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+
+ * num2integral.i.c (NUM2INTEGRAL): Avoid warning about conditional
+ always being false by inserting preprocessor conditional. (Thanks
+ to Bruce Korb.)
+
+ * __scm.h (SCM_STACK_PTR): New macro. (Cast argument through
+ (void *) in order to avoid an aliasing warning; thanks to Bruce
+ Korb.)
+
+ * stackchk.h (SCM_STACK_OVERFLOW_P): Use SCM_STACK_PTR.
+
+ * threads.c (suspend, launch_thread, scm_threads_mark_stacks): Use
+ SCM_STACK_PTR.
+
+ * threads.c (scm_threads_mark_stacks): Bugfix: Changed
+ thread->base --> t->base.
+
+ * eval.c (SCM_CEVAL): Don't cast argument of SCM_STACK_OVERFLOW_P.
+
+2003-05-20 Marius Vollmer <marius.vollmer@uni-dortmund.de>
+
+ * deprecated.h, deprecated.c (scm_makstr, scm_makfromstr,
+ scm_variable_set_name_hint, scm_builtin_variable,
+ scm_internal_with_fluids, scm_make_gsubr,
+ scm_make_gsubr_with_generic, scm_create_hook, SCM_LIST0,
+ SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5, SCM_LIST6,
+ SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify, scm_sloppy_memq,
+ scm_sloppy_memv, scm_sloppy_member, scm_read_and_eval_x,
+ scm_subr_entry, SCM_SUBR_DOC, scm_make_subr,
+ scm_make_subr_with_generic, scm_make_subr_opt,
+ scm_call_catching_errors, scm_make_smob_type_mfpe,
+ scm_set_smob_mfpe, scm_strprint_obj, scm_read_0str, scm_eval_0str,
+ SCM_CHARS, SCM_UCHARS, SCM_LENGTH): Re-added from the release_1_6
+ branch. Some have been slightly rewritten.
+ (scm_i_object_chars, scm_i_object_length): New, to support
+ SCM_CHARS, SCM_UCHARS, and SCM_LENTH.
+
+2003-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_m_do, unmemocopy, SCM_CEVAL): Reversed order of
+ names and inits in the memoized code of do.
+
+2003-05-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+
+ * c-tokenize.lex (yyget_lineno, yyget_in, yyget_out, yyget_leng,
+ yyget_text, yyset_lineno, yyset_in, yyset_out, yyget_debug,
+ yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get
+ a compilation error if error-on-warning is enabled).
+
+2003-05-17 Marius Vollmer <mvo@zagadka.de>
+
+ * c-tokenize.lex: Gobble up complete lines after a '#'. This
+ removes preprocessor directives from the snarfage that might
+ otherwise confuse us. These directives appear when compiling with
+ "-g3", for example.
+
+2003-05-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * ChangeLog: add my surname
+
+ * srcprop.c (scm_finish_srcprop): use
+ scm_gc_register_collectable_memory()
+ (scm_make_srcprops): idem.
+
+2003-05-14 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * gc-malloc.c (scm_gc_register_collectable_memory): avoid
+ wrap-around for scm_mtrigger
+ (scm_gc_register_collectable_memory): abort on overflowing
+ scm_mallocated().
+
+2003-05-13 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (xmpz_cmp_d): New macro, handling infs if gmp doesn't.
+ (scm_num_eq_p, scm_less_p, scm_max, scm_min): Use it.
+
+2003-05-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+
+ * backtrace.c (scm_display_error_message): Introduced fancy
+ printing with max level 7 and length 10. (Purpose: avoid printing
+ gigantic objects in error messages.)
+
+ * print.c, print.h (scm_i_port_with_print_state): New function.
+
+ * print.c (scm_iprin1, scm_printer_apply,
+ scm_port_with_print_state): Use scm_i_port_with_print_state.
+ (scm_simple_format): Modified not to destroy print states.
+ (print_state_mutex): New mutex.
+ (scm_make_print_state, scm_free_print_state, scm_prin1):
+ Lock/unlock print_state_mutex.
+
+ * deprecated.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK):
+ Use current names in definitions.
+
+2003-05-10 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d.
+
+ * numbers.c (scm_integer_length): On negative bignums, adjust
+ mpz_sizeinbase to account for it looking at absolute value where we
+ want ones-complement.
+
+ * numbers.c (scm_gcd): In bignum/inum, don't pass yy==0 to mpz_gcd_ui
+ since we're only using the ulong return value, and x might not fit.
+
+2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c, eval.h, read.c, read.h (scm_sym_dot): Moved from eval to
+ read. This will allow to make the definition in read.c static.
+
2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c, eval.h, evalext.c, evalext.h (scm_m_undefine): Moved
implementation).
(scm_gc_calloc): new function
-2002-08-04 Han-Wen <hanwen@cs.uu.nl>
+2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* ports.c (scm_new_port_table_entry): init port entry to 0
completely.
* modules.c (scm_sym2var): Don't compare SCM values with ==.
-2002-07-21 Han-Wen <hanwen@cs.uu.nl>
+2002-07-21 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* goops.c (scm_compute_applicable_methods): use
scm_remember_upto_here_1 iso scm_remember_upto_here
* gc.h: undo previous undocumented changes related to #ifdef
GENGC.
-2002-07-20 Han-Wen <hanwen@cs.uu.nl>
+2002-07-20 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* *.c: add space after commas everywhere.