+2002-02-25 Gary Houston <ghouston@arglist.com>
+
+ * convert.c: include <string.h> for convert_i.c.
+
+2002-02-24 Rob Browning <rlb@defaultvalue.org>
+
+ * .cvsignore: add stamp-h1.
+
+2002-02-21 Neil Jerram <neil@ossau.uklinux.net>
+
+ * unif.c (scm_array_to_list): Correct name, which had been
+ accidentally changed to scm_t_arrayo_list!
+
+2002-02-20 Mikael Djurfeldt <mdj@linnaeus>
+
+ * gc.c (scm_gc_sweep): Print an error message when aborting due to
+ underflowing scm_mallocated.
+
+2002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
+
+ * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
+ scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
+ Reimplemented using the new scm_gc_malloc, etc., functions and
+ deprecated.
+
+2002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
+
+ * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
+ to `noinst_PROGRAMS'.
+ (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
+ (noinst_PROGRAMS, noinst_SCRIPTS): New.
+
+2002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
+
+ * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
+ non-zero is returned from a port or smob free function.
+ (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
+ scm_gc_register_collectable_memory,
+ scm_gc_unregister_collectable_memory, scm_gc_malloc,
+ scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
+
+ * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
+ debug-malloc.c, dynl.c, environments.c, environments.h,
+ extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
+ guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
+ ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
+ smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
+ vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
+ scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
+ appropriate. Return zero from smob and port free functions.
+
+ * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
+
+ * deprecation.h, deprecation.c: Reimplemented to allow deprecation
+ messages while the GC is running.
+ (scm_c_issue_deprecation_warning_fmt): New.
+
+ * fports.c (scm_setvbuf): Reset read buffer to saved values when
+ it is pointing to the putback buffer.
+
+2002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
+
+ * gsubr.c (create_gsubr): On "too many args" error,
+ also display arg count and name. Thanks to Bill Schottstaedt.
+
+2002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
+
+ * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
+
+ (bin_SCRIPTS): Remove guile-snarf-docs-texi.
+ (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
+ (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
+
+ * guile-snarf-docs-texi.in: Bye bye.
+
+2002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
+
+ * symbols.c (scm_make_symbol): Fix typo in docstring.
+
+ * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
+ scm_make_symbol): New prototypes.
+
+2002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
+ (SCM_SYMBOL_INTERNED_P): New.
+ * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
+ SCM_MAKINUM since hash values can well be bignums.
+ (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
+ This signals a interned symbol.
+ (scm_mem2uninterned_symbol, scm_symbol_interned_p,
+ scm_make_symbol): New.
+
+ * print.c (scm_iprin1): Print uninterned symbols unreadably.
+
+2002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
+
+ * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
+ are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
+ Thanks to Dave Love.
+
+2002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
+ This might help to make unintended clashes less likely.
+ (scm_string_to_symbol): Protect the string until the symbols is
+ created.
+
+2002-01-31 Stefan Jahn <stefan@lkcc.org>
+
+ * convert.c, convert.h, convert.i.c: New files containing C
+ array to Scheme conversion helpers meant to be replacement
+ functions for the deprecated gh interface.
+
+ * Makefile.am: Setup rules for new `convert.*' files.
+
+2002-01-28 Stefan Jahn <stefan@lkcc.org>
+
+ * symbols.c (scm_c_symbol2str): New function, replacement for
+ `gh_scm2newsymbol()'.
+
+ * strings.c (scm_c_substring2str): New function. Proper
+ replacement for `gh_get_substr()'.
+
+ * socket.c: Include `stdint.h' if available for the `uint32_t'
+ declaration.
+
+ * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
+ compiler warning).
+
+ * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
+
+2002-01-22 Neil Jerram <neil@ossau.uklinux.net>
+
+ Other changes unrelated to Elisp...
+
+ * eval.c (scm_m_if): Use s_if rather than repeating string literal
+ "if".
+ (comments): Fix a few typos.
+ (scm_for_each): Add parentheses around oddly unparenthesized
+ if/while conditions.
+
+ * read.c (scm_read_opts): Add full stop at end of doc for
+ `keywords' option.
+
+ * script.c (scm_compile_shell_switches): Use scm_str2symbol
+ instead of gh_symbol2scm.
+
+ * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
+ (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
+
+ * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
+ SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
+
+ First batch of changes for Elisp support...
+
+ * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
+ fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
+ throw.c, vectors.c, weaks.c: Add #include for lang.h.
+
+ * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
+ conditionalize compilation and initialization of Elisp support
+ function.
+
+ * alist.c (scm_assq, scm_assv, scm_assoc), async.c
+ (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
+ (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
+ filesys.c (fill_select_type, retrieve_select_type), fluids.c
+ (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
+ scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
+ scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
+ scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
+ options.c (change_option_setting, scm_options), posix.c
+ (environ_list_to_c), print.c (scm_iprlist), throw.c
+ (scm_exit_status), vectors.c (scm_vector), weaks.c
+ (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
+
+ * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
+ just SCM_FALSEP.
+
+ * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
+ of just SCM_BOOLP.
+
+ * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
+ s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
+ scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
+ (scm_m_atfop): Support function aliasing. Support both function
+ args, which need transformation, and macro args, which do not.
+ Add explanatory comments.
+ (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
+ SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
+ checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
+ SCM_NULLP || SCM_NILP instead of checks against (removed)
+ scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
+ SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
+
+ * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
+ scm_m_while, scm_nil_eq): Commented out; I don't think we need
+ these, but I don't want to remove them yet, just in case.
+ (scm_init_lang): Define `%nil' variable on Scheme level to hold
+ Elisp nil value.
+
+ * lang.h (SCM_NILP): Test against Elisp nil value instead of
+ against (removed) scm_lisp_nil.
+ (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
+ (SCM_NULL_OR_NIL_P): New.
+
+ * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
+ SCM_VALIDATE_NULL.
+
+ * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
+ #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
+ value).
+
+ * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
+ scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
+ SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
+ (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
+
+ * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
+ SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
+ (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
+ Numbering shifted down accordingly.
+ (SCM_ELISP_NIL): New IFLAG.
+
+ * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
+
+2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c: Removed outdated references to "everr". Improved some
+ comments.
+
+ (scm_deval_args, deval_args): Renamed scm_deval_args to
+ deval_args, since it is not part of the interface.
+
+ (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
+ use references to debug.vect[0] before it exists. Add parentheses
+ to switch statement.
+
+ * goops.h: Added local emacs variables.
+
+2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.[ch] (scm_deval_args): Made static.
+
+ * srcprop.c (scm_source_property): Remove redundant SCM_IMP
+ test.
+
+ * strings.c (scm_c_string2str): Clarified comment. Replaced
+ THINKME by FIXME for uniformness. Removed question about whether
+ arguments need to be protected from garbage collection: Arguments
+ must be protected as any other variable.
+
+2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * procs.h (SCM_CLOSURE_BODY): New Macro.
+
+ * debug.c (scm_procedure_name, scm_procedure_source), eval.c
+ (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
+ get_slot_value, set_slot_value), procs.c
+ (scm_procedure_documentation), sort.c (closureless), stacks.c
+ (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
+ SCM_CLOSURE_BODY.
+
+ * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
+
+2001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
+ use "cp" instead.
+
+2001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
+ everywhere.
+
+ * continuations.c (scm_make_continuation): Do not retain the
+ throw_value when the continuation is invoked.
+
+2001-12-08 Stefan Jahn <stefan@lkcc.org>
+
+ * strings.c (scm_c_string2str): New function. Converts a
+ given Scheme string into a C string. Also put in two
+ THINKME's regarding the malloc policy for the missing converter
+ routines.
+
+2001-12-01 Neil Jerram <neil@ossau.uklinux.net>
+
+ * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
+ gh_symbol2scm.
+
+2001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
+ SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
+
+ (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
+ SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
+ SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
+ macros.
+
+ (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
+
+ * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
+ SCM_GC_CELL_* macros when accessing free cells.
+
+2001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * vectors.h (SCM_MAKE_VECTOR_TAG): New.
+ * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
+ * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
+ * strings.h (SCM_MAKE_STRING_TAG): New.
+ * procs.h (SCM_MAKE_CCLO_TAG): New.
+ * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
+
+ * goops.h: Replaced SCM_DEBUG_DEPRECATED with
+ !SCM_ENABLE_DEPRECATED.
+
+ * async.c, async.h (scm_system_async_mark_from_signal_handler):
+ New.
+
+ * scmsigs.c (scm_take_signal): Removed all code that assumes that
+ signal handlers are allowed to divert the flow of control. Call
+ scm_system_async_mark_from_signal_handler instead of
+ scm_system_async_mark.
+
+
+ Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
+ scm_alloc_double_cell in their place.
+
+ * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
+ scm_debug_newcell2, scm_tc16_allocated): Removed from header.
+ (scm_deprecated_newcell, scm_deprecated_newcell2): New.
+ (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
+ scm_deprecated_newcell and scm_deprecated_newcell2.
+
+ gc.c (scm_tc16_allocated): Only define when including deprecated
+ features.
+ (scm_debug_newcell, scm_debug_newcell2): Removed.
+ (scm_init_storage): Do not initialize scm_tc16_allocated.
+ (scm_init_gc): Do it here.
+ (allocated_mark): New, from old code.
+ (scm_deprecated_newcell, scm_deprecated_newcell2): New.
+
+ * inline.c, inline.h: New files.
+ * Makefile.am: Added them in all the right places.
+
+ * _scm.h: Include "libguile/inline.h".
+
+ * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
+ fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
+ num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
+ smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
+ unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
+ SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
+ scm_alloc_double_cell, respectively.
+
+2001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * modules.c (scm_c_use_module): Adapt to changes to
+ `process-use-modules'.
+
+2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_divide): Fix more division by zero errors.
+
+2001-11-21 Gary Houston <ghouston@arglist.com>
+
+ * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
+ obsolete. autogen.sh says:
+ invalid unused variable name: `OMIT_DEPENDENCIES'
+
+2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
+ reporting the bug.
+
+2001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
+ Thanks to Eric Gillespie, Jr!
+
+2001-11-21 Stefan Jahn <stefan@lkcc.org>
+
+ * win32-socket.c (getservent, setservent, endservent,
+ getprotoent, setprotoent, endprotoent): New functions.
+ Appropriate replacements for M$-Windows.
+
+ * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
+ these definitions for GUILE_DEBUG.
+
+ * net_db.c: Include "win32-socket.h" if compiling with a native
+ M$-Windows compiler. Include some pieces of code (protoent and
+ servent interface) protected by HAVE_* macros when using a
+ native M$-Windows compiler.
+
+2001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * modules.c (scm_c_export): Do nothing when the first argument is
+ already the terminating NULL. Thanks to Han-Wen Nienhuys!
+
+2001-11-20 Thien-Thi Nguyen <ttn@glug.org>
+
+ * Makefile.am (libpath.h): In SCM_BUILD_INFO,
+ also include `buildstamp'.
+
+2001-11-18 Rob Browning <rlb@defaultvalue.org>
+
+ * version.c
+ (s_scm_major_version): use SCM_MAJOR_VERSION.
+ (s_scm_minor_version): use SCM_MINOR_VERSION.
+ (s_scm_micro_version): use SCM_MICRO_VERSION.
+ (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
+ SCM_MICRO_VERSION.
+
+ * version.h.in
+ (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
+ (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
+ (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
+
+2001-11-18 Neil Jerram <neil@ossau.uklinux.net>
+
+ * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
+ Rewrite docstrings without reference to substring-move-left/right,
+ since the latter no longer exist.
+
+2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c: Removed bogus comment about acros.
+
+ (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
+ Minimize scope of local variable. Eliminate dependency on
+ macro DEBUG_EXTENSIONS.
+
+ (s_splicing): New error message string.
+
+ (scm_m_body): Issue 'bad body' message rather than 'missing
+ expression' message.
+
+ (scm_m_quote): Eliminate unnecessary copying.
+
+ (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
+ checking of the body to scm_m_body.
+
+ (scm_m_do): Move comment to function header. Rename arg1 to
+ binding. Made the code a bit easier to read.
+
+ (evalcar): Removed.
+
+ (iqq): Added a comment. Changed the depth parameter to
+ unsigned. Use size_t for vector lengths. Make sure vector object
+ is gc protected as long as its contents are read. Add some syntax
+ checks. Get rid of unnecessary SCM_IMP test. Clean up the
+ control structure a bit.
+
+ (scm_m_delay): Added comment about the implementation of
+ scm_m_delay.
+
+ (scm_m_define): Add comment about guile's currying define
+ syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
+ DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
+
+ (scm_m_letrec1): Removed. Part of the functionality is taken
+ over by the new function 'transform_bindings'.
+
+ (transform_bindings): New function. Takes over some of the
+ functionality of removed function 'scm_m_letrec1', namely to split
+ a list of bindings into a reversed list of variables and a list of
+ initializers.
+
+ (scm_m_letrec): Call 'transform_bindings'.
+
+ (scm_m_let): Minimized scope of local variables. Renamed 'proc'
+ to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
+ test. Use 'transform_bindings'. Fixed scoping error with named
+ let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
+ Jerram for suggesting the fix). Cleaned up the control structure
+ a bit.
+
+ (scm_m_expand_body): Use 'transform_bindings'. Eliminated
+ unnecessary consing. Eliminated unnecessary
+ SCM_DEFER/ALLOW_INTS.
+
+ (SCM_CEVAL): Un-obfuscated some loops.
+
+2001-11-16 Neil Jerram <neil@ossau.uklinux.net>
+
+ * gc.h (scm_unhash_name): Old declaration removed.
+
+ * eval.c (s_scm_eval): Change @var{primitive-eval} to
+ @code{primitive-eval}.
+
+ * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
+ version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
+ Change @deffnx lines in docstrings to say {Scheme Procedure}
+ rather than primitive or procedure.
+
+ * posix.c (scm_execl), filesys.c (scm_close), unif.c
+ (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
+ scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
+ scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
+ scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
+ (scm_string_split, scm_string_ci_to_symbol), strings.c
+ (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
+ macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
+ Docstring fixes and improvements reflecting edits that have been
+ made in the reference manual source.
+
+ * objprop.c (scm_object_properties, scm_set_object_properties_x,
+ scm_object_property, scm_set_object_property_x): Remove invalid
+ @deffnx lines for corresponding procedure property primitives.
+
+ These changes add a @deffnx C function declaration and function
+ index entries for each Guile primitive to the copy of the doc
+ snarf output that is used for reference manual synchronization.
+ Online help is unchanged.
+
+ * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
+ (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
+ name to SCM_SNARF_DOCS.
+
+ * guile-snarf-docs-texi.in: Pass the shell script's arguments into
+ snarf-check-and-output-texi.
+
+ * Makefile.am (guile-procedures.texi): New rule.
+ (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
+ Changed so that the last stage of doc snarfing is now performed
+ twice, once to produce guile-procedures.txt for online help, and
+ once to produce guile.texi for reference manual synchronization.
+
+2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (RETURN): Wrap in do{}while(0) in order to make it
+ safely usable as a single statement followed by a ';', for example
+ in an if statement.
+
+ (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
+
+2001-11-13 Neil Jerram <neil@ossau.uklinux.net>
+
+ * random.c (scm_random_solid_sphere_x,
+ scm_random_hollow_sphere_x): Correct "shere" typos.
+
+ * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
+
+ * version.c (scm_version): Update docstring to include
+ `micro-version'.
+
+2001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * modules.c (scm_c_export): Call va_end after collecting the
+ symbols.
+
+ * strop.h, strop.c (scm_substring_move_left_x,
+ scm_substring_move_right_x): Removed.
+
+ * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
+ HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
+ configure does.
+
+2001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * numbers.c: Document macros to define when including
+ num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
+ now rely on SIZEOF_ macros that have been figured out at
+ configure time.
+
+ * num2integral.i.c: Adapt to new interface.
+ (NUM2INTEGRAL): Test whether a fixnum can be represented in the
+ target type by casting it and checking whether it is still the
+ same. Do not try to handle bignums for integral types that are
+ smaller than fixnums. When handling bignums, collect the
+ magnituse first into a unsigned type, and correctly check for
+ overflow.
+ (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
+ only -MIN_VALUE can still be negative of all negative numbers (in
+ twos-complement).
+
+ * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
+
+ * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
+ HAVE_LONG_LONG depending on whether their size is non-zero.
+
+2001-11-11 Thien-Thi Nguyen <ttn@glug.org>
+
+ * strop.c (scm_string_null_p): Docfix; nfc.
+ Thanks to Scott Lenser.
+
+2001-11-07 Neil Jerram <neil@ossau.uklinux.net>
+
+ * extensions.c (scm_load_extension): Canonicalize docstring
+ whitespace.
+
+ * unif.c (scm_uniform_array_write), ports.c
+ (scm_current_output_port, scm_force_output), dynwind.c
+ (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
+ filesys.c (scm_open, scm_lstat), struct.c
+ (scm_make_struct_layout), random.c (scm_random,
+ scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
+ (scm_i_index): Remove superfluous whitespace from end of docstring
+ lines.
+
+ * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
+ strings.c (scm_make_string), variable.c (scm_make_variable,
+ scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
+ scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
+ posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
+ (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
+ newline at end of docstrings.
+
+ * modules.c (scm_set_current_module): Add missing newline to
+ docstring.
+
+2001-11-07 Stefan Jahn <stefan@lkcc.org>
+
+ * win32-socket.[ch]: New files. Defines Winsock-API error codes
+ and makes them available through Guile. That is because the
+ Winsock-API does not store its errors in `errno' and thus cannot
+ return error messages via `strerror (errno)'.
+
+ * socket.c (scm_init_socket): Initialize `win32-socket' part
+ here under M$-Windows.
+
+ * numbers.h: Added missing declaration of
+ `scm_sys_check_number_conversions()'.
+
+ * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
+ and use in `(strerror)' and `(system-error)'.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Added
+ `win32-socket.[ch]' to extra source and header files.
+
+2001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
+ a call to turn-on-debugging when --debug has been given instead of
+ turning it on directly. Also, handle new `--no-debug' option,
+ which might suppress the call to turn-on-debugging.
+
+2001-11-05 Stefan Jahn <stefan@lkcc.org>
+
+ * struct.c (s_scm_struct_vtable_p): Corrected docstring.
+
+2001-11-04 Stefan Jahn <stefan@lkcc.org>
+
+ * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
+ here (was at guile_LDADD) which describes the dependency
+ correctly and allows a clean build on Win32.
+
+ * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
+ into FOO.
+
+ * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
+ import macros for external libraries (libcrypt, libqthreads,
+ libreadline and libregex).
+
+ * coop-defs.h: Include <winsock2.h> for `struct timeval'.
+
+ * posix.c (flock): Added support for flock() in M$-Windows.
+
+ * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
+ of __SCM_IMPORT__.
+
+ * fports.c (getflags): Differentiate reading and writing pipes
+ descriptors.
+
+ * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
+ M$-Windows.
+
+ * coop.c (coop_condition_variable_timed_wait_mutex): Use
+ conditionalized error code if `ETIMEDOUT' is not available.
+ (scm_thread_usleep): Remove bogus declaration of `struct timeval
+ timeout'.
+
+ * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
+ belongs. That is because NO_PREPRO_MAGIC gets undefined after
+ each inclusion of `num2integral.i.c'.
+ (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
+
+2001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
+ (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
+
+2001-11-02 Mikael Djurfeldt <mdj@linnaeus>
+
+ * print.c (scm_iprin1): Mark print state as revealed when
+ dispatching to generic write or display.
+
+ * unif.c (scm_ra2contig): Fixed memory overwrite bug.
+
+2001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Support for native Win32. Thanks to Stefan Jahn!
+
+ * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
+ and win32-dirent.h to extra source and header files. These
+ include the uname() and the POSIX dirent interface implementation
+ for M$-Windows. Put `-no-undefined' into LDFLAGS to support
+ linkers which do not allow unresolved symbols inside shared
+ libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
+ dependency.
+
+ * __scm.h: Defined SCM_API. This macro gets prepended to all
+ function and data definitions which should be exported or imported
+ in the resulting dynamic link library in the Win32 port.
+
+ * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
+ chars.h, continuations.h, coop-defs.h, coop-threads.h,
+ debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
+ environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
+ feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
+ gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
+ hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
+ load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
+ objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
+ procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
+ read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
+ smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
+ strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
+ tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
+ vports.h, weaks.h:
+ Prefixed each each exported symbol with SCM_API.
+
+ * continuations.c: Added comment about the use of the extern
+ declarations of {get,set}context() functions used in the ia64 port.
+
+ * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
+ is meant to be a `unsigned long *'.
+
+ * filesys.c: Include `direct.h' if possible. Use local
+ `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
+ macros for M$-Windows. Implementation of `fstat_Win32()' which is
+ able to differentiate between sockets and other file descriptors.
+ Use this function as wrapper in `scm_fstat()'. Fixed typo in
+ `scm_dirname()'.
+
+ * fports.c: Include `io.h' is possible. Put `*fp' into referring
+ statement block in `scm_fport_buffer_add()'.
+ Some corrections in `getflags()'.
+
+ * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
+
+ * guile.c: Make sure to define __SCM_IMPORT__ for shared library
+ build on Win32. Disable preloaded symbols on Win2 platforms.
+
+ * ioext.c, ports.c: Include `io.h' is possible.
+
+ * mkstemp.c: Include `process.h' is possible.
+
+ * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
+ too.
+ Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
+
+ * posix.c: Remove unnecessary dirent includes and defines. Include
+ local `win32-uname.h' for MinGW. Extern declaration of
+ `mkstemp()' for systems where it does not exists. Make
+ `getlogin()' available on M$-Windows.
+
+ * scmsigs.c: Made `usleep()' avalable on MinGW.
+
+ * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
+
+ * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
+
+ * win32-uname.c: Include "win32-uname.h", not "uname.h".
+
+2001-10-28 Mikael Djurfeldt <mdj@linnaeus>
+
+ * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
+ Don't apply scm_uniform_vector_length on arrays.
+
+2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
+ scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
+ scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
+ SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
+ scm_list_<n> over scm_cons[2]?.
+
+ (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
+ scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
+ SCM_C[AD][AD]R instead of explicit form.
+
+ (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
+ comparison parameters.
+
+ (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
+ !SCM_NULLP instead of SCM_NIMP.
+
+ (scm_m_case): Don't copy the form. Renamed proc to clause and
+ minimized its scope. Renamed x to clauses. Removed side
+ effecting operation from macro call.
+
+ (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
+ minimized its scope. Renamed x to clauses. Minimized the scope
+ of variable 'len'. Make sure the else clause is treated specially
+ even in case of '=>' occurences. Don't change the else to #t in
+ order to be able to distinguish this case in the evaluator. Leave
+ type checking of the recipient to the evaluator.
+
+ (scm_c_improper_memq): Made the comment somewhat clearer.
+
+ (scm_m_lambda): Renamed proc to formals. Removed unnecessary
+ test for SCM_IM_LET at the place of the formal parameters.
+ Simplified the formal parameter checking.
+
+ (scm_m_letstar): Added Comment. Renamed proc to bindings.
+ Renamed arg1 to binding and minimized its scope. Eliminated
+ unnecessary consing.
+
+ (scm_m_do): Renamed proc to bindings. Minimized the scope of
+ variable 'len'.
+
+ (build_binding_list): New static function.
+
+ (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
+ Further, split up the 'letrec' unmemoizing code to the
+ corresponding parts for 'do', 'let' and 'letrec', adding comments
+ to each form. Cleanup the handling of the do form (This removes
+ some *real* code :-).
+
+ (SCM_CEVAL): Removed side effecting operation from macro call.
+ Handle the 'else clause of the 'cond form specially - the symbol
+ 'else is not replaced with #t any more.
+
+2001-10-14 Gary Houston <ghouston@arglist.com>
+
+ * version.c (scm_version): use sprintf instead of snprintf,
+ for portability. thanks to Bill Schottstaedt.
+
+2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
+
+ * read.c (scm_lreadr): When user-defined hash procedure returns
+ SCM_UNSPECIFIED: Fall back to standard handling instead of raising
+ an exception. (This prevents parsing of uniform vectors from
+ interfering with parsing of numbers.)
+
+2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
+ PTRDIFF_MIN. Thanks to Ken Raeburn.
+
+2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
+
+ * eval.c (scm_m_atbind): First try to find the variable without
+ defining it locally; when it has not been found, define it
+ locally.
+
+ * modules.c (module_variable): Pass over variables that exist but
+ are unbound.
+
+2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * backtrace.c (display_backtrace_file_and_line): Only use
+ scm_basename when POSIX support is compiled in. Thanks to Chris
+ Cramer.
+
+2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (mem2uinteger): Return number read so far when coming
+ across a hexdigit after having read a # or if not reading a hex
+ value. This will enable the calling code to correctly handle
+ forms like 1e2. (The background is, that the exponent markers d,
+ e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
+ providing this patch.
+
+ (mem2complex): Fix erroneous double-negation. Now, numbers like
+ 1-i will be read correctly.
+
+2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
+
+ * debug.c (scm_mem_to_proc): Fixed typo in previous change.
+
+ * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
+
+2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * print.c (scm_print_state_vtable, print_state_pool):
+ Initialize. These variables are now registered as gc roots.
+
+ (scm_current_pstate): Update documentation.
+
+ (scm_current_pstate, scm_make_print_state, scm_free_print_state,
+ scm_prin1, scm_init_print): print_state_pool is registered as a
+ gc root and thus does not need to be protected by a surrounding
+ pair any more.
+
+ (make_print_state): The car of print_state_pool no longer holds
+ the scm_print_state_vtable.
+
+ (scm_current_pstate, scm_make_print_state, print_circref,
+ scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
+ SCM_N<foo>.
+
+ (scm_prin1): When building lists, prefer scm_list_<n> over
+ scm_cons[2]?.
+
+ (scm_iprlist): Removed a redundant SCM_IMP test.
+
+ (scm_simple_format): Use SCM_EQ_P to compare SCM values.
+
+2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
+
+ (scm_memcons, scm_mem_to_proc): When building lists, prefer
+ scm_list_<n> over scm_cons[2]?.
+
+ (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
+
+ (scm_procedure_name): Use SCM_CADR instead of explicit form.
+
+ (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
+ Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
+ for some reason his patch didn't make it into the cvs.
+
+2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
+ little bit - should even be somewhat more accurate now.
+
+2001-10-08 Rob Browning <rlb@defaultvalue.org>
+
+ * gc.c: support ia64 register backing store.
+ (SCM_MARK_BACKING_STORE): new macro.
+
+ * continuations.h: support ia64 register backing store.
+ (struct scm_t_contregs): add ia64 register backing store.
+
+ * continuations.c: support ia64 register backing store.
+ (continuation_mark): mark ia64 register backing store.
+ (continuation_free): free ia64 register backing store.
+ (scm_make_continuation): capture ia64 register backing store.
+ (copy_stack_and_call): copy ia64 register backing store.
+
+2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
+ is known to be #f if no entry is found. Thus, use !SCM_FALSEP
+ instead of SCM_NIMP to test for that case.
+
+ * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
+ scm_t_bits instead of long.
+
+2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
+ SCM_T_SIGNED_BITS_MIN): New.
+ * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
+ Use them to make these macros computable by the preprocessor.
+
+ * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
+ whether the integral type fits in a fixnum, not the compiler.
+ This removes a spurious compiler warning. Also, honor the
+ NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
+ needed for `long long's.
+
+ * numbers.c: Define NO_PREPRO_MAGOC when including
+ num2integral.c.i for `long long' and `signed long long'.
+
+2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
+
+ These changes fixes a race condition in the Guile coop - pthread
+ compatibility code.
+
+ * coop.c (mother_awake_p): New variable.
+ (coop_create): Set mother_awake_p before creating or signalling
+ mother; wait until mother is going to sleep before returning.
+ (mother): Reset mother_awake_p before going to sleep.
+
+2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * options.c (protected_objects, scm_init_options): The content of
+ protected_objects is now protected from garbage collection using
+ scm_gc_register_root instead of scm_permanent_object.
+
+ (get_option_setting): New static function that computes an option
+ setting as it was formerly done in the function scm_options.
+
+ (get_documented_option_setting): New static function that
+ returns option documentation as it was formerly done in the
+ function scm_options. Note that documentation C strings are no
+ longer precomputed into SCM objects. Instead, they are converted
+ into SCM strings every time get_documented_option_setting is
+ called.
+
+ (change_option_setting): New static functions that modifies the
+ option setting as it was formerly done in the function
+ scm_options. The function is now exception safe, i. e. won't
+ cause a memory leak when interrupted. Further, only non-immediate
+ option values are added to the protection list.
+
+ (scm_options): This function now has only the purpose to dispatch
+ to to get_option_setting, get_documented_option_setting or
+ change_option_setting, depending on the arguments given to
+ scm_options.
+
+ (scm_init_opts): Don't convert documentation C strings into SCM
+ strings. Further, don't protect any object values: They _must_
+ be immediate values, otherwise there is no guarantee that they
+ have not been collected before anyway.
+
+ * options.[ch] (scm_t_option): Made type unsigned, name into a
+ constant char* and val into a scm_t_bits type.
+
+ (scm_options, scm_init_opts): The number of options is guaranteed
+ to be larger or equal to zero. Thus, the type is changed to
+ unsigned.
+
+2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
+ testing an unsigned value for being >= 0.
+
+2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h: Removed old comment about using SCM_CAR to access
+ non-pair cells.
+
+ (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
+ the return value is signed. Thanks to Brian Crowder for the bug
+ report.
+
+ (SCM_SRS): Avoid unnecessary casting and don't unpack input
+ values. With this patch, SCM_SRS can be safely used for other
+ types than scm_t_signed_bits. However, it should still better be
+ an internal macro and thus be renamed to SCM_I_SRS.
+
+ (SCM_MAKINUM, SCM_INUM): Use proper casting.
+
+2001-10-03 Gary Houston <ghouston@arglist.com>
+
+ * continuations.h, unif.h: in the descriptions of the bit patterns
+ of the heap cells, make bit 0 the least significant.
+
+2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
+
+ * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
+ Thanks to Golubev I. N.
+
+2001-09-25 Gary Houston <ghouston@arglist.com>
+
+ * ports.c (scm_drain_input): extended the docstring. thanks to
+ Alex Schroeder and Thien-Thi Nguyen.
+
+2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
+
+ * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
+ SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
+ macros. (The NUM names might soon change.)
+
+ * numbers.h: Added missing declarations.
+
+2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
+
+ * Makefile.am: Distribute num2float.i.c.
+
+ * num2float.i.c: New file, multiply included by numbers.c, used
+ to "templatize" the float <-> num conversion routines.
+
+ * numbers.c: New functions: scm_num2float, scm_float2num,
+ scm_num2double, scm_double2num.
+
+2001-09-21 Rob Browning <rlb@defaultvalue.org>
+
+ * .cvsignore: really add version.h
+
+ * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
+ Otherwise it fails on the alpha. However, we might rather choose
+ this size conditionally.
+
+ * numbers.c (scm_gcd): change "k" to a long from an int.
+ Otherwise it fails on the alpha. However, we might rather choose
+ this size conditionally.
+
+ * error.c (scm_wta): coerce char* to intptr_t before int
+ assignment.
+
+ * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
+ int.
+
+ * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
+
+2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
+
+ * numbers.c (scm_integer_expt): Accept inexact integer in second
+ argument. (Thanks to Bill Schottstaedt.)
+
+2001-09-20 Rob Browning <rlb@defaultvalue.org>
+
+ * .cvsignore: add version.h
+
+ * versiondat.h.in: removed (obsolete).
+
+ * version.h.in: renamed from version.h.
+ (SCM_GUILE_MAJOR_VERSION): new public macro.
+ (SCM_GUILE_MINOR_VERSION): new public macro.
+ (SCM_GUILE_MICRO_VERSION): new public macro.
+
+ * version.h: renamed to version.h.in.
+
+ * version.c
+ (scm_major_version): support integer *_VERSION macros.
+ (scm_minor_version): support integer *_VERSION macros.
+ (scm_micro_version): support integer *_VERSION macros.
+ (scm_version): support integer *_VERSION macros.
+
+2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
+
+ * error.c, error.h: Made error keys globally accessible.
+ Applications might want to test for these or use them in a direct
+ call to scm_error.
+
+ * num2integral.i.c (NUM2INTEGRAL): Report an error when these
+ routines are passed an inexact. This change in behavior is
+ motivated by concordance with R5RS: It is more common that a
+ primitive doesn't want to accept an inexact for an exact.
+
+2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ The following patch partially undoes my patch from 2001-06-30,
+ where I added the function scm_gc_mark_cell_conservatively. The
+ function is buggy, since it breaks guile during conservative
+ marking if a pointer on the stack points directly into the list of
+ free cells on the heap: With conservative cell marking this will
+ cause the whole free list to be scanned and marked - boom!
+
+ * gc.c (allocated_mark, MARK, heap_segment,
+ scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
+ (scm_gc_mark_cell_conservatively): Remove function
+ scm_gc_mark_cell_conservatively and update the corresponding
+ comments and uses accordingly. Thanks to Christopher Cramer for
+ the patch. (Minor corrections by me.)
+
+2001-09-15 Gary Houston <ghouston@arglist.com>
+
+ * root.h (scm_root_state): removed the continuation_stack and
+ continuation_stack_ptr members, which have no apparent purpose.
+ (scm_continuation_stack, scm_continuation_stack_ptr): #defines
+ removed.
+
+ * root.c (root_mark), init.c (restart_stack, start_stack), gc
+ (scm_igc): remove all references to contination_stack and
+ continuation_stack_ptr, avoiding allocation of a vector and
+ useless processing during gc.
+
+2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
+
+ (TCONC_IN): Make sure that the cell word 0 is initialized last.
+
+ (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
+
+ (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
+
+ (guardian_apply, scm_get_one_zombie, scm_make_guardian,
+ mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
+
+2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * guardians.c (mark_dependencies_in_tconc,
+ whine_about_self_centered_zombies, scm_init_guardians): Register
+ the static global variable `self_centered_zombies' via
+ scm_gc_register_root, to make some cdr-ing unnecessary.
+
+2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * backtrace.c (display_backtrace_file,
+ display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
+ values, use SCM_FALSEP when comparing SCM values against #f.
+ Thanks to Rob Browning for the bug report.
+
+2001-09-12 Martin Baulig <martin@home-of-linux.org>
+
+ * strings.[ch] (scm_str2string): New function.
+
+2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gc.c (scm_done_free): Always subtract size from scm_mallocated
+ when computing nm, even if it's negative.
+ (scm_must_malloc): Abort on overflow of scm_mtrigger.
+ (scm_must_realloc): Likewise.
+
+2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
+
+ * numbers.c (scm_sys_check_number_conversions): new function,
+ defined if Guile is compiled in debugging mode. currently checks
+ `scm_num2ulong', should check much much more.
+
+ * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
+ unsigned, ensure that it's positive. thanks to Martin Baulig!
+
+2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h: Added new section about compile time selectable
+ features.
+
+ (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
+ SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
+ SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
+ SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
+ Removed.
+
+ * deprecation.c (scm_include_deprecated_features): Simplified.
+
+ * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
+ `SCM_IMP´ instead of `!SCM_CELLP´.
+
+ * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
+ Extract side-effecting operations from macros.
+
+ (scm_init_eval): Don't initialize *top-level-lookup-closure*,
+ scm_top_level_lookup_closure_var and scm_system_transformer.
+
+ * gc.c (CELL_P): New local definition to replace SCM_CELLP.
+
+ (heap_segment): Use CELL_P instead of SCM_CELLP.
+
+ * init.c (start_stack): Don't initialize
+ scm_top_level_lookup_closure_var and scm_system_transformer.
+
+ * modules.c (scm_set_current_module): Don't access
+ scm_top_level_lookup_closure_var and scm_system_transformer.
+
+ (scm_sym2var): Don't call scm_variable_set_name_hint.
+
+ (scm_post_boot_init_modules): Removed deprecated initializations.
+
+ * print.c (scm_ipruk): Don't access cell contents of non cells.
+
+ * strings.c (scm_string_set_x): All strings are writable.
+
+ * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
+ type. There is only one string type now.
+
+ (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
+
+ * tags.h: Remove comments about two different string types.
+
+ (SCM_CELLP, SCM_NCELLP): Deprecated.
+
+ * variable.c (make_variable): Remove code variant for vcells.
+
+ * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
+ SCM_VARIABLE_LOC): Remove code variant for vcells.
+
+ * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
+ SCM_ENABLE_DEPRECATED with the logic reversed.
+
+ * dynl.c (moddata, registered_mods), dynl.[ch]
+ (scm_register_module_xxx, scm_registered_modules,
+ scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
+ (*top-level-lookup-closure*), eval.[ch]
+ (scm_top_level_lookup_closure_var, scm_system_transformer,
+ scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
+ SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
+ SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
+ SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
+ scm_unprotect_object), modules.c (root_module_lookup_closure,
+ scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
+ beautify_user_module_x_var, try_module_autoload_var,
+ scm_module_full_name), modules.[ch] (scm_the_root_module,
+ scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
+ ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
+ ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
+ scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
+ SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
+ (scm_read_only_string_p, scm_makstr, scm_makfromstr,
+ scm_make_shared_substring), tags.h (scm_tc7_substring,
+ SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
+ scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
+ variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
+ variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
+ Removed.
+
+ * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
+ (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
+ scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
+ scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
+ scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
+ (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
+ scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
+ posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
+ scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
+ scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
+ regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
+ (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
+ (setzone, scm_strftime, scm_strptime), vports.c
+ (scm_make_soft_port): Remove calls to
+ SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
+ gone, all strings are 0-terminated anyway.
+
+ * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
+ SCM_RANDOM_H): Renamed the macros that are defined to inhibit
+ double inclusion of the same headers to the SCM_<filename>_H
+ format.
+
+ * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
+ (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
+ print.c (scm_iprin1): The type scm_tc7_substring does not exist
+ any more.
+
+ * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
+ SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
+ (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
+ !SCM_<foo> over SCM_N<foo>.
+
+2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * Makefile.am: Remove references to symbols-deprecated.c.
+
+ * symbols.c (scm_init_symbols): Don't initialize deprecated
+ symbol functions.
+
+ * symbols-deprecated.c: Removed.
+
+ * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
+ (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
+ (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
+ scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
+ scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
+ (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
+ scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
+ scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
+ (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
+ scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
+ setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
+ (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
+ (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
+ (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
+ SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
+ SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
+ SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
+ scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
+ scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
+ scm_intern0, scm_sysintern, scm_sysintern0,
+ scm_sysintern0_no_module_lookup, 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,
+ scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
+ vectors.[ch] (scm_vector_set_length_x): Removed.
+
+ * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
+ list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
+ (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
+ Renamed the macros that are defined to inhibit double inclusion of
+ the same headers to the SCM_<filename>_H format.
+
+ * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
+ (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
+ SCM_N<foo>.
+
+2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * continuations.h (scm_contregs), debug.h (scm_debug_info,
+ scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
+ (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
+ SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
+ SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
+ scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
+ (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
+ validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
+ SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
+ SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
+ SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
+ SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
+
+ * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
+ (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
+ options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
+ SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
+ srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
+ (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
+ SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
+ double inclusion of the same headers to the SCM_<filename>_H
+ format.
+
+ * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
+ srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
+ validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
+ SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
+ !SCM_<foo> over SCM_N<foo>.
+
+2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
+ arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
+ SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
+ (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
+ SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
+ SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
+ SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
+ environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
+ SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
+ (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
+ SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
+ (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
+ hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
+ ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
+ SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
+ (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
+ (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
+ posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
+ SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
+ ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
+ SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
+ SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
+ SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
+ (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
+ stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
+ SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
+ (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
+ throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
+ SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
+ the macros that are defined to inhibit double inclusion of the
+ same headers to the SCM_<filename>_H format.
+
+2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
+ "scm_t_portable" with "scm_port_table" which was an artifact from
+ the great "scm_*_t -> scm_t_" renaming.
+
+2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
+ used; nfc. Thanks to Bill Schottstaedt.
+
+ * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
+ SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
+ Thanks to Chris Cramer.
+
+2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
+
+ * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
+ dynamic scope.
+ * dynwind.h (scm_swap_bindings): Declare.
+ * dynwind.c (scm_swap_bindings): Make non-static.
+
+2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
+ doing exactly nothing about them). thanks Neil!
+
+2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
+
+ * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
+
+2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * gc.c: Fix omission bug: Add `heap_segment' forward decl
+ (proto) in the case when either `GUILE_DEBUG' or
+ `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
+
+ (map_free_list): Fix typo: Ref `f' correctly.
+
+ Thanks to Chris Cramer.
+
+2001-08-15 Rob Browning <rlb@defaultvalue.org>
+
+ * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
+ variables.
+ (libpath.h): change libguileversion to libguileinterface.
+
+2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
+ ChangeLog-2000. Thanks to Daniel Skarda!
+
+2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
+ do it from the Makefile.
+
+ * Makefile.am: rearrange the snarfing slightly, so that .doc files
+ are of a reasonable size.
+
+2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
+
+ * stacks.c (scm_make_stack): Improve docstring by explaining use
+ of cutting args.
+
+2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
+ scm_char_whitespace_p, scm_char_upper_case_p,
+ scm_char_lower_case_p, scm_char_is_both_p): Do not require
+ characters to fulfill isascii in addition to the primary
+ predicate.
+
+2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
+ scm_istr2flo, scm_istring2number): Removed.
+
+ (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
+ SCM_SLOPPY_<foo>.
+
+ (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
+ mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
+ Added.
+
+ (scm_string_to_number): Use new number parser.
+
+ (scm_exact_to_inexact): Replace dummy by a GPROC, which also
+ handles complex numbers.
+
+ * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
+ SCM_<foo>_H.
+
+ (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
+ SCM_N<pred>.
+
+ (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
+
+ (scm_i_mem2number): Added.
+
+ (scm_exact_to_inexact): Changed signature.
+
+ * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
+ here instead of within scm_i_mem2number. Call scm_i_mem2number
+ instead of scm_istr2int and scm_istring2number.
+
+2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
+ scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
+ SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
+ !SCM_<pred> over SCM_N<pred>.
+
+ (scm_eval_body): Remove side effecting code from macro call.
+
+ (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
+ SCM_NIMP test.
+
+2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
+
+2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Removed vcell slot from structs.
+
+ * struct.h (scm_vtable_index_vcell): Removed. Renumbered
+ subsequent indices.
+
+ * struct.c (scm_struct_vtable_p): Do not check vcell slot for
+ zero. Use scm_vtable_index_layout instead of "0" when accessing
+ said slot.
+ (scm_init_struct): Remove vcell slot layout code from
+ required_vtable_fields.
+
+ * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
+
+ * goops.c (build_class_class_slots): Removed vcell slot
+ definition.
+
+ * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
+ Removed vcell slot layout code.
+ (scm_si_vcell): Removed.
+
+2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
+
+ "Glocs" have been removed.
+
+ * tags.h: Update tag system docs.
+ (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
+ (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
+ (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
+ or SCM_NCONSP, respectively.
+
+ * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
+ objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
+ of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
+
+ * print.c (scm_iprin1): Remove printing of glocs. Do not try to
+ tell glocs from structs.
+
+ * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
+
+ * eval.c (scm_m_atbind): Make a list of variables, not glocs.
+ (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
+ instead of with glocs.
+ (EVALCAR): Do not test for glocs.
+ (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
+ condition.
+ (scm_unmemocar): Do not handle glocs.
+ (scm_m_atfop): Memoize as a variable, not as a gloc.
+ (scm_eval_args, scm_deval_args): Do not handle glocs.
+ (scm_ceval, scm_deval): Likewise.
+
+ * eval.h (SCM_XEVALCAR): Do not test for glocs.
+ (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
+ Removed.
+
+ * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
+
+ * dynwind.c (scm_swap_bindings): Likewise.
+ (scm_dowinds): Updated to recognize lists of variables instead of
+ lists of glocs.
+
+ * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
+
+
+ * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
+ where it is needed.
+
+2001-07-25 Gary Houston <ghouston@arglist.com>
+
+ * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
+ docstrings to reflect the n-ary implementation.
+
+2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
+ value of a variable, not the plain "return" statement.
+
+2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c: Allow variables in memoized code (in addition to glocs).
+ (scm_lookupcar): Handle variables in lost races. Replace symbol
+ with variable directly, do not make a gloc.
+ (scm_unmemocar): Rewrite variables using a reverse lookup, just
+ like glocs.
+ (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
+ the main switch.
+
+2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
+
+ * variable.c (scm_i_variable_print): Use "value" instead of
+ "binding" since a binding is the mapping between symbols and
+ variables, not between variables and their values.
+
+ * tags.h (scm_tc7_variable): New.
+ * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
+ * print.c (scm_iprin1): Likewise.
+
+ * variable.h (scm_tc16_variable): Removed.
+ (SCM_VARIABLEP): Test for new tc7 code.
+ (scm_i_variable_print): New.
+ * variable.c (scm_tc16_variable): Removed.
+ (variable_print): Renamed to scm_i_variable_print and made
+ non-static.
+ (variable_equal_p): Removed.
+ (make_variable): Construct a tc7 object instead of a smob.
+ (scm_init_variable): Do not register smob.
+
+2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * tags.h: Include inttypes.h when we have it.
+
+2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
+ is taken by the new SCM_IM_CALL_WITH_VALUES.
+ * print.c (scm_isymnames): Update table accordingly.
+
+2001-07-22 Gary Houston <ghouston@arglist.com>
+
+ * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
+ SCM_MAKINUM to convert regoff_t value to SCM.
+
+2001-07-21 Gary Houston <ghouston@arglist.com>
+
+ * scmsigs.c: include sys/time.h for itimer stuff.
+
+2001-07-19 Rob Browning <rlb@defaultvalue.org>
+
+ * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
+
+ * c-tokenize.lex: add option %nounput to quiet warning.
+ Add prototype for yylex to quiet warning.
+
+ * scmconfig.h.in: add flags for setitimer and getitimer.
+
+ * scmsigs.h (scm_init_scmsigs): new prototype.
+ (scm_init_scmsigs): new prototype.
+
+ * scmsigs.c (s_scm_setitimer): new function.
+ (s_scm_setitimer): new function.
+
+2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
+ chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
+ feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
+ gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
+ gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
+ guile-func-name-check.in, guile-snarf-docs-texi.in,
+ guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
+ hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
+ objprop.c, objprop.h, options.c, options.h, random.h,
+ regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
+ strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
+ version.c, version.h: Updated copyright notice.
+
+2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
+ sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
+ sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
+ sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
+ sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
+ sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
+ sym_environment, scm_sym_change_class): New static variables to
+ hold predefined symbols.
+
+ (build_class_class_slots): Build the list using scm_list_n
+ instead of cons. Also, slots are already created as lists, thus
+ making a call to maplist unnecessary.
+
+ (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
+ scm_class_direct_subclasses, scm_class_direct_methods,
+ scm_class_precedence_list, scm_class_slots, scm_class_environment,
+ scm_method_procedure, create_standard_classes, purgatory): Use
+ predefined symbols.
+
+ (build_slots_list, compute_getters_n_setters,
+ scm_sys_initialize_object, scm_sys_inherit_magic_x,
+ get_slot_value_using_name, set_slot_value_using_name,
+ scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
+ scm_compute_applicable_methods, scm_sys_method_more_specific_p,
+ make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
+
+ (scm_sys_prep_layout_x): Minimize variable scopes.
+
+ (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
+ scm_sys_fast_slot_set_x): Fix signedness.
+
+ (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
+ lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
+ scm_memoize_method, scm_wrap_object): Use packing and unpacking
+ when converting to and from SCM values.
+
+ (scm_enable_primitive_generic_x): Add rest argument checking.
+
+ (map, filter_cpl, maplist, scm_sys_initialize_object,
+ scm_sys_prep_layout_x, slot_definition_using_name,
+ scm_enable_primitive_generic_x, scm_compute_applicable_methods,
+ call_memoize_method, scm_make, scm_make_class): Prefer explicit
+ predicates over SCM_N?IMP tests.
+
+ (scm_sys_prep_layout_x): Fix typo in error message. Fix type
+ checking.
+
+ (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
+ alias.
+
+2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
+
+ * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
+
+ * symbols-deprecated.c (scm_gentemp): Simplify vector test.
+
+ * vectors.c (scm_vector_p): Eliminate redundant IMP test.
+
+2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
+
+ * strings.c (s_scm_string): fix arg position in assert.
+
+2001-07-11 Gary Houston <ghouston@arglist.com>
+
+ * strports.c (st_write): use memcpy, not strncpy. thanks to
+ Dale P. Smith.
+
+2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
+ boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
+ debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
+ error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
+ filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
+ gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
+ hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
+ lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
+ net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
+ pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
+ procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
+ random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
+ root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
+ sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
+ stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
+ strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
+ symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
+ variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
+ weaks.c, weaks.h: Remove "face-lift" comment.
+
+2001-07-08 Rob Browning <rlb@defaultvalue.org>
+
+ * .cvsignore: add stamp-h.in.
+
+2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * hooks.c (scm_make_hook, scm_add_hook_x),
+ (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
+ value info to the docstrings.
+
+2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ Some more compatibility patches for Windows.
+
+ * posix.c (getlogin): getlogin() implementation for Windows.
+
+ * backtrace.c, ioext.c: Include <stdio.h>.
+
+ * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
+ exist.
+
+ * cpp_sig_symbols.in: Added SIGBREAK.
+
+2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * strports.c (scm_read_0str, scm_eval_0str): Call
+ scm_c_read_string and scm_c_eval_string respectively, not
+ themselves. Thanks to Dale P. Smith!
+
+2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unif.c (scm_array_set_x): The variable args does not
+ necessarily have to be a list. Further, got rid of a redundant
+ SCM_NIMP test.
+
+2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * list.c (SCM_I_CONS): Make sure the cell type is initialized
+ last.
+
+ * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
+ init_heap_seg): Fixed signedness.
+
+ (init_heap_seg): Replaced strange for-loop with a while loop.
+
+ * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
+
+ (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
+
+ The following patch adds conservative marking for the elements of
+ free or allocated cells.
+
+ * gc.c (allocated_mark, heap_segment): New static functions.
+
+ (which_seg): Deleted, since the functionality is now provided by
+ function heap_segment.
+
+ (map_free_list): Use heap_segment instead of which_seg.
+
+ (MARK): If cell debugging is disabled, mark free cells
+ conservatively.
+
+ (scm_mark_locations, scm_cellp): Extracted the search for the
+ heap segment of a SCM value into function heap_segment.
+
+ (scm_init_storage): Allocated cells must be marked
+ conservatively.
+
+ * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
+
+ The following patch changes the representation of weak vectors to
+ double cells instead of using an extension of the vector's
+ allocated memory.
+
+ * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
+ the result of SCM_WVECT_GC_CHAIN.
+
+ (scm_gc_sweep): Weak vectors don't have extra fields any more.
+
+ * weaks.c (allocate_weak_vector): New static function. It does
+ not patch any previously created vector object during the
+ construction of a weak vector, and thus doesn't need to switch
+ off interrupts during vector creation.
+
+ (scm_make_weak_vector, scm_make_weak_key_hash_table,
+ scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
+ Use allocate_weak_vector to provide the new weak vector object.
+
+ * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
+ SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
+ now stored in the double cell.
+
+ (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
+ Use SCM_WVECT_TYPE.
+
+ (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
+ using an entry of the double cell.
+
+2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * stamp-h.in: bye bye
+
+2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
+ scm_eval_0str.
+
+ * load.c, load.h (scm_c_primitive_load,
+ scm_c_primitive_load_path): New.
+
+ * strports.c, strports.h (scm_c_read_string): Renamed from
+ scm_read_0str. Also, added "const" qualifier to argument.
+ (scm_c_eval_string): Renamed from scm_eval_0str.
+ (scm_read_0str, scm_eval_0str): Deprecated.
+
+2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
+ SCM_LIST1.
+
+2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
+ scm_list_n): New functions.
+ (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
+ SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
+ (lots of files): Use the new functions.
+
+ * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
+
+ * strings.c: #include "libguile/deprecation.h".
+
+2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * read.c (scm_lreadr): When reading a hash token, check for a
+ user-defined hash procedure first, so that overriding the builtin
+ hash characters is possible (this was needed for implementing
+ SRFI-4's read synax `f32(...)').
+
+ * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
+ because the latter is unsigned now and breaks comparisons like
+ (n < (scm_t_signed_bits)MIN_VALUE).
+
+2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
+
+ * eval.h, eval.c (scm_call_4): New function.
+
+ * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
+ directly rather than dispatching to them via scm_ithrow and a lazy
+ catch.
+
+ * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
+ SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
+ for trap handler procedures.
+
+ * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
+ procedures not being #f.
+
+2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
+
+ * Makefile.am (c-tokenize.c): add rule to generate it.
+ (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
+
+ filter-doc-snarfage.c: remove.
+
+2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
+
+ The following set of changes makes compiling Guile under various
+ Windows compilers easier. Compilation under GNU systems should
+ not be affected at all.
+
+ Thanks to Stefan Jahn for all necessary information, patches and
+ testing.
+
+ * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
+ getpgrp, ttyname, primitive-fork and some header inclusion for
+ Windows.
+
+ * random.c: Define M_PI, if not predefined and use __int64 for
+ LONG64 under Windows.
+
+ * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
+ Windows and conditionalize some signal names.
+
+ * socket.c (scm_getsockopt): Added missing comma.
+ Include socket library header under Windows.
+
+ * stime.c (CLKTCK): Add cast to int, to make it compile under
+ Windows.
+
+ * ports.c (truncate): New function, compiled only under Windows.
+
+ * net_db.c: Do not declare errno under Windows.
+
+ * iselect.h, inet_aton.c: Include socket library headers under
+ Windows.
+
+ * guile.c (inner_main): Under Windows, initialize socket library
+ and initialize gdb_interface data structures.
+
+ * gdb_interface.h: Under Windows, gdb_interface cannot be
+ initialized statically. Initialize at runtime instead.
+
+ * fports.c (write_all): ssize_t -> size_t.
+ (fport_print): Conditionalize call to ttyname().
+ (getflags): New function, compiled only under Windows.
+
+ * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
+ primitives chown, link, fcntl.
+ (scm_basename, scm_dirname): Under Windows, handle \ as well as /
+ as path seperator.
+
+ * backtrace.c: Include <io.h> under Windows.
+
+ * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
+
+ * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
+ declaration.
+
+2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
+ scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
+ * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
+ scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
+ * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
+ scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
+ (scm_dynamic_wind, scm_dowinds), environments.c
+ (import_environment_conflict), eval.c (scm_macroexp, scm_force,
+ scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
+ goops.c (GETVAR, purgatory, make_class_from_template,
+ scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
+ scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
+ (scm_primitive_load), modules.c (scm_resolve_module,
+ scm_c_define_module, scm_c_use_module, scm_c_export,
+ module_variable, scm_eval_closure_lookup, scm_sym2var,
+ scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
+ ports.c (scm_port_for_each), print.c (scm_printer_apply),
+ properties.c (scm_primitive_property_ref), ramap.c (ramap,
+ ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
+ scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
+ (scm_object_to_string, scm_call_with_output_string,
+ scm_call_with_input_string), throw.c (scm_body_thunk,
+ scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
+ scm_make_shared_array), vports.c (sf_flush, sf_write,
+ sf_fill_input, sf_close): Use one of the above functions.
+ * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
+
+2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * filesys.c (scm_close), ports.c (scm_close_port,
+ scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
+ instead of SCM_NEGATE_BOOL.
+
+ * filesys.c (scm_stat): Clean up type dispatch.
+
+ * filesys.c (scm_stat), ports.c (scm_input_port_p,
+ scm_output_port_p): Get rid of redundant IM type check.
+
+ * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
+ (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
+ scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
+ scm_return_entry), numbers.c (scm_number_to_string), objects.c
+ (scm_make_subclass_object), ports.c (scm_port_mode), read.c
+ (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
+ scm_addr_vector), stime.c (scm_strftime), strings.c
+ (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
+ (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
+ scm_string_split), strports.c (scm_strport_to_string), symbols.c
+ (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
+ instead of scm_makfromstr.
+
+ * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
+ ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
+ scm_read_hash_extend), stime.c (scm_strftime), strings.c
+ (scm_string_append, scm_string), strings.h (SCM_STRINGP,
+ SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
+ (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
+ !SCM_<pred> over SCM_N<pred>.
+
+ * strings.[ch] (scm_makfromstr): Deprecated.
+
+ (scm_mem2string): New function, replaces scm_makfromstr.
+
+ * strings.c (scm_substring), strop.c (string_copy,
+ scm_string_split), strports.c (scm_strport_to_string), symbols.c
+ (scm_symbol_to_string): Fix gc problem.
+
+ * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
+ SCM_<foo>_H.
+
+ * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
+ warning about comparing signed and unsigned values. This fix is
+ not optimal, since it won't work reliably if sizeof (c_start) >
+ sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
+ solution is to define this macro as an inline function, thus
+ allowing to specifiy the types of c_start and c_end.
+
+2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
+ scm_t_debug_frame*.
+
+ * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
+ Rename <foo>H to SCM_<foo>_H.
+
+ * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
+ over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
+
+ (narrow_stack): Make i unsigned. Don't use side-effecting
+ operations in conditions.
+
+ (narrow_stack, scm_make_stack, scm_stack_id,
+ scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
+
+ (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
+ type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
+ more.
+
+ (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
+ signedness.
+
+ (scm_last_stack_frame): Remove bogus `;´.
+
+ * stacks.h (SCM_FRAMEP): Fix type check.
+
+2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
+
+ * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
+ c-tokenize.c when doing maintainer-clean.
+
+ * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
+
+ * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
+ simplify.
+
+ * eval.c: all hash signs are in column 0.
+
+ * Makefile.am (guile_filter_doc_snarfage): build using
+ c-tokenize.c, not filter-doc-snarfage.c.
+ rearrange snarfing dependencies a bit.
+
+ * c-tokenize.lex: new file.
+
+2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
+ scm_t_srcpropso_plist. See the big type renaming.
+ * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
+ Thanks to Seth Alves!
+
+ * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
+ they aren't defined already.
+
+2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
+ and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
+ problem.
+
+ * backtrace.c (display_expression, scm_set_print_params_x,
+ display_application, display_frame, scm_backtrace), numbers.c
+ (scm_istring2number), objects.c (scm_class_of,
+ scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
+ explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
+
+ * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
+ always positive.
+
+ * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
+ unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
+
+ * objects.c (scm_class_of): Type fix.
+
+ (scm_mcache_lookup_cmethod): Improved comment, simplified,
+ eliminated goto.
+
+ * pairs.h (scm_error_pair_access): The function can return if
+ called recursively.
+
+2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * init.c (scm_init_guile_1): Removed initialization of tag.c.
+
+ * gdbint.c, init.c: Removed inclusion of tag.h.
+
+ * tag.h, tag.c: Removed files.
+
+ * Makefile.am: Removed tag.{h,c,doc,x} in various places.
+
+2001-06-20 Gary Houston <ghouston@arglist.com>
+
+ * deprecation.c, extensions.c, rw.c: include string.h.
+
+2001-06-19 Gary Houston <ghouston@arglist.com>
+
+ * filter-doc-snarfage.c (process): added ungetc in
+ MULTILINE_COOKIE case since otherwise it fails when there's no
+ space between the '(' and the quote of the following string
+ (gcc 3.0).
+
+2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
+
+2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
+ extension takes place.
+ * strings.h (SCM_STRING_LENGTH): Likewise.
+ (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
+
+ * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
+ it.
+
+ * tags.h: Include <stdint.h> when we have it.
+ (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
+ available. Else use "unsigned long".
+ (scm_signed_bits_t): New.
+
+ * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
+ (SCM_INUM): Cast result to scm_signed_bits_t.
+
+2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * mkstemp.c: Update path to #include file scmconfig.h.
+ Thanks to Golubev I. N.
+
+2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
+
+ * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
+ the macro definition.
+
+ (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
+ SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
+ instead of SCM_INST_TYPE.
+
+ (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
+ the object is a struct before accessing its struct flags.
+
+ (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
+
+2001-06-10 Gary Houston <ghouston@arglist.com>
+
+ * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
+ (ice-9 rdelim) module in (guile) and (guile-user). it didn't
+ work reliably anymore. try it from boot-9.scm instead.
+
+2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * ports.c (scm_lfwrite): Maintain columnd and row count in port.
+ Thanks to Matthias Köppe!
+
+2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
+
+ * snarf.h, filter-doc-snarfage.c: more changes to cope with
+ space-happy C preprocessors.
+
+ * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
+ inside cookies. thanks to Matthias Köppe!
+
+2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
+ keywords. Fix gc protection.
+
+ * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
+ operations in macro calls.
+
+ * pairs.c (scm_error_pair_access): Avoid recursion.
+
+ Thanks to Matthias Koeppe for reporting the bugs that correspond
+ to the following set of patches.
+
+ * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
+ (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
+ bitvector base address using SCM_BITVECTOR_BASE.
+
+ * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
+ unsigned long*.
+
+2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * goops.c (SCM_CLASS_REDEF): Removed.
+
+ * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
+ SCM_<foo>_H.
+
+ Thanks to Matthias Koeppe for reporting the bugs that correspond
+ to the following set of patches.
+
+ * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
+ create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
+ scm_sys_allocate_instance, clear_method_cache,
+ scm_sys_invalidate_method_cache_x, scm_make,
+ create_standard_classes, scm_make_port_classes, scm_make_class,
+ scm_add_slot): Use SCM_SET_SLOT to set slot values.
+
+ (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
+
+ * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
+
+ * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
+ UNARY_ELTS_CODE): Remove bogus break statement.
+
+ * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
+ Don't access bit vectors elements as SCM objects.
+
+ * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
+ scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
+ Don't assign to an unpacked value.
+
+2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_NORETURN): Moved here from error.h.
+
+ (SCM_UNUSED): New macro.
+
+ (SCM_DEBUG_PAIR_ACCESSES): New macro.
+
+ * backtrace.c (display_error_handler), continuations.c
+ (continuation_print), debug.c (debugobj_print), dynwind.c
+ (guards_print), environments.c (observer_print,
+ core_environments_finalize, leaf_environment_cell,
+ leaf_environment_print, eval_environment_print,
+ eval_environment_observer, import_environment_define,
+ import_environment_undefine, import_environment_print,
+ import_environment_observer, export_environment_define,
+ export_environment_undefine, export_environment_print,
+ export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
+ scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
+ scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
+ scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
+ scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
+ scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
+ (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
+ (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
+ scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
+ gh_init.c (gh_standard_handler), goops.c (get_slot_value,
+ set_slot_value, test_slot_existence, scm_change_object_class,
+ scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
+ default_setter), guardians.c (guardian_print, guardian_gc_init,
+ guardian_zombify, whine_about_self_centered_zombies), guile.c
+ (inner_main), init.c (stream_handler), keywords.c (keyword_print),
+ mallocs.c (malloc_print), numbers.c (scm_print_real,
+ scm_print_complex, scm_bigprint), ports.c (flush_port_default,
+ end_input_default, scm_port_print, fill_input_void_port,
+ write_void_port), root.c (root_print), smob.c (scm_mark0,
+ scm_free0, scm_smob_print, scm_smob_apply_1_error,
+ scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
+ stime.c (restorezone), strings.c (scm_makfromstr), struct.c
+ (scm_struct_free_0, scm_struct_free_standard,
+ scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
+ throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
+ scm_handle_by_throw, scm_ithrow), weaks.c
+ (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
+ scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
+ (scm_dir_print): Mark unused parameters with SCM_UNUSED.
+
+ * error.h (SCM_NORETURN): Moved to __scm.h.
+
+ * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
+ Renamed <foo>H to SCM_<foo>_H.
+
+ * gc.c (debug_cells_gc_interval): New static variable.
+
+ (scm_assert_cell_valid): If selected by the user, perform
+ additional garbage collections.
+
+ (scm_set_debug_cell_accesses_x): Extended to let the user specify
+ if additional garbage collections are desired.
+
+ (mark_gc_async): If additional garbage collections are selected
+ by the user, don't call the after-gc-hook. Instead require the
+ user to run the hook manually.
+
+ * pairs.c (scm_error_pair_access): New function. Only compiled
+ if SCM_DEBUG_PAIR_ACCESSES is set to 1.
+
+ * pairs.h (SCM_VALIDATE_PAIR): New macro.
+
+ (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
+ SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
+ is a real pair object. (Glocs are also accepted, but that may
+ change.) If not, abort with an error message.
+
+2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
+
+ (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
+ to SCM_VALIDATE_NON_EMPTY_COMBINATION.
+
+2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * extensions.c (scm_c_register_extension): Allow NULL as library
+ name.
+ (load_extension): Ignore NULL library names when comparing.
+
+ * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
+ non-pointers are being compared. Thanks to Alexander Klimov!
+
+2001-06-04 Gary Houston <ghouston@arglist.com>
+
+ * rw.c (scm_write_string_partial): new procedure implementing
+ write-string/partial in (ice-9 rw).
+ * rw.h: declare scm_write_string_partial.
+
+2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * keywords.c (keyword_print): Substract 1 from length of symbol
+ name, accounting for the silly dash.
+
+ * dynl.c (scm_registered_modules, scm_clear_registered_modules):
+ Do not emit deprecation warning.
+
+ Added exception notice to all files.
+
+ * dynl.c: Include "deprecation.h".
+
+2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (scm_register_module_xxx, scm_registered_modules,
+ scm_clear_registered_modules): Deprecated.
+
+2001-06-02 Rob Browning <rlb@cs.utexas.edu>
+
+ * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
+ guile-snarf-docs-texi.
+
+ * fports.c: HAVE_ST_BLKSIZE changed to
+ HAVE_STRUCT_STAT_ST_BLKSIZE.
+ (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
+ HAVE_STRUCT_STAT_ST_BLKSIZE.
+
+ * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
+ HAVE_STRUCT_STAT_ST_RDEV.
+ (scm_stat2scm): HAVE_ST_BLKSIZE changed to
+ HAVE_STRUCT_STAT_ST_BLKSIZE.
+ (scm_stat2scm): HAVE_ST_BLOCKS changed to
+ HAVE_STRUCT_STAT_ST_BLOCKS.
+
+2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
+ of scm_eval_x to allow module changes between the forms in the
+ string. Set/restore module using scm_c_call_with_current_module.
+
+ * mkstemp.c: New file, slightly modified from libiberties
+ mkstemps.c.
+
+2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guile-snarf-docs.in, guile-snarf-docs-texi.in,
+ filter-doc-snarfage.c: new files.
+
+ * Makefile.am: add stuff to [build,] use and distribute
+ guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
+
+ * guile-snarf.in: grok the new snarf output.
+
+ * snarf.h: make the output both texttools- and `read'-friendly.
+
+ * guile-doc-snarf.in: reimplement in terms of guile-snarf and
+ guile-snarf-docs. (should also deprecate, I guess. maybe not).
+
+2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * print.c (scm_simple_format): Support "~~" and "~%". Signal
+ error for unsupported format controls and for superflous
+ arguments. Thanks to Daniel Skarda!
+
+ * print.h, print.c (scm_print_symbol_name): Factored out of
+ scm_iprin1.
+ (scm_iprin1): Call it.
+
+ * keywords.c (keyword_print): Use scm_print_symbol_name so that
+ weird names are printed correctly.
+
+ * print.c (scm_print_symbol_name): Symbols whose name starts with
+ `#' or `:' or ends with `:' are considered weird.
+
+2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * numbers.c (scm_difference, scm_divide): Clarified comments for -
+ and /.
+
+2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * debug.h: Removed prototype for scm_eval_string.
+
+2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
+ (make-string 2000 #\!))' in an older version).
+
+ Change strncpy to memcpy to allow embedded NUL characters in
+ symbol prefix.
+
+2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
+
+ * hooks.c (scm_create_hook): deprecated.
+ (make_hook): deleted.
+ (scm_make_hook): all the hook creation code is now here.
+
+ * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
+ a hook, make it permanent, and do a `scm_c_define' on it.
+
+ * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
+
+ * socket.c (s_scm_inet_pton): fix docstring quoting.
+ (s_scm_inet_ntop): ditto.
+
+ * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
+
+ * hashtab.c (scm_internal_hash_fold): fix argument position in
+ SCM_ASSERT.
+
+ * environments.c (s_scm_import_environment_set_imports_x): fix
+ argument position in SCM_ASSERT.
+
+ * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
+ (s_scm_make_iloc): ditto.
+
+2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
+
+ * eval.c (promise_print): Read the promise's value as an object.
+
+ (SCM_CEVAL): Don't perform side-effecting operations in macro
+ parameters.
+
+ * eval.h (SCM_EVALIM2): Fix the typing strictness of the
+ conditional expression.
+
+ * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
+ initializer.
+
+ * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
+ text, removed redundant computation of effective_length and fixed
+ the overflow check.
+
+ * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
+ values.
+
+ (wrap_init): Don't use SCM_C[AD]R for non pairs.
+
+ (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
+
+ * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
+ struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
+
+ * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
+
+ * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
+ SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
+ (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
+ __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
+
+ * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
+
+ * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
+
+ * ramap.c (ramap_rp): Removed bogus `;´.
+
+ * sort.c (scm_restricted_vector_sort_x): Fixed signedness
+ problem.
+
+ * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
+ SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
+ Read SCM objects rather than scm_bits_t values.
+
+ * tags.h (SCM_VOIDP_TEST): Removed.
+
+ (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
+ value of 2 now corresponds to the former 1, the current 1
+ corresponds to the former situation that SCM_VOIDP_TEST was
+ defined.
+
+ (SCM): Now defined as typedef struct scm_unused_struct * SCM;
+ If this appears to be not ANSI compliant, we will change it to
+ typedef struct scm_unused_struct { } * SCM;
+ Thanks to Han-Wen Nienhuys for the suggestion.
+
+ * unif.c (scm_array_set_x): Fix typing problem, and use
+ SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
+ dealing with uniform vectors.
+
+2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
+ (scm_igc): mark from them, too (precisely, not conservatively!).
+
+ * root.h (scm_gc_registered_roots): new object in
+ scm_sys_protects.
+
+ * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
+ `scm_protect_object'. shouldn't call it at all, though, it seems.
+
+ * gc.c (scm_[un]protect_object): deprecated.
+ (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
+ (scm_gc_[un]register_root[s]): new.
+
+ * gc.h: add prototypes for scm_gc_[un]protect_object,
+ scm_gc_[un]register_root[s].
+
+2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
+
+ revert the controversial part of the 2001-05-24 changes.
+
+2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * modules.c (scm_env_module): Exported to Scheme.
+
+ * eval.c (scm_debug_opts): New option `show-file-name'.
+
+ * debug.h (SCM_SHOW_FILE_NAME): New.
+
+ * backtrace.c: Include "libguile/filesys.h".
+ (sym_base, display_backtrace_get_file_line,
+ display_backtrace_file, display_backtrace_file_and_line): New.
+ (display_frame): Call display_backtrace_file_and_line if that is
+ requested.
+ (display_backtrace_body): Call scm_display_backtrace_file if
+ requested.
+
+ * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
+ Prototypes removed since there's no definition for these
+ functions.
+
+2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
+ Changed use of scm_array->scm_array_t and
+ scm_array_dim->scm_array_dim_t to enable build with
+ --disable-deprecated.
+
2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
The purpose of this set of changes is to regularize Guile's usage
of ANSI C integral types, with the following ideas in mind:
- - SCM does not nesessarily has to be long.
+ - SCM does not nesessarily have to be long.
+ - long is not nesessarily enough to store pointers.
- long is not nesessarily the same size as int.
The changes are incomplete and possibly buggy. Please test on
scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
scm_num2size): new functions.
- * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.x
+ * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
* load.c: change int -> size_t in various places (where the
variable is used to store a string length).
* goops.[hc]: various {int,long} -> scm_bits_t changes.
- * gh_data.c (gh_scm2double): no loss of precision any more.
+ * gh_data.c (gh_num2int): no loss of precision any more.
* gh.h (gh_str2scm): len: int -> size_t
(gh_{get,set}_substr): start: int -> scm_bits_t,
(scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
* continuations.c (scm_make_continuation): change the type of
- stack_size form long to scm_bits_t.
+ stack_size from long to scm_bits_t.
* ports.h: type renaming:
scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
(scm_port_t.putback_buf_size): int -> size_t.
* __scm.h (long_long, ulong_long): deprecated (they pollute the
- global namespace and have little value besides that).
+ global namespace and have little value beside that).
(SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
SCM handle).
(ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
- exist (for size_t & ptrdiff_t)
+ exist (for size_t & ptrdiff_t).
(scm_sizet): deprecated.
* Makefile.am (noinst_HEADERS): add num2integral.i.c
`duplicate_string'. Do not use an indirect cell, store symbol
directly in collision list of hash table.
(duplicate_string): Removed.
-
+
* init.c (scm_init_guile_1): Call scm_init_extensions.
* Makefile.am: Add "extensions.c" and related files in all the
* eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
the comments above.
-
+
2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
* throw.c (scm_lazy_catch): Slight docstring clarification.
scm_c_use_module, scm_c_export): New.
(the_root_module): New static variant of scm_the_root_module. Use
it everywhere instead of scm_the_root_module.
-
+
* fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
(scm_c_with_fluids): Renamed from scm_internal_with_fluids.
(scm_c_with_fluid): New.
(scm_with_fluids): Use scm_c_with_fluids instead of
scm_internal_with_fluids.
-
+
* goops.h, goops.c (scm_init_goops_builtins): Renamed from
`scm_init_goops'. Do not explicitly create/switch modules.
Return SCM_UNSPECIFIED.
(scm_init_goops): Only register `%init-goops-builtins' procedure.
(scm_load_goops): Use scm_c_resolve_module instead of
scm_resolve_module.
-
+
* init.c (scm_init_guile_1): Call `scm_init_goops' instead of
`scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
`scm_init_rw' prior to loading the startup files.
Return SCM_UNSPECIFIED.
(scm_init_rdelim): Only register `%init-rdelim-builtins'
procedure.
-
+
* rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
explicitly create/switch modules. Return SCM_UNSPECIFIED.
(scm_init_rw): Only register `%init-rw-builtins' procedure.
2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (scm_init_eval): Initialize scm_undefineds and
- scm_listofnull.
+ scm_listofnull.
* gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
like the SCM_NEWCELL macro counterparts.