+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 rm@mamma.varadinet.de.)
+ string. (Thanks to Ralf Mattes.)
2000-09-05 Marius Vollmer <mvo@zagadka.ping.de>