+2000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_igc): Remove references to scm_vector_set_length_x.
+
+ (scm_gc_sweep): SCM_CONTREGS is never NULL.
+
+ * gc.c (scm_gc_sweep), vectors.c (scm_make_vector): Don't
+ allocate/free memory for zero length vectors.
+
+ * vectors.[ch] (scm_vector_set_length_x): Deprecated.
+
+2000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * alist.c (scm_assq_ref): Add a suggestion about how to deal with
+ this function when the API gets reviewed.
+
+ * async.c (SET_ASYNC_GOT_IT): Use SCM_TYP16 instead of doing bit
+ operations directly.
+
+ * dynl.c (scm_coerce_rostring), filesys.c (scm_link,
+ scm_copy_file), fports (scm_open_file), hash.c (scm_hasher),
+ posix.c (scm_getpwuid), print.c (scm_iprin1), simpos.c
+ (scm_system), strings.c (scm_string_ref, scm_substring,
+ scm_string_append), strop.c (scm_string_copy), struct.c
+ (scm_make_struct_layout), symbols.c (scm_gensym, scm_gentemp),
+ symbols.h (SCM_COERCE_SUBSTR): Use SCM_STRING_LENGTH instead of
+ SCM_ROLENGTH if the object is known to be a string or substring.
+
+ * eval.c (scm_lookupcar): Use SCM_ITAG7 instead of doing bit
+ operations directly.
+
+ * filesys.c (scm_dirname, scm_basename): Don't create shared
+ substrings as these are going to disappear from guile.
+
+ * gc.c (scm_gc_sweep): Use SCM_UVECTOR_LENGTH instead of
+ SCM_HUGE_LENGTH. (The SCM_HUGE_LENGTH mechanism does not work
+ correctly anyway.)
+
+ * gc.h (SCM_FREEP, SCM_NFREEP): Deprecated.
+
+ * read.c (scm_flush_ws): Don't compare SCM values directly.
+
+ * root.c (scm_make_root), root.h (scm_root_state): Removed
+ system_transformer and top_level_lookup_closure_var from struct.
+ (Since eval is now R5RS, binary compatibility is not granted
+ anyway.)
+
+ * simpos.c (scm_system): Fix condition.
+
+ * strings.c (scm_string_length, scm_string_ref, scm_substring,
+ scm_string_append), strop.c (scm_string_copy), struct.c
+ (scm_make_struct_layout, scm_make_vtable_vtable), symbols.c
+ (scm_gensym, scm_gentemp): Replace SCM_VALIDATE_STRINGORSUBSTR
+ with SCM_VALIDATE_STRING, since they do the same thing.
+
+ * strings.h (scm_make_shared_substring): Deprecated.
+
+ * tags.h (SCM_ITAG7): Added.
+
+ * validated.h (SCM_VALIDATE_STRINGORSUBSTR): Deprecated.
+
+2000-10-20 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * init.c (scm_init_guile_1, invoke_main_func): Call
+ scm_load_startup_files in scm_init_guile_1, not in
+ invoke_main_func.
+
+2000-10-18 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * print.c (grow_ref_stack): Pass a INUM to scm_make_vector as the
+ size, not a naked int. Thanks to Brad Knotwell!
+
+ * gc_os_dep.c (GC_noop1, GC_bool, TRUE, FALSE, VOLATILE):
+ Definitions copied from Boehm collector.
+
+2000-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * list.[ch] (scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member):
+ Deprecated.
+
+ (scm_memq, scm_memv, scm_member): Inline the sloppy code.
+
+2000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * alloca.c: Fixed include file path. Thanks to Bruce Korb for
+ the bug report.
+
+2000-10-11 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gc_os_dep.c: Added real implementation based on code from Boehms
+ collector. This is not well tested yet.
+
+ * gc.h (scm_get_stack_base): Added prototype.
+ * init.c (scm_get_stack_base): Removed prototype.
+
+2000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * random.c (scm_seed_to_random_state): Replace SCM_LENGTH with
+ the appropriate SCM_<type>_LENGTH macro.
+
+ (vector_scale, vector_sum_squares, scm_random_solid_sphere_x,
+ scm_random_normal_vector_x): Use scm_uniform_vector_length to
+ determine the length of a vector object generically.
+
+2000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * ramap.c (scm_array_fill_int, scm_array_index_map_x): Replace
+ SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+ (scm_ra_matchp, scm_ramapc, ramap, rafe, scm_array_index_map_x,
+ raeql_1, raeql): Use scm_uniform_vector_length to determine the
+ length of a vector object generically.
+
+2000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unif.c (scm_make_uve, scm_uniform_vector_length, scm_array_p,
+ scm_transpose_array, scm_array_contents, scm_ra2contig,
+ scm_uniform_array_read_x, scm_uniform_array_write, scm_bit_count,
+ scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
+ scm_bit_invert_x, scm_array_to_list, scm_raprin1): Replace
+ SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+ (scm_array_dimensions, scm_make_shared_array, scm_enclose_array,
+ scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x,
+ scm_array_contents, scm_uniform_array_read_x,
+ scm_uniform_array_write, scm_list_to_uniform_array, rapr1): Use
+ scm_uniform_vector_length to determine the length of a vector
+ object generically.
+
+ (scm_bit_count, scm_bit_set_star_x, scm_bit_count_star,
+ scm_bit_invert_x): Eliminated dummy type dispatch.
+
+ (scm_ra2contig): Fixed array vector access.
+
+2000-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unif.h (SCM_BITVECTOR_P, SCM_BITVECTOR_BASE): Added.
+
+ * eval.c (iqq, SCM_CEVAL, SCM_APPLY, check_map_args, scm_map,
+ scm_for_each, scm_copy_tree), gc.c (scm_igc, scm_gc_mark,
+ scm_gc_sweep), gh_data.c (gh_scm2chars), sort.c
+ (scm_restricted_vector_sort_x, scm_sorted_p, scm_sort_x,
+ scm_sort, scm_stable_sort_x, scm_stable_sort), vectors.c
+ (scm_vector_length, scm_vector_ref, scm_vector_set_x,
+ scm_vector_to_list, scm_vector_fill_x, scm_vector_equal_p,
+ scm_vector_move_left_x, scm_vector_move_right_x, ): Replace
+ SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+ * gc.c (scm_gc_sweep): Use SCM_BITVECTOR_BASE for bitvectors.
+
+ * sort.c (scm_restricted_vector_sort_x, scm_sorted_p): Eliminated
+ dummy type dispatch.
+
+ (scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort):
+ Eliminated redundant NIM test.
+
+2000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * filesys.c (fill_select_type, retrieve_select_type, scm_select),
+ gh_data.c (gh_set_substr, gh_scm2chars, gh_scm2shorts,
+ gh_scm2longs, gh_scm2floats, gh_scm2doubles, gh_symbol2newstr),
+ stime.c (bdtime2c), symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
+ scm_intern_obarray_soft, scm_symbol_to_string, scm_intern_symbol,
+ scm_unintern_symbol, copy_and_prune_obarray, scm_builtin_bindings,
+ scm_builtin_weak_bindings), validate.h (SCM_VALIDATE_VECTOR_LEN):
+ Replace SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+ * filesys.c (scm_dirname, scm_basename), gh_data.c (gh_scm2newstr,
+ gh_get_substr), posix.c (scm_putenv), regex-posix.c
+ (scm_regexp_exec), stime.c (setzone), symbols.c
+ (scm_string_to_symbol): Don't accept symbols as input parameters
+ any more.
+
+2000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * continuations.c (scm_make_cont, copy_stack_and_call,
+ scm_dynthrow), environments.c (obarray_enter, obarray_replace,
+ obarray_retrieve, obarray_remove, obarray_remove_all,
+ leaf_environment_fold), fluids.c (grow_fluids, scm_copy_fluids,
+ scm_fluid_ref, scm_fluid_set_x), hash.c (scm_hasher), hashtab.c
+ (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
+ scm_hash_fn_remove_x, scm_internal_hash_fold), ioext.c
+ (scm_read_delimited_x), objects.c (scm_mcache_lookup_cmethod,
+ scm_make_subclass_object), ports.c (scm_unread_string), socket.c
+ (scm_recv, scm_recvfrom), stacks.c (scm_make_stack, scm_stack_id,
+ scm_last_stack_frame), strings.c (scm_string_length,
+ scm_string_set_x), strop.c (scm_substring_move_x,
+ scm_substring_fill_x, scm_string_fill_x, scm_string_upcase_x,
+ scm_string_downcase_x, scm_string_capitalize_x), struct.c
+ (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
+ scm_make_vtable_vtable, scm_struct_ref, scm_struct_set_x), weaks.c
+ (scm_mark_weak_vector_spines, scm_scan_weak_vectors): Replace
+ SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+2000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * print.c (make_print_state, scm_iprin1): Replace SCM_LENGTH with
+ the appropriate SCM_<type>_LENGTH macro.
+
+ (grow_ref_stack): Don't call scm_vector_set_length_x to resize
+ the print stack.
+
+2000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (big2str): Avoid redundant copying.
+
+ (scm_bigprint): Use SCM_STRING_LENGTH instead of SCM_LENGTH.
+
+2000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (big2str), read.c (scm_grow_tok_buf), strports.c
+ (st_resize_port): Don't call scm_vector_set_length_x to resize
+ strings.
+
+ * read.c (scm_lreadr, scm_read_token): Use SCM_STRING_LENGTH for
+ string arguments (instead of SCM_LENGTH).
+
+2000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * continuations.h (SCM_CONTINUATION_LENGTH), strings.h
+ (SCM_STRING_LENGTH), symbols.h (SCM_SYMBOL_LENGTH), unif.h
+ (SCM_UVECTOR_LENGTH, SCM_BITVECTOR_LENGTH), vectors.h
+ (SCM_VECTOR_LENGTH): Added as replacements for SCM_LENGTH.
+
+2000-10-02 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * coop-defs.h (coop_key_create): Don't use the C++ keyword
+ `destructor' in prototype. Thanks to Martin Baulig!
+
+2000-10-02 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guile-func-name-check.in: now should not confuse SCO nawk
+ anymore. thanks to Bruce Korb for the fix!
+
+2000-10-01 Gary Houston <ghouston@arglist.com>
+
+ * net_db.c: declare inet_aton only if HAVE_INET_ATON is not
+ defined. thanks to Han-Wen Nienhuys.
+
+2000-09-30 Gary Houston <ghouston@arglist.com>
+
+ * filesys.c (scm_stat2scm), posix.c (s_scm_mknod): don't use
+ S_ISSOCK or S_IFSOCK if not defined. thanks to Bruce Korb.
+
+2000-09-29 Neil Jerram <neil@ossau.uklinux.net>
+
+ * Makefile.am (guile-procedures.txt): Insert a new rule such that
+ the output from guile-snarf.awk is processed by makeinfo to
+ produce guile-procedures.txt.
+
+ * guile-snarf.awk.in: Modify the way we snarf docstrings such that
+ the output is Texinfo-compliant and suitable for post-processing
+ with makeinfo. (Trim leading "./" from C file name if
+ present; reformat procedure prototype line in @deffn format;
+ improve representation of args to show optional and rest args;
+ explicitly quote quotation marks where they are used inside an AWK
+ regexp.)
+
+ * net_db.c (scm_inet_ntoa): Docstring fix: missing newline
+ inserted.
+
+ * hashtab.c (scm_hashx_create_handle_x, scm_hashx_ref): Insert
+ spaces between C parameters so that the snarfer doesn't coalesce
+ them all into a single very long-named parameter.
+
+2000-09-27 Neil Jerram <neil@ossau.uklinux.net>
+
+ * list.c (scm_append): Use @example texinfo markup in docstring.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * strings.c (scm_string, scm_make_string, scm_string_set_x,
+ scm_string_append), strop.c (scm_string_upcase_x,
+ scm_string_downcase_x), strports.c (st_resize_port), symbols.c
+ (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft,
+ scm_intern_symbol, scm_unintern_symbol), unif.c (scm_cvref,
+ scm_uniform_vector_ref, scm_array_set_x, rapr1): Replace calls to
+ SCM_UCHARS with SCM_STRING_UCHARS or SCM_SYMBOL_UCHARS.
+
+ * symbols.h (SCM_UCHARS): Deprecated.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_gc_sweep): Replace SCM_CHARS by SCM_COMPLEX_MEM.
+
+ * numbers.h (SCM_COMPLEX_MEM): Added as a replacement for
+ SCM_CHARS.
+
+ (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Use it.
+
+ * ramap.c (scm_array_fill_int, racp, raeql_1): Replace SCM_CHARS
+ with SCM_STRING_CHARS or SCM_UVECTOR_BASE.
+
+ (racp): Fix: Make sure that src and dst types match.
+
+ * read.c (scm_grow_tok_buf, scm_lreadr, scm_read_token): Replace
+ SCM_CHARS with SCM_STRING_CHARS.
+
+ * symbols.h (SCM_CHARS): Deprecated.
+
+ * unif.c (scm_enclose_array, scm_uniform_vector_ref, scm_cvref,
+ scm_array_set_x, scm_uniform_array_read_x, rapr1, freera,
+ scm_uniform_array_write): Replace SCM_CHARS with
+ SCM_STRING_CHARS, SCM_UVECTOR_BASE or SCM_ARRAY_MEM.
+
+ * unif.h (SCM_ARRAY_MEM): Added as a replacement for SCM_CHARS.
+
+ (SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS): Use it.
+
+ * validate.h (SCM_COERCE_ROSTRING): Removed.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_igc): : Eliminate references to SCM_LENGTH and
+ SCM_CHARS from comment.
+
+ (scm_gc_mark, scm_gc_sweep): Replace SCM_CHARS with
+ SCM_SYMBOL_CHARS or SCM_CCLO_BASE or SCM_UVECTOR_BASE or
+ SCM_BDIGITS, and replace SCM_VELTS with SCM_VECTOR_BASE or
+ SCM_CONTREGS, according to the corresponding types.
+
+ (scm_gc_sweep): Simplify sweeping of uniform vectors.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * procs.h (SCM_CCLO_LENGTH, SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE,
+ SCM_SET_CCLO_BASE, SCM_CCLO_REF, SCM_CCLO_SET, SCM_CCLO_SUBR,
+ SCM_SET_CCLO_SUBR): Added resp. changed such that none of the
+ macros SCM_CHARS, SCM_SETCHARS, SCM_VELTS and SCM_LENGTH have to
+ be used with compiled closures any more.
+
+ * procs.c (scm_makcclo), gsubr.h (SCM_GSUBR_TYPE, SCM_GSUBR_PROC):
+ Replace uses of SCM_CHARS, SCM_SETCHARS and SCM_VELTS with regards
+ to compiled closures.
+
+ * gsubr.h (SCM_SET_GSUBR_TYPE, SCM_SET_GSUBR_PROC): Added.
+
+ * gsubr.c (scm_make_gsubr): Use them.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_adjbig): Use SCM_BDIGITS instead of SCM_CHARS.
+
+ (big2str, scm_bigprint): Use SCM_STRING_CHARS instead of
+ SCM_CHARS.
+
+ * vectors.c (scm_vector_set_length_x): Distinguish between
+ strings, scheme vectors and uniform vectors, thus getting rid of
+ references to SCM_CHARS. (The code still needs improvement.)
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_m_letrec1, SCM_CEVAL, SCM_APPLY): Use
+ SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS instead of SCM_U?CHARS.
+
+ * unif.h (SCM_UVECTOR_BASE), vectors.h (SCM_VECTOR_BASE): Added
+ as replacements for SCM_CHARS and SCM_VELTS.
+
+2000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * continuations.c (scm_make_cont, scm_dynthrow), print.c
+ (scm_iprin1), stacks.c (scm_make_stack, scm_stack_id,
+ scm_last_stack_frame): For continuations, use SCM_CONTREGS
+ instead of SCM_CHARS.
+
+ * coop-threads.c (scm_threads_mark_stacks): Eliminate references
+ to SCM_LENGTH and SCM_CHARS from comments.
+
+ * dynl.c (scm_dynamic_link, scm_dynamic_func), symbols.h
+ (SCM_ROCHARS, SCM_ROUCHARS): Cleanly distinguish between string
+ and symbol arguments.
+
+ * hash.c (scm_hasher), keywords.c (prin_keyword), objects.c
+ (scm_make_subclass_object), print.c (scm_iprin1), regex-posix.c
+ (scm_regexp_error_msg), stime.c (bdtime2c, scm_strftime), struct.c
+ (scm_struct_init, scm_struct_vtable_p, scm_struct_ref,
+ scm_struct_set_x): Use SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS
+ instead of SCM_U?CHARS.
+
+ * strings.h (SCM_STRING_UCHARS): Added as a replacement for
+ SCM_UCHARS for string arguments.
+
+ * strorder.c: Include strings.h and symbols.h.
+
+ * symbols.h: Replaced SCM_CHARS in comment.
+
+ (SCM_SYMBOL_UCHARS): Added as a replacement for SCM_UCHARS for
+ symbol arguments.
+
+ (SCM_SLOPPY_SUBSTRP): Deprecated.
+
+ * tags.h: Fixed comments not to reference SCM_LENGTH or
+ SCM_CHARS.
+
+2000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_gc_mark, scm_gc_sweep), tags.h: Removed the
+ scm_tc7_lvector type tag.
+
+2000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_m_define), evalext.c (scm_m_undefine): Removed dead
+ code.
+
+ * gc.c (scm_gc_sweep): Use SCM_STRING_CHARS or SCM_SYMBOL_CHARS
+ instead of SCM_CHARS.
+
+2000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * backtrace.c (display_frame_expr), environments.c
+ (print_observer, print_leaf_environment, print_eval_environment,
+ print_import_environment, print_export_environment), gh_data.c
+ (gh_set_substr, gh_symbol2newstr), keywords.c
+ (scm_make_keyword_from_dash_symbol), ports.c (scm_drain_input),
+ posix.c (scm_mknod), print.c (scm_iprin1), regexp-posix.c
+ (scm_regexp_error_msg), script.c (scm_compile_shell_switches),
+ simpos.c (scm_getenv), socket.c (scm_recv, scm_recvfrom),
+ strings.c (scm_makfromstr), strop.c (scm_substring_move_x,
+ scm_substring_fill_x, scm_string_capitalize_x), symbols.c
+ (scm_symbol_to_string), unif.c (scm_make_uve, scm_array_p),
+ validate.h (SCM_VALIDATE_STRING_COPY): Use SCM_STRING_CHARS or
+ SCM_SYMBOL_CHARS instead of SCM_CHARS.
+
+2000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * strings.h (SCM_STRING_CHARS): Added, should be used instead of
+ SCM_CHARS whenever the argument is known to be a string.
+
+ (SCM_SLOPPY_STRINGP): Deprecated.
+
+ * symbols.h (SCM_SYMBOL_CHARS): Added, should be used instead of
+ SCM_CHARS whenever the argument is known to be a symbol.
+
+2000-09-22 Neil Jerram <neil@ossau.uklinux.net>
+
+ * struct.c (scm_make_struct): Fix texinfo warning in docstring by
+ using @pxref rather than @xref.
+
+ * root.c (scm_call_with_dynamic_root): Fix texinfo warning in
+ docstring by using @code for (thunk) rather than @var.
+
+2000-09-20 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * numbers.c (scm_istr2flo): Throw an `out of range' error when
+ exponent is too large instead of returning `#f'. The rationale is
+ that in this case the string represents a valid number but we
+ can't deal with it.
+
+2000-09-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * symbols.c (scm_intern_obarray_soft,
+ scm_sysintern0_no_module_lookup): Make sure that symbol
+ properties initially form an empty list. Thanks to Keisuke
+ Nishida for pointing this out.
+
+2000-09-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * throw.c (scm_handle_by_message): Added a FIXME comment.
+
+ (scm_ithrow): Removed some redundant tests. When compiling on
+ gcc, always add the GCSE bug workaround.
+
+2000-09-14 Gary Houston <ghouston@arglist.com>
+
+ * print.c (scm_iprin1): write the ascii delete character as #\del
+ instead of '#\', so it can be read back. like in SCM.
+
+2000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * symbols.c (duplicate_string): Don't try to copy the byte after
+ the string. This might not be `\0' and might even not be
+ allocated memory.
+
+2000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * symbols.c (scm_symbol_p): Eliminate redundant SCM_IMP test.
+
+2000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This patch unifies the formerly distinct ssymbol and msymbol types
+ to a common symbol type scm_tc7_symbol. The representation of the
+ new symbol type uses a double cell with the following layout:
+ <type/length, chars, raw_hash, prop-pair>, where the car of
+ prop-pair holds the symbol's function property and the cdr of
+ prop-pair holds the symbol's other properties. In the long run,
+ these properties will be removed. Then, the generic property
+ functions will be uses.
+
+ * eval.c (SCM_CEVAL), objects.c (scm_class_of), print.c
+ (scm_iprin1), tag.c (scm_tag): Use scm_tc7_symbol instead of
+ scm_tc7_ssymbol, scm_tc7_msymbol or scm_tcs_symbols.
+
+ * gc.c (scm_gc_mark): Mark the symbols property pair.
+
+ (scm_gc_sweep): There are no symbol slots any more.
+
+ * hash.c (scm_hasher): Instead of re-calculating the hash value
+ of a symbol, use the raw_hash value stored in the symbol itself.
+
+ * properties.h: Fix typo.
+
+ * strings.[ch] (scm_makstr, scm_makfromstr): The slot parameter
+ is not used any more.
+
+ * symbols.[ch] (scm_strhash): Deprecated, replaced by a macro.
+
+ (scm_intern_obarray_soft): Made softness parameter unsigned.
+
+ (scm_string_hash): New function with the same functionality as
+ scm_strhash had before, except that the hash value is not adjusted
+ to a hash table size. Instead, the 'raw' hash value is returned.
+
+ * symbols.c (duplicate_string): New static convenience function.
+
+ (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft):
+ Renamed local variable from scm_hash to hash.
+
+ (scm_intern_obarray_soft): Don't check for a negative softness
+ any more. When generating symbol cells, use the new layout and
+ store the raw hash value in the symbol's cell.
+
+ (scm_symbol_to_string): Removed unnecessary cast.
+
+ (scm_intern_symbol, scm_unintern_symbol): Use scm_string_hash to
+ determine the hash values.
+
+ (msymbolize): Removed.
+
+ (scm_symbol_fref, scm_symbol_pref, scm_symbol_fset_x,
+ scm_symbol_pset_x, scm_symbol_hash): No need to distinguish
+ between different symbol types any more.
+
+ (scm_symbol_hash): Comment fixed.
+
+ * symbols.h: Comment about the distinction between ssymbols and
+ msymbols removed.
+
+ (SCM_SYMBOLP, SCM_ROSTRINGP): No need to distinguish between
+ different symbol types any more.
+
+ (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Added.
+
+ (SCM_SYMBOL_FUNC, SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
+ SCM_SET_SYMBOL_PROPS, SCM_SYMBOL_HASH, SCM_SET_SYMBOL_HASH): Use
+ the new symbol cell layout.
+
+ * tags.h (scm_tc7_ssymbol, scm_tc7_msymbol, scm_tcs_symbols):
+ Deprecated.
+
+2000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * symbols.h (scm_gentemp): Declared.
+
+ * symbols.c (scm_gensym): Reimplemented. Now only takes one
+ optional argument which should be a *string*.
+ (scm_gentemp): Reimplemented and moved from boot-9.scm.
+
+2000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * modules.c: Use applicable smobs for eval closures instead of
+ compiled closures. Include "libguile/smob.h".
+ (f_eval_closure): Removed.
+ (scm_eval_closure_tag): New variable.
+ (scm_eval_closure_lookup): Renamed from eval_closure.
+ This function now takes a smob instead of a compiled closure.
+ (scm_standard_eval_closure): Create a smob instead of a compiled
+ closure.
+ (scm_init_modules): Initialize the eval closure type as a smob.
+ * modules.h (SCM_EVAL_CLOSURE_P): New macro.
+ (scm_eval_closure_tag, scm_eval_closure_lookup): Declare.
+ * symbols.c: Include "libguile/smob.h".
+ (scm_sym2vcell): Call scm_eval_closure_lookup directly if THUNK
+ is an eval closure.
+
+2000-09-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * Makefile.am (.x.doc): Bugfix: Added $(srcdir) to path in order
+ to allow for builds in separate tree.
+
+ * symbols.c (scm_gensym): Bugfixed my previous bugfix. (Thanks to
+ Dale P. Smith.)
+
+2000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * eval.c (SCM_APPLY): Fixed bugs in the applicable-smob calls.
+
+2000-09-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * environments.c (obarray_enter, obarray_retrieve,
+ obarray_remove): Make sure the hash value is a valid obarray
+ index.
+
+ (obarray_enter, obarray_remove): Documentation improved.
+
+ (obarray_replace): Added.
+
+ (leaf_environment_define, leaf_environment_undefine): Cleaned up
+ and optimized.
+
+2000-09-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * symbols.c (scm_gensym): Check that argument is a symbol, not a
+ string. (Thanks to Ralf Mattes.)
+
+2000-09-05 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * init.c: Include "libguile/properties.h".
+
+ * gh_data.c (gh_scm2char): Validate that argument is a character.
+
+2000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * environments.h (SCM_IMPORT_ENVIRONMENT_P,
+ SCM_EXPORT_ENVIRONMENT_P): Before fetching the environment
+ functions, make sure that we really got an environment.
+
+2000-09-03 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * validate.h (SCM_VALIDATE_NUMBER_DEF_COPY): New macro.
+
+2000-09-03 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (.x.doc): Pretend to create .doc files from .x files
+ and give explicit dependencies for .x files that depend on
+ generated files. This allows parallel builds. Thanks to Matthias
+ Koeppe!
+
+2000-08-27 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am: Added gc_os_dep.c, properties.c, properties.x,
+ properties.h and properties.doc in the suitable places.
+
+ * init.h (scm_init_guile): New prototype.
+
+ * init.c (scm_init_guile, scm_init_guile_1): New interface for
+ initializing Guile that does return to the caller.
+ (scm_boot_guile_1): Use scm_init_guile_1 to initialize Guile.
+ Do not establish a catch-all, this is no longer needed.
+
+ * root.h (scm_properties_whash): New `sys_protect', used in
+ properties.c.
+
+ * throw.c (scm_ithrow): Perform catch-all handling here when no
+ suitable handler has been found. That way, we don't have to rely
+ on the user establishing a catch-all, which might be difficult for
+ him if he is using scm_init_guile instead of scm_boot_guile.
+
+2000-09-03 Neil Jerram <neil@ossau.uklinux.net>
+
+ * vectors.c (scm_vector): Docstring: add @deffnx line for
+ list->vector.
+
+ * unif.c (scm_uniform_vector_ref): Docstring: add @deffnx line for
+ array-ref.
+ (scm_array_set_x): Docstring: add @deffnx line for
+ uniform-array-set!.
+
+ * symbols.c (scm_symbol_to_string): Docstring: complete an
+ incomplete Texinfo reference to a node in r4rs.texi.
+ (scm_symbol_to_string): Escape double quotes correctly within
+ docstring.
+
+ * struct.c (scm_make_struct, scm_make_vtable_vtable): Docstring
+ fixes: `@dots' changed to `@dots{}'.
+
+ * strop.c (scm_substring_move_x): Docstring: add @deffnx lines for
+ substring-move-left! and substring-move-right!.
+
+ * strings.c (scm_string): Docstring: add @deffnx line for
+ list->string.
+
+ * stime.c (scm_strptime): Fix spelling mistake in docstring.
+ (scm_current_time): Docstring fix: insert missing newline.
+
+ * socket.c (scm_recvfrom): Docstring format fix: missing newline
+ inserted.
+
+ * ramap.c (scm_array_copy_x): Docstring: add @deffnx line for
+ array-copy-in-order!.
+ (scm_array_map_x): Docstring: add @deffnx line for
+ array-map-in-order!.
+
+ * posix.c (scm_mknod): Docstring format fix: missing newlines
+ inserted.
+
+ * modules.c (scm_interaction_environment): Docstring fix: add
+ newlines.
+
+ * eval.c (scm_cons_source): Added newly written docstring.
+
+2000-09-03 Michael Livshin <mlivshin@bigfoot.com>
+
+ the following changes let Guile get rid of the `allocated' cell
+ state.
+
+ * smob.c (scm_smob_prehistory): don't init the "allocated" smob
+ type.
+
+ * tags.h (scm_tc16_allocated): removed.
+
+ * gc.h: removed now-obsolete comments about the `allocated' cell
+ state.
+ (SCM_NEWCELL): don't change cell type to `allocated'.
+ (SCM_NEWCELL2): ditto.
+
+ * gc.c (scm_mark_locations): mark freecells too, and don't worry
+ about any possible false positives.
+ (scm_debug_newcell): don't change cell type to `allocated'.
+ (scm_debug_newcell2): ditto.
+ (scm_gc_for_newcell): ditto.
+ (scm_gc_mark): remove the tc16_allocated case.
+
+2000-08-26 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * gdbint.c (gdb_print): Removed superfluous macro definition.
+
+ * objects.c (scm_init_objects), print.c (scm_init_print), struct.c
+ (scm_init_struct): First arg to scm_make_vtable_vtable should be a
+ string, not a symbol. (`make-vtable-vtable' needs to append this
+ string to another string and then pass it through
+ `make-struct-layout'.)
+
+ * stacks.c (scm_init_stacks): Pass a string, not a layout object,
+ to scm_make_vtable_vtable. (Thanks to Dale P. Smith.)
+
+ * struct.c (scm_make_struct_layout): Removed reference to
+ "read-only string" in comment; Check that argument is a string.
+ (scm_make_vtable_vtable): Check that argument is a string.
+
+ * environments.c (scm_init_environments): All internal includes in
+ libguile must use the prefix "libguile/" in path names since inly
+ the top-level source directory is on the include list. (That, in
+ turn, is because we want to distinguish between system header
+ files and hedares files internal to libguile.)
+
+ * strings.c (scm_make_shared_substring, scm_read_only_string_p):
+ Deprecated.
+ (scm_string_length, scm_string_ref, scm_substring,
+ scm_string_append): Don't accept symbols as arguments (R5RS).
+
+2000-08-25 Neil Jerram <neil@ossau.uklinux.net>
+
+ * ports.c (scm_set_port_column_x): Fix docstring so that it
+ mentions set-port-line! rather than set-port-column! twice.
+
+ * guardians.c (scm_make_guardian): Remove spurious . from doc string.
+
+2000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * Makefile.am: Added all necessary environments.* files.
+
+ * init.c: Include environments.h.
+
+ (scm_boot_guile_1): Initialize the environments.
+
+ * environments.[ch]: Added. Most of the credit for these files
+ goes to Jost Boekemeier.
+
+2000-08-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * procprop.c: #include "libguile/smob.h"; handle applicable smobs.
+
+2000-08-24 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * smob.h (scm_smob_descriptor): Added `apply' and `gsubr_type'.
+ * smob.c (scm_make_smob_type): Initialize `apply' and `gsubr_type'.
+ (scm_set_smob_apply): New function.
+ (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
+ scm_smob_apply_3): New functions.
+ * eval.c (SCM_CEVAL, SCM_APPLY): Added dispatch for applicable smobs.
+ * procs.c (scm_procedure_p): Check applicable smobs.
+
+2000-08-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * Makefile.am (BUILT_SOURCES): Experimentally added scmconfig.h
+ also here. (This is supposed to make sure that scmconfig.h is
+ built before all sources in order to prevent that everything has
+ to be rebuilt again. Hope it works---I'm just guessing. :)
+
+ * fluids.c (scm_fluid_set_x): Return SCM_UNSPECIFIED.
+
+2000-08-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gc.c (scm_gc_mark): Don't use GUILE_DEBUG flag to compile in
+ extra tests. (GUILE_DEBUG is only supposed to make extra
+ debugging functions available.)
+
+2000-08-21 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.h (SCM_GC_CARD_N_CELLS): change to be a nice non-confusing
+ constant.
+
+2000-08-19 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.c (scm_gc_sweep): added a `continue' statement that have
+ fallen through the cracks in the merge. thanks to Shuji Narazaki!
+
+ * gc.h: removed some stuff that broke compilation for people and
+ wasn't actually needed anyway.
+
+2000-08-18 Neil Jerram <neil@ossau.uklinux.net>
+
+ * filesys.c (scm_fcntl): Docstring fix - missing newlines inserted.
+
+ * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_sethost,
+ scm_setnet, setproto, setserv): Argument names changed to match
+ doc string.
+
+ * feature.c (scm_program_arguments): New docstring.
+
+ * simpos.c (scm_getenv): Reflow docstring.
+
+ * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Add texinfo markup to
+ docstrings.
+
+ * chars.c (scm_char*): Docstring fixes - texinfo markup.
+
+2000-08-18 Neil Jerram <neil@ossau.uklinux.net>
+
+ * boolean.c (scm_not, scm_boolean_p): Docstring fixes - add
+ texinfo markup and remove trailing newlines.
+
+2000-08-17 Michael Livshin <mlivshin@bigfoot.com>
+
+ this changes the Guile GC to use cards (aka "chunklets").
+ (most of the ideas and some of the code are by Greg Harvey, though
+ the code is probably unrecognizable now. the original chunklet
+ proposal, way back, is by Dale Jordan).
+
+ * tags.h: (SCM_GCTYPE16, SCM_GCCDR, SCM_GC[8]MARKP,
+ SCM_SETGC[8]MARK, SCM_CLRGC[8]MARK): moved from here into gc.h.
+ some (most) of these are probably going to be deprecated.
+
+ * gc.h (SCM_MARKEDP): simplified, there are no different mark bit
+ locations anymore.
+ (SCM_GC_CARD_*, SCM_C_BVEC_*): lots of new macros to deal with
+ cards and bvecs (bit-vectors).
+
+ * gc.c: (scm_default_init_heap_size_*): defined to take cards into
+ account, but keeping more or less the same values as previously.
+ added some simple helper macros.
+ (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK): defined to take cards
+ into account.
+ (BVEC_*, scm_mark_space_t, current_mark_space, mark_space_ptr,
+ current_mark_space_offset, mark_space_head, get_bvec,
+ clear_mark_space): new functions and supporting variables, types
+ and macros that implement mark space management.
+ (scm_igc): clear the mark space (all of it) before beginning the
+ mark phase.
+ (scm_gc_mark): changed the tests for rogue cells, much simplified
+ throughout (no different mark bit locations to worry about now).
+ (scm_mark_locations): don't consider card header cells.
+ (scm_cellp): ditto.
+ (scm_gc_sweep): simplified.
+ (init_heap_seg): changed to take cards into account.
+
+2000-08-16 Michael Livshin <mlivshin@bigfoot.com>
+
+ * stime.c (scm_c_get_internal_run_time): new function, same as
+ scm_get_internal_run_time but returns a long. it's used by the GC
+ for timekeeping, since with scm_get_internal_run_time there is a
+ (extremely theoretical) possibility of consing.
+ (scm_get_internal_run_time): redefined in terms of
+ scm_c_get_internal_run_time.
+
+ * stime.h: added prototype for scm_c_get_internal_run_time.
+
+ * gc.c (scm_gc_stats): add more obscure stats, such as: mark time,
+ sweep time, total marked cells, total swept cells, and number of
+ times GC was invoked.
+ (gc_start_stats): renamed from scm_gc_start, made static, taught
+ to init the new stats.
+ (gc_end_stats): renamed from scm_gc_end, made static, taught to
+ calculate the new stats.
+ (scm_igc): don't call gc_start_stats unless we are sure that we
+ are indeed going to collect. also, added some timekeeping between
+ the mark and sweep phases.
+ (scm_gc_sweep): count number of cells we sweep as we go.
+
+ * gc.h: removed prototypes for scm_gc_{start,end}.
+
+2000-08-13 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
+
+ * alist.c (scm_assq, scm_assv, scm_assoc): Report argument type
+ error for the alist rather than the sublist where the type
+ mismatch is discovered.
+
+2000-08-13 Neil Jerram <neil@ossau.uklinux.net>
+
+ * root.c (s_scm_call_with_dynamic_root): Docstring fix - rogue
+ newline.
+
+2000-08-12 Neil Jerram <neil@ossau.uklinux.net>
+
+ * numbers.c (scm_ash): Docstring fix - missing newlines.
+
+ * ports.c (scm_port_filename): Docstring fix - missing newline.
+
+ * strports.c (scm_eval_string): Docstring fix - missing newline.
+
+ * vports.c (s_scm_make_soft_port): Docstring updated so that
+ example is correct.
+
+ * strop.c: Docstring fixes - quotation marks and backslashes
+ needed quoting.
+
+ * numbers.c (s_scm_logand): Docstring fix - "@end lisp" inserted.
+
+2000-08-11 Neil Jerram <neil@ossau.uklinux.net>
+
+ * macros.c: Remove surplus newlines from end of docstrings.
+
+ * list.c (scm_list_tail): Add @deffnx line to docstring for
+ list-cdr-ref.
+
+ * keywords.c: Docstring improvements in conjunction with new
+ reference manual doc on keywords.
+
+ * error.c (scm_error_scm): Fix texinfo syntax error in
+ docstring. (@code(~S) should be @code{~S}.)
+
+ * dynl.c: Remove surplus newlines from end of docstrings.
+
2000-08-11 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
* eval.c (scm_eval): Backward incompatible change: Now takes an
(scm_module_index_obarray, scm_module_index_uses,
scm_module_index_binder, scm_module_index_eval_closure): New
constants; #include "validate.h".
-
+
* modules.c (scm_module_tag, scm_module_system_booted_p): New
globals.
(scm_post_boot_init_modules): Initialize scm_module_tag.
equal (respectively) to the argument key, not all cells that are
eq, eqv, or equal to the first cell with the argument key. Thanks
to Neil Jerram!
-
+
2000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
* gc.h (SCM_FREE_CELL_CDR, SCM_SET_FREE_CELL_CDR), hooks.c
2000-06-21 Michael Livshin <mlivshin@bigfoot.com>
* guile-doc-snarf.in: use cut instead of sed, that's much much
- faster. also, don't call basename more than needed. and, to gain
- a couple of microseconds more, don't call cat needlessly. (thanks
+ faster. also, don't call basename more than needed. and, to gain
+ a couple of microseconds more, don't call cat needlessly. (thanks
to Brad Knotwell).
2000-06-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
that a chain of Scheme level procedures has been evaluated for
every top-level symbol lookup during the first pass through the
code.
-
+
The following is a kludge which I suggested four years ago, and
which I've repeatedly suggested since. Personally, I've never
been bothered by Guile's slow loading speed, so I thought I would
But since the new environments will be included first in
Guile-1.5, I thought it would make people happy to get the kludge
into 1.4.
-
+
* modules.c: Added #include "libguile/vectors.h";
Added #include "libguile/hashtab.h";
Added #include "libguile/struct.h";
* filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
(SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
- numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
+ numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
Replace SCM_UNPACK_CAR appropriately. Don't access cells via
SCM_{SET}?C[AD]R unless they are known to be cons cells.
cookies anyway. in the long term, it would be nice not to depend
on AWK for anything.)
- * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
+ * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
the previous change to this macros, after deciding to torture the
snarfer instead.
* hashtab.c (scm_hash_fn_create_handle_x): add missing
SCM_REALLOW_INTS before return. I really wonder about the
possible interactions between hashtables, threads & GC. it
- doesn't look healthy at all.
+ doesn't look healthy at all.
2000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
* stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
(ss_handler, handler_message): Make first mandatory rest argument
- of scm_make_stack into a standard mandatory argument.
+ of scm_make_stack into a standard mandatory argument.
* unif.c (scm_transpose_array, scm_enclose_array,
scm_array_in_bounds_p), unif.h (scm_transpose_array,
comparisons of SCM values with integer constants.
* number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
- tests.
+ tests.
2000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
Better modularization of GC extensions through new C level GC
hooks:
-
+
* weaks.c (scm_weaks_prehistory): New function: Add
scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
the new code is not less clear.)
* gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
- calls to malloc debugging functions.
+ calls to malloc debugging functions.
* init.c (scm_boot_guile_1): Added calls to debug-malloc init
functions.
Tue Apr 18 08:22:41 2000 Greg J. Badros <gjb@cs.washington.edu>
- * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE
- when testing high-end of the range. Mikael Djurfeldt noticed this
+ * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE
+ when testing high-end of the range. Mikael Djurfeldt noticed this
anomaly -- thanks Mikael!
2000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
scm_symbol_pset_x): Use them.
- * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
+ * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
2000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
* numbers.c (scm_quotient, scm_modulo): Reordered to handle the
case of immediate numbers parameters first. Also, only use
decoded numbers for numerical comparison.
-
+
2000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* objects.h: Don't redeclare scm_call_generic_0 and