+2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c: Use SCM_EQ_P insteda of `==' or `!=' in certain
+ places. (scm_c_improper_memq): Return q instead of SCM_BOOL_T.
+
+ * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
+
+2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
+ `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
+ right places.
+
+ * extensions.h, extension.c: New files.
+
+ * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
+
+ * modules.h (scm_system_module_env_p): Move out of deprecated
+ section.
+
+ * rw.h (scm_init_rw): Added prototype.
+
+ * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
+ scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
+ New functions. They replace scm_make_gsubr and
+ scm_make_gsubr_with_generic. The `make' variants only create the
+ gsubr object, while the `define' variants also put it into the
+ current module. Changed all callers.
+ (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
+
+ * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
+ scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
+ functions. They replace scm_make_subr, scm_make_subr_opt and
+ scm_make_subr_with_generic. The `make' variants only create the
+ subr object, while the `define' variants also put it into the
+ current module. Changed all callers.
+ (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
+ Deprecated.
+
+ * 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.
+
+2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * throw.c: Lazy-catch handlers are no longer allowed to return.
+ Fixed comments throughout.
+ (scm_ithrow): Signal an error when a lazy-catch handler returns.
+ Moved actual jump to jmpbuf into if-branch where the jmpbuf is
+ recognized as such.
+
+ * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
+ refered to s_scm_minor_version previously.
+
+ * modules.h, modules.c: Moved around a lot of code so that
+ deprecated features appear at the bottom.
+ (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
+ module_prefix, make_modules_in_var, beautify_user_module_x_var,
+ scm_the_root_module, scm_make_module, scm_ensure_user_module,
+ scm_load_scheme_module): Deprecated.
+ (scm_system_module_env_p): Return SCM_BOOL_T directly for
+ environments corresponding to the root module.
+ (convert_module_name, scm_c_resolve_module,
+ scm_c_call_with_current_module, scm_c_define_module,
+ 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.
+
+ * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
+ scm_init_rdelim. Do not explicitly create/switch modules.
+ 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.
+
+ * script.c (scm_shell): Evaluate the compiled switches in the
+ current module, not in the root module.
+
+2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c (scm_c_with_fluids): Rename from
+ scm_internal_with_fluids.
+ (scm_internal_with_fluids): Deprecated.
+ (scm_c_with_fluid): New.
+
+2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
+
+ (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
+ accessed with SCM_C[AD]R.
+
+ (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
+
+2001-05-16 Rob Browning <rlb@cs.utexas.edu>
+
+ * version.c (s_scm_major_version): doc fixes.
+ (s_scm_minor_version): doc fixes.
+ (s_scm_minor_version): new function.
+
+ * version.h (scm_init_version): new function.
+
+ * versiondat.h.in: add GUILE_MICRO_VERSION.
+
+2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * deprecation.c (scm_init_deprecation): Renamed
+ GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
+
+2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
+ dependent on cpp_cnvt.awk
+
+2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * script.c (scm_compile_shell_switches): New command line option
+ `--use-srfi' for loading a list of SRFIs on startup.
+ (scm_shell_usage): Added `--use-srfi' to help message.
+
+2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Merged from mvo-vcell-cleanup-1-branch.
+
+ The concept of vcells has been removed from Guile. With it,
+ explicit obarrays and associated operations are gone. Use
+ hashtables instead of obarrays.
+
+ Throughout: use scm_sym2var instead of scm_sym2vcell and treat
+ result as variable instead of vcell. Glocs no longer point to a
+ vcell but to a variable. Use scm_c_define instead of
+ scm_sysintern and treat the result as a variable (which it is),
+ not a vcell.
+
+ * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
+ SCM_DEFVARIABLEP): Deprecated.
+ (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
+ (variable_print): Do not print name of variable.
+ (variable_equalp): Compare values, not vcells.
+ (anonymous_variable_sym): Removed.
+ (make_vcell_variable): Removed.
+ (make_variable): New, as replacement.
+ (scm_make_variable, scm_make_undefined_variable): Do not take name
+ hint parameter.
+ (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
+ error in that case.
+ (scm_builtin_variable): Deprecated.
+
+ * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
+ scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
+ scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
+ scm_sysintern, scm_sysintern0, scm_symbol_value0,
+ scm_string_to_obarray_symbol, scm_intern_symbol,
+ scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
+ scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
+ Deprecated and moved to "symbols-deprecated.c".
+ (copy_and_prune_obarray, scm_builtin_bindings): Removed.
+ (scm_init_symbols): Call scm_init_symbols_deprecated.
+ * symbols-deprecated.c: New file.
+ * Makefile.am: Added symbols-deprecated.c and related files in all
+ the right places.
+
+ * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
+ SCM_GLOBAL_VCELL_INIT): Deprecated.
+ (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
+ SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
+
+ * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
+ SCM_GLOC_SYM.
+
+ * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
+ hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
+ ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
+ socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
+ Changed according to the `throughout' comments.
+
+ * modules.h, modules.c (scm_module_system_booted_p): Changed type
+ to `int'.
+ (scm_module_type): Removed.
+ (the_root_module): Renamed to the_root_module_var. Now points to
+ a variable instead of a vcell. Updated all uses.
+ (scm_the_root_module): Return SCM_BOOL_F when module systems
+ hasn't been booted yet.
+ (SCM_VALIDATE_STRUCT_TYPE): Removed.
+ (scm_post_boot_init_modules): Made static.
+ (scm_set_current_module): Call scm_post_boot_init_modules on first
+ call.
+ (make_modules_in, beautify_user_module_x, resolve_module,
+ try_module_autoload, module_make_local_var_x): Tacked on "_var"
+ suffix. Now point to variables instead of vcells. Updated all
+ uses.
+ (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
+ and return SCM_BOOL_F in that case.
+ (scm_module_transformer): Likewise.
+ (sym_module, scm_lookup_closure_module, scm_env_module): New.
+ (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
+ (scm_eval_closure_lookup): Do not allow new definitions when
+ `interface' flag is set.
+ (scm_standard_interface_eval_closure): New.
+ (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
+ scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
+ scm_c_lookup, scm_c_module_define, scm_c_define,
+ scm_module_reverse_lookup, scm_get_pre_modules_obarray,
+ scm_modules_prehistory): New.
+ (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
+ instead of scm_intern0.
+
+ * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
+ symbol.
+
+ * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
+ hashtable operations to maintain the keywords, not obarray ones.
+
+ * init.c (scm_load_startup_files): Do not call
+ scm_post_boot_init_modules. This is done by
+ scm_set_current_module now.
+ (scm_init_guile_1): Call scm_modules_prehistory. Call
+ scm_init_variable early on.
+
+ * goops.c (s_scm_sys_goops_loaded): Get
+ var_compute_applicable_methods from scm_sym2var, not from a direct
+ invocation of scm_goops_lookup_closure.
+
+ * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
+
+ * gc.c: Added simple debugging hack to mark phase of GC: When
+ activated, do not tail-call scm_gc_mark. This gives nice
+ backtraces.
+ (scm_unhash_name): Removed.
+
+ * feature.c (features): Renamed to features_var. Now points to a
+ variable instead of a vcell. Updated all uses.
+
+ * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
+ `scm_current_module_lookup_closure' which will do the right thing
+ when the module system hasn't been booted yet.
+ (SCM_GLOC_SYM): Removed.
+ (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
+ (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
+
+ * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
+ instead of with vcells. Do not overwrite `var' with the result of
+ the lookup, use the new `real_var' instead. Remove `var2' in
+ exchange (which was only used with threads).
+ (sym_three_question_marks): New.
+ (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
+ `SCM_GLOC_SYM'.
+ (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
+ (scm_m_atfop): Expect the function definition to be a variable
+ instead of a vcell.
+ (scm_macroexp): Do not use `unmemocar', explicitely remember the
+ symbol instead.
+ (scm_unmemocopy): Removed thoughts about anti-macro interface.
+ (scm_eval_args): Use more explicit code in the gloc branch of the
+ atrocious struct ambiguity test. The optimizer will sort this
+ out.
+ (scm_deval_args): Likewise.
+ (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
+ remember the symbol instead. Added some comments where
+ scm_tc3_cons_gloc really exclusively refers to structs.
+ (scm_init_eval): Use scm_define to initialize "nil" and "t" to
+ scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
+ of scm_sysintern in general.
+
+ * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
+ explicit magic.
+
+ * debug.c (s_scm_make_gloc): Only allow proper variables, no
+ pairs. Put the variable directly in the gloc.
+ (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
+ (scm_init_debug): Use scm_c_define instead scm_sysintern.
+
+ * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
+
+ * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
+ scm_the_last_stack_fluid_var. It now points to a variable instead
+ of a vcell. Updated all uses.
+ (scm_has_shown_backtrace_hint_p_var): Now points to a variable
+ instead of a vcell. Updated all uses.
+
+ * _scm.h: Include "variables.h" and "modules.h" since almost
+ everybody needs them now.
+
+ * root.h (scm_symhash, scm_symhash_vars): Removed.
+ * gc.c (scm_init_storage): Do not initialize them.
+
+2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_init_eval): Initialize scm_undefineds and
+ scm_listofnull.
+
+ * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
+ like the SCM_NEWCELL macro counterparts.
+
+ (scm_init_storage, scm_init_gc): Moved initialization of
+ scm_tc16_allocated from scm_init_gc to scm_init_storage.
+
+ (scm_init_storage): Moved initialization of scm_undefineds and
+ scm_listofnull to eval.c, initializion of scm_nullstr to
+ strings.c, initializion of scm_nullvect to vectors.c.
+
+ * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
+ SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
+
+ * init.c (scm_init_guile_1): Reordered some initializations and
+ added dependcy information comments.
+
+ * load.c (scm_init_load): Use scm_nullstr.
+
+ * strings.c (scm_init_strings): Initialize scm_nullstr.
+
+ * vectors.c (scm_init_vectors): Initialize scm_nullvect.
+
+2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * values.c (print_values): Print as a unreadable object, not as
+ multiple lines. Thanks to Matthias Köppe!
+
+2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * deprecation.c: Fixed copyright date.
+
+ * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
+ DEPRECATION_H to SCM_DEPRECATION_H.
+
+2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * guile-doc-snarf.in: Update copyright.
+ Fix relative path bug. Thanks to Sergey Poznyakoff.
+
+2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
+ accept open ports. Thanks to Quetzalcoatl Bradley!
+
+2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
+ has 779 primitives on startup.
+
+2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_i_eval): Copy expression before passing it to
+ SCM_XEVAL. The copy operation was removed unintendedly during my
+ change on 2001-03-25.
+
+2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
+
+ from Matthias Köppe (thanks!):
+
+ * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
+ portable.
+
+ * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
+ docstring.
+
+2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_init_gc): Added FIXME comment.
+
+ * hooks.c: Since hooks don't have a name any more, it is not
+ necessary to include objprop.h.
+
+ (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
+
+ (symbol_name, scm_make_hook_with_name): Removed.
+
+ (scm_create_hook): Don't set the hook's name property.
+
+ * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
+
+ (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
+
+ * init.c (scm_init_guile_1): Hooks don't use objprops any more.
+
+ * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
+ scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
+ FLOBUFLEN and define it unconditionally.
+
+2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gh_data.c (gh_lookup): Call gh_module_lookup with
+ `scm_current_module ()', not `#f'.
+ (gh_module_lookup): Expect a module instead of an obarray as first
+ argument and do lookup in that module.
+
+ * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
+ arrays. The length of array is already determined differently and
+ scm_uniform_vector_length does not work on arrays.
+
+2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
+ as well. "SCM (*)(...)" does not work on RedHat 7.1.
+
+ * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
+ they are not used. Changed `wrong type' error into `wrong num
+ args' error. Changed all callers.
+
+ * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
+ arguments are supplied.
+
+2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
+
+ * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
+ describe `regexp/notbol' and `regexp/noteol' execution flags.
+
+ * strop.c (scm_substring_move_x): Doc fix; nfc.
+
+2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * objects.c, objects.h (scm_valid_object_procedure_p): New.
+ (scm_set_object_procedure_x): Use it to check argument. Fix
+ docstring.
+
+ * evalext.c (scm_definedp): Fix docstring.
+
+2001-05-05 Gary Houston <ghouston@arglist.com>
+
+ * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
+ support.
+
+2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
+
+ * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
+ symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
+ Change R4RS references to R5RS.
+
+ * guile-snarf.awk.in: Fixes so that (i) blank lines in the
+ docstring source are correctly reproduced in the output (ii)
+ we don't anymore get occasional trailing quotes. Also reorganized
+ and commented the code a little.
+
+ * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
+ fixes.
+
+2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * strop.c (scm_string_split): New procedure.
+
+ * strop.h (scm_string_split): Added prototype.
+
+2001-05-04 Gary Houston <ghouston@arglist.com>
+
+ * socket.c: define uint32_t if netdb.h doesn't. thanks to
+ Dale P. Smith.
+
+2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * rw.c: Include "modules.h" and "strports.h".
+
+ * net_db.h (scm_gethost): Added prototype.
+
+ * deprecation.h, deprecation.c: New.
+ * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
+ (DOT_X_FILES): Added "deprecation.x".
+ (modinclude_HEADERS): Added "deprecation.h".
+
+ * init.c: Include "deprecation.h".
+ (scm_init_guile_1): Call scm_init_deprecation.
+
+2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gh.h (gh_init_guile, gh_make_string, gh_string_length,
+ gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
+ New.
+
+2001-04-29 Gary Houston <ghouston@arglist.com>
+
+ * rw.c: new file, implementing C part of module (ice-9 rw).
+ (scm_read_string_x_partial): moved from ioext.c
+ (scm_init_rw): new proc.
+ * rw.h: new file.
+ init.c: include rw.h and call scm_init_rw.
+ Makefile.am: include rw.c and rw.h.
+
+2001-04-28 Rob Browning <rlb@cs.utexas.edu>
+
+ * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
+ know what's supposed to happen to it.
+
+ * list.h (scm_list_star): deprecation expired - removed.
+
+ * numbers.h (scm_dblproc): deprecation expired - removed.
+ (SCM_UNEGFIXABLE): deprecation expired - removed.
+ (SCM_FLOBUFLEN): deprecation expired - removed.
+ (SCM_INEXP): deprecation expired - removed.
+ (SCM_CPLXP): deprecation expired - removed.
+ (SCM_REAL): deprecation expired - removed.
+ (SCM_IMAG): deprecation expired - removed.
+ (SCM_REALPART): deprecation expired - removed.
+ (scm_makdbl): deprecation expired - removed.
+ (SCM_SINGP): deprecation expired - removed.
+ (SCM_NUM2DBL): deprecation expired - removed.
+ (SCM_NO_BIGDIG): deprecation expired - removed.
+
+ * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
+ (scm_tc_dblr): deprecation expired - removed.
+ (scm_tc_dblc): deprecation expired - removed.
+ (scm_tc16_flo): deprecation expired - removed.
+ (scm_tc_flo): deprecation expired - removed.
+
+ * tag.h (scm_tag): deprecation expired - removed.
+
+ * tag.c: (scm_tag): deprecation expired - removed.
+
+ * ioext.c: (scm_fseek): deprecation expired - removed.
+
+ * ioext.h (scm_fseek): deprecation expired - removed.
+
+ * gh_data.c (gh_int2scmb): deprecation expired - removed.
+
+ * gh.h (gh_int2scmb): deprecation expired - removed.
+
+2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
+
+ * stacks.c (scm_make_stack): Fix typo in docstring.
+
+2001-04-27 Rob Browning <rlb@cs.utexas.edu>
+
+ * error.c (scm_sysmissing): deprecation expired - removed.
+
+ * error.h (scm_sysmissing): deprecation expired - removed.
+
+ * gc.c
+ (scm_init_gc): gc-thunk deprecation expired - removed.
+ (scm_gc_vcell): deprecation expired - removed.
+ (gc_async_thunk): scm_gc_vcell related code removed.
+
+ * vectors.h (SCM_NVECTORP): deprecation expired - removed.
+
+ * strings.h
+ (SCM_NSTRINGP): deprecation expired - removed.
+ (SCM_NRWSTRINGP): deprecation expired - removed.
+
+ * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
+
+ * chars.h
+ (SCM_ICHRP): deprecation expired - removed.
+ (SCM_ICHR): deprecation expired - removed.
+ (SCM_MAKICHR): deprecation expired - removed.
+
+ * ports.h
+ (SCM_INPORTP): deprecation expired - removed.
+ (SCM_OUTPORTP): deprecation expired - removed.
+
+2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * modules.c (scm_module_type): New.
+ (scm_post_boot_init_modules): Initialize from Scheme value.
+ (the_module, scm_current_module, scm_init_modules): the_module is
+ now a C only fluid.
+ (scm_current_module): Export to Scheme.
+ (scm_set_current_module): Do not call out to Scheme, do all the
+ work in C. Export procedure to Scheme. Only accept modules, `#f'
+ is no longer valid as the current module. Only set
+ scm_top_level_lookup_closure_var and scm_system_transformer when
+ they are not deprecated.
+ (scm_module_transformer, scm_current_module_transformer): New.
+
+ * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
+ scm_current_module_transformer, scm_module_transformer): New.
+
+ * gh_data.c: Removed FIXME comment about gh_lookup returning
+ SCM_UNDEFINED. That's the right thing to do.
+
+ * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
+ into the conditionally compiled sections.
+ * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
+ scm_current_module_transformer instead of scm_system_transformer.
+ * init.c (start_stack): Move initialization of
+ scm_system_transformer to the deprecated section.
+
+2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
+
+ * throw.c (scm_throw): Correct docstring.
+
+2001-04-22 Gary Houston <ghouston@arglist.com>
+
+ * socket.c: attempted to improve the docstrings slightly.
+
+ * net_db.c: remove bogus "close" declaration.
+ (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
+ scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
+ moved to socket.c.
+ * net_db.h: declarations moved too.
+
+ * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
+ long.
+ (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
+ (VALIDATE_INET6): new macro.
+ (scm_inet_pton, scm_inet_ntop): new procedures, implementing
+ inet-pton and inet-ntop.
+ (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
+ (scm_addr_vector): use ipv6_net_to_num.
+
+2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
+ smob number explicitly. Use SCM_TC2SMOBNUM instead.
+
+ * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
+ when compiled in debug mode.
+
+ (scm_gc_sweep): Only call smob's free function if it is defined.
+
+ * print.c (scm_iprin1): No need to check for validity of smob
+ type or existence of print function.
+
+ * smob.[ch] (scm_smobs): Made into a fixed size global array.
+ Resizing will not work well with preemptive threading.
+
+ * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
+
+ (scm_make_smob_type): Extracted initialization of smob
+ descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
+ of the critical section.
+
+ (scm_smob_prehistory): Initialize all smob descriptors. By
+ default, don't assign a smob free function: Most smob types don't
+ need one.
+
+ * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
+
+2001-04-21 Gary Houston <ghouston@arglist.com>
+
+ * socket.c (FLIP_NET_HOST_128): new macro.
+ (scm_fill_sockaddr): use new macro.
+ (scm_addr_vector): completed IPv6 address support. added const
+ to the address parameter.
+
+2001-04-20 Gary Houston <ghouston@arglist.com>
+
+ * socket.c (scm_fill_sockaddr): call htons for sin6_port.
+ Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
+ is defined.
+ (scm_addr_vector): use a switch instead of multiple if statements.
+ Add support for IPv6 (incomplete) .
+ MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
+
+2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * struct.c (scm_free_structs): Only pairs may be accessed with
+ SCM_C[AD]R.
+
+2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
+
+ * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
+ SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
+ parentheses in order to get the correct associativity.
+
+2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unif.c (scm_array_to_list): Added missing handling of arrays of
+ bytes. Thanks to Masao Uebayashi for the bug report.
+
+2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
+ consistently.
+
+2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * procs.h (SCM_CLOSURE_FORMALS): New macro.
+
+ * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
+ SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
+ procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
+ SCM_CLOSURE_FORMALS.
+
+ * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
+ (scm_i_procedure_arity): Prefer stronger predicates like
+ SCM_NULLP or SCM_FALSEP over SCM_IMP.
+
+ * macros.c (macro_print): Extracted macro printing code from
+ print.c and simplified it.
+
+ (scm_macro_type): Use SCM_MACRO_TYPE;
+
+ (scm_init_macros): Use macro_print for printing macros.
+
+ * print.c (scm_print_opts): Improved option documentation.
+
+ (scm_iprin1): Extracted printing of macros to macros.c.
+ Simplified printing of ordinary closures.
+
+ * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
+ Martin Grabmueller for the bug report.
+
+2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This patch eliminates some further applications of SCM_C[AD]R to
+ non pair cells.
+
+ * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
+ never been applied to real pairs.
+
+ * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
+
+ (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
+
+ * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
+ SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
+ SCM_ARRAY_FLAG_CONTIGUOUS and use it.
+
+ (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
+ Added.
+
+ * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
+ SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
+
+ * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
+ (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
+ SCM_SET{AND,OR}_CAR.
+
+2001-04-17 Gary Houston <ghouston@arglist.com>
+
+ * some initial support for IPv6:
+
+ * socket.c (scm_fill_sockaddr): improve the argument validation.
+ don't allocate memory until all args are checked. instead of
+ unconditional memset of soka, try setting sin_len to 0 if
+ SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
+ (scm_socket, scm_connect): extend docstrings for IPv6.
+ (scm_init_socket): intern AF_INET6 and PF_INET6.
+
+2001-04-17 Niibe Yutaka <gniibe@m17n.org>
+
+ * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
+ matches SCM_DEFER_INTS at the beginning of the function.
+
+ * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
+
+ * gc.c (scm_igc): Unconditionally call
+ SCM_CRITICAL_SECTION_START/END.
+
+ * fluids.c (next_fluid_num): Unconditionally call
+ SCM_CRITICAL_SECTION_START/END.
+ (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
+
+ * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
+ SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
+ Removed.
+
+ * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
+ Defined as nothing for the case of !defined(USE_THREADS).
+ (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
+ Removed.
+ (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
+ (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
+ LINE.
+ (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
+ SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
+ SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
+ SCM_CRITICAL_SECTION_START/END.
+ (SCM_REALLOW_INTS: Bug fix. Don't call
+ SCM_THREAD_SWITCHING_CODE.
+ (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
+ SCM_THREAD_SWITCHING_CODE directly.
+ (SCM_ENTER_A_SECTION): Unconditionally use
+ SCM_CRITICAL_SECTION_START/END. (was:
+ SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
+
+2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
+ macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
+ allowed to explicitly set this macro via the CFLAGS variable
+ during make.
+
+ * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
+ (SCM_THREAD_CRITICAL_SECTION_START,
+ SCM_THREAD_CRITICAL_SECTION_END): Renamed
+ SCM_THREAD_CRITICAL_SECTION_START/END to
+ SCM_CRITICAL_SECTION_START/END.
+
+2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
+ instead of bzero.
+
+ * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
+ (MISSING_BZERO_DECL): Remove the declaration.
+
+ Thanks to NIIBE Yutaka.
+
+2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
+ goops module should be registered in order to work for an
+ application which uses libguile statically linked.)
+
+2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.[ch] (scm_num2long, scm_num2long_long,
+ scm_num2ulong_long, scm_num2ulong): Argument position is an
+ unsigned integer.
+
+ * environments.c (eval_environment_folder,
+ import_environment_folder), gh_data.c (gh_scm2longs,
+ gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
+ for integers and pointers, respectively.
+
+ * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
+ (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
+ (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
+ SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
+
+ * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
+ scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
+ (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
+ (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
+ stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
+ validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
+
+2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
+
+ * strings.c (scm_read_only_string_p): Update docstring to reflect
+ current (non-)usage of "read only" strings.
+ (scm_make_shared_substring): Clarify docstring by changing
+ "semantics" to "arguments".
+
+2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * hooks.c (scm_make_hook, scm_make_hook_with_name),
+ (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
+ improvements.
+
+2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ The following changes make the documentation more consistent.
+
+ * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
+ (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
+ (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
+ (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
+ ... @end lisp.
+
+ * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
+ (scm_array_dimensions, scm_make_shared_array),
+ (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
+ throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
+ (scm_string_rindex, scm_string_index, scm_substring_fill_x),
+ (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
+ (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
+ posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
+ macros.c (scm_makmmacro), list.c (scm_append), environments.c
+ (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
+ @example ... @end example to @lisp ... @end lisp.
+
+ * weaks.c (scm_weak_vector): Corrected docstring.
+
+ * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
+ (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
+ (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
+ (scm_hashx_set_x, scm_hashx_get_handle),
+ (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
+ (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
+ vectors.c (scm_vector_fill_x), strings.c
+ (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
+ objprop.c (scm_set_object_properties_x):
+ (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
+ strports.c (scm_call_with_input_string), ports.c
+ (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
+ list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
+ (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
+ (scm_make_weak_vector,scm_weak_vector_p),
+ (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
+ (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
+ (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
+ macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
+ (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
+ Made parameter names match documentation by renaming parameters
+ and/or fixing docstrings.
+
+ * numbers.c (scm_ash): Corrected Texinfo markup.
+
+ * strop.c (scm_string_index, scm_string_rindex),
+ (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
+
+ * vports.c (scm_make_soft_port), unif.c
+ (scm_uniform_vector_length, scm_array_p, scm_array_rank),
+ (scm_dimensions_to_uniform_array, scm_transpose_array),
+ (scm_array_in_bounds_p, scm_uniform_vector_ref),
+ (scm_bit_count, scm_bit_position, scm_bit_count_star),
+ (scm_array_to_list, scm_list_to_uniform_array),
+ (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
+ (scm_open_input_string, scm_open_output_string),
+ (scm_get_output_string), strop.c (scm_string_copy),
+ (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
+ (scm_get_internal_real_time, scm_times),
+ (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
+ (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
+ (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
+ (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
+ simpos.c (scm_system), random.c (scm_random_uniform),
+ (scm_random_normal, scm_random_exp), ramap.c
+ (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
+ (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
+ (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
+ (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
+ (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
+ (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
+ (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
+ (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
+ (scm_port_closed_p, scm_eof_object_p, scm_read_char),
+ (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
+ (scm_logand, scm_logior, scm_logxor, scm_lognot),
+ (scm_integer_expt, scm_bit_extract, scm_logcount),
+ (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
+ net_db.c (scm_inet_netof, scm_lnaof), modules.c
+ (scm_interaction_environment), macros.c (scm_makacro),
+ (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
+ (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
+ (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
+ (scm_fluid_ref), filesys.c (scm_open_fdes),
+ (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
+ Docstring correction: `Returns' -> `Return'
+
+ * gc.c (scm_set_debug_cell_accesses_x):
+ (s_scm_gc_set_debug_check_freelist_x):
+ * fluids.c (scm_fluid_p): Added texinfo markup.
+
+ * error.c (scm_strerror): Made docstring more precise.
+
+ * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
+ (scm_vector_to_list, _scm_vector_fill_x), symbols.c
+ (scm_symbol_p, scm_symbol_to_string), strorder.c
+ (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
+ (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
+ (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
+ (scm_string_ci_geq_p), strop.c (scm_string_copy),
+ (scm_string_fill_x): Removed `(r5rs)' from docstrings.
+
+2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (MARK): Re-introduce a cheap sanity test for non debug
+ mode, as suggested by Michael Livshin.
+
+2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
+
+ * backtrace.c (display_backtrace_body): since the `print_state'
+ variable is not used (instead its data field is used directly as
+ `pstate'), protect it from the hungry compiler optimizations.
+ thanks to Bill Schottstaedt for the report.
+
+2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
+ It is only defined and used if guile is compiled with
+ SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
+ let cells with a free_cell type tag be visible outside of the
+ garbage collector when in debug mode.
+
+ * gc.c (scm_debug_cell_accesses_p): Set to true as default.
+
+ (scm_assert_cell_valid): Use a local static variable to avoid
+ recursion.
+
+ (MARK): Only check for rogue cell pointers in debug mode. Use
+ scm_cellp for this purpose and place all checks for rogue pointers
+ into that function. Further, since due to conservative scanning
+ we may encounter free cells during marking, don't use the standard
+ cell type accessor macro to determine the cell type.
+
+ (scm_cellp): Check if the cell pointer actually points into a
+ card header.
+
+ (scm_init_gc): Initalize scm_tc16_allocated.
+
+ * gc.h (GCH): Renamed to SCM_GC_H.
+
+ (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
+ might be unnecessary, but I feel better this way :-)
+
+ (SCM_GC_CELL_TYPE): New macro.
+
+ (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
+ in guile, and it is unlikely that they will be applied to real
+ pairs anyway.
+
+ (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
+
+ (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
+ compiled with SCM_DEBUG_CELL_ACCESSES set to true.
+
+ (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
+ make sure that in debug mode no free cell will ever be visible
+ outside of the garbage collector.
+
+2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * async.c (scm_asyncs_pending): Don't use != to compare SCM
+ values.
+
+ * async.c (scm_system_async), variable.c (scm_make_variable,
+ scm_make_undefined_variable): Use scm_cons to create a pair.
+
+ * debug.c (scm_reverse_lookup): Perform proper type checking.
+ Remove suspicious use of SCM_SLOPPY_CONSP.
+
+ * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
+ of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
+ the corresponding optimization.
+
+ * eval.c (iqq): Use proper type check.
+
+ (scm_m_expand_body): Remove redundant type checks.
+
+ (promise_print): Don't access promise cells as pairs.
+
+ * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
+ scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
+ (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
+ for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
+ !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
+
+ * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
+ (scm_iprin1): Use new macro predicate and accessors.
+
+ * eval.h (scm_tc16_macro): Removed declaration. It is declared
+ in macros.h.
+
+ * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
+ (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
+ SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
+ SCM_VARIABLE_H. Even the macros that are used to inhibit
+ including a header file twice should be in the SCM_ namespace.
+
+ * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
+ properties.c (scm_primitive_property_ref,
+ scm_primitive_property_del_x): Prefer stronger predicates like
+ SCM_NULLP or SCM_FALSEP over SCM_IMP.
+
+ * gc.c (MARK): Use proper macros to access procedure-with-setter
+ cell elements and closure cell elements.
+
+ (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
+ access free cells as pairs.
+
+ (scm_unprotect_object): scm_hashq_get_handle returns #f if
+ no hashtab entry is found.
+
+ * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
+ SCM_CLR_PORT_OPEN_FLAG.
+
+ * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
+ use SCM_SET_C[AD]R for uninitialized cells.
+
+ * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
+ If the hashtable has no slots, return #f instead of '(). This
+ unifies the return value with most assoc-functions.
+
+ (scm_hash_fn_ref): Use proper type check.
+
+ (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
+ Removed references to non-existing functions from documentation.
+
+ * keywords.c (scm_keyword_dash_symbol): Use proper macros to
+ access keyword cell elements.
+
+ * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
+ macros.
+
+ * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
+
+ * print.c (scm_iprlist): Added comment. Improved loop
+ conditions.
+
+ * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
+ pairs.
+
+ * smob.c (scm_markcdr): Don't access smob cells as pairs.
+
+ * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
+
+ * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
+ cells as pairs.
+
+ * variable.c (variable_print, variable_equalp, scm_variable_ref,
+ scm_variable_set_x): Use proper macros to access variable cell
+ elements.
+
+ (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
+
+ * variable.h (SCM_VARVCELL): Don't access variable cells as
+ pairs.
+
+ * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
+ added FIXME comment, removed register specifier.
+
+2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
+ * init.c (scm_init_guile_1): Don't init goopscore module.
+
+2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
+
+2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * strop.c (scm_string_to_list): Fixed docstring markup.
+ (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
+ (scm_string_downcase, scm_string_capitalize_x),
+ (scm_string_capitalize): Rewrote and corrected docstrings.
+ (scm_string_ci_to_symbol): Made docstring more explicit.
+
+2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
+ eval.c can use it.
+ (scm_call_with_values): Removed.
+ * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
+ so that it can be exported.
+ (scm_call_with_values): Removed.
+
+ * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
+ * eval.c: Include "libguile/values.h"
+ (scm_m_at_call_with_values, scm_sym_at_call_with_values):
+ New.
+ (unmemocopy, scm_ceval, scm_deval): Handle new isym.
+ * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
+ New delcarations to support above change.
+
+ * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
+ errors with last change.
+
+2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
+ scm_i_eval): Moved the application of the system transformer from
+ scm_i_eval to scm_primitive_eval.
+
+2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
+
+ * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
+
+ * strop.c (scm_string_index): Fix docstring line break
+ regression.
+
+ * list.c (scm_cons_star): Fix docstring typo.
+
+2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
+ (big2str), ports.c (scm_drain_input), read.c (scm_read,
+ scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
+ scm_make_string, scm_string_append), strports.c (st_resize_port,
+ scm_object_to_string), unif.c (scm_make_uve): Replace calls to
+ scm_makstr with calls to scm_allocate_string.
+
+ * strings.[ch] (scm_allocate_string): New function.
+
+ * strings.[ch] (scm_makstr): Deprecated.
+
+2001-03-18 Gary Houston <ghouston@arglist.com>
+
+ * posix.c (scm_tmpnam): check that return value from tmpnam is not
+ NULL. rewrote the docstring.
+ (scm_mkstemp): new procedure implementing "mkstemp!".
+ * posix.h: declare scm_mkstemp.
+
+ * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
+ normally it would be found in netdb.h.
+
+2001-03-17 Gary Houston <ghouston@arglist.com>
+
+ * sort.c (scm_sort): move sortvec variable to avoid a compiler
+ warning when HAVE_ARRAYS is not defined. move len too.
+
+ * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
+ (EXTRA_DOT_X_FILES): let configure set the value.
+ (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
+
+ * gc.c (scm_must_malloc): changed the comment explaining when
+ scm_must variants of malloc/free etc., should be used, based on
+ explanation from Dirk Herrmann.
+ * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
+ string with procedure name. use scm_must_malloc instead of malloc.
+ (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
+ of malloc/free.
+ * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
+ scm_ungetc): use scm_must variants of malloc/realloc/free.
+ (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
+
+2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
+ SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
+ scm_wrong_type_arg instead.
+
+ (SCM_WNA): Deprecated.
+
+ * error.[ch] (scm_wta): Deprecated.
+
+ * numbers.c (s_i_log): Minor comment fix.
+
+ * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
+ scm_make_shared_array, scm_transpose_array, scm_enclose_array,
+ scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
+ wrong-num-args or misc errors.
+
+ * unif.c (scm_make_shared_array, scm_transpose_array,
+ scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
+ Validate the rest argument (note: this is only done when guile is
+ built with SCM_DEBUG_REST_ARGUMENT=1)
+
+ (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
+ Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
+
+ * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
+ SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
+
+2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
+ instead of scm_wrong_num_args.
+
+ * coop-threads.c: Don't include libguile/strings.h. (Was only
+ needed for former implementation of SCM_WRONG_NUM_ARGS.)
+
+ * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
+ wrong-num-args errors.
+
+2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * error.[ch] (scm_error_num_args_subr): New function.
+
+2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
+
+ * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
+ (scm_length, scm_append, scm_reverse, scm_list_ref),
+ (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
+ (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
+ (scm_delete1_x), gc.c (scm_map_free_list),
+ (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
+ (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
+ (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
+ (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
+ (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
+ (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
+ (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
+
+ * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
+ (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
+ rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
+ symbols.c (scm_symbol_interned_p), numbers.c
+ (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
+ markup.
+
2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
* snarf.h (SCM_CONST_LONG): Deprecated.
(scm_num2ulong_long): New.
(ULONG_LONG_MAX): Define if not already defined.
* numbers.h: (scm_num2ulong_long): New prototype.
-
+
2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
* validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
(SCM_OPOUTSTRPORTP): New predicate macros.
(scm_open_input_string, scm_open_output_string),
(scm_get_output_string): New prototypes.
-
+
* strports.c (scm_open_input_string, scm_open_output_string),
(scm_get_output_string): New procedures (SRFI-6 compliant).
Made scm_tc16_strport non-static.
posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
#include <errno.h> in these 20 out of 100 files.
-
+
2001-03-10 Gary Houston <ghouston@arglist.com>
* socket.c: add a definition of SUN_LEN (from glibc) for when it's
regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
- Remove #include <stdio.h>
+ Remove #include <stdio.h>
* gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
* procs.c (scm_make_subr_opt): Init symcell to avoid warning.
function.
* coop-threads.c: Fixed change of 2001-03-06.
-
+
* validate.h: Code formatting.
2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
* socket.c (scm_fill_sockaddr): don't allow buffer overflows when
taking an unexpectedly large filename for an AF_UNIX socket from
bind/connect/sendto (thanks to Martin Grabmueller).
-
+
* socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
former and adjusted the latter.
(scm_socket, scm_socketpair): cosmetic changes.
module around the call to DEFVAR, scm_eval takes care of that.
(scm_init_goops): Make scm_module_goops and
scm_goops_lookup_closure permanent objects.
-
+
* eval.c (scm_ceval, scm_deval): When evaluating expressions on
top level, create a fresh top-level environment for each
expression instead of mutating the exisint frame. This is
scm_random_hollow_sphere_x, scm_random_normal_vector_x,
scm_random_exp), dynwind.c
(scm_dynamic_wind): Removed unnecessary "" from docstrings.
-
+
* goops.c (scm_sys_initialize_object, scm_instance_p,
scm_class_name, scm_class_precedence_list, scm_class_slots,
scm_class_environment, scm_generic_function_name,
Fix evaluator so that top-level expressions are correctly
evaluated with respect to the module system.
-
+
* modules.h. modules.c (scm_current_module_lookup_closure): New
function.
(scm_primitve_eval_x, scm_primitive_eval): New functions.
(scm_eval_x, scm_eval): Reimplement in terms of
scm_primitive_eval_x and scm_primitive_eval, respectively.
-
+
2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
* macros.c (scm_macro_name, scm_macro_transformer): Use
and C names.
(scm_select_module, scm_set_current_module): Likewise. Changed
all uses.
-
+
* ports.c (scm_port_for_each): Make a snapshot of the port table
before iterating over it. The table might change while the user
code is running. With the snapshot, the user can depend on the
2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
from Matthias Köppe:
-
+
* objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
casts its result, so doesn't yield an lvalue per ANSI C.