+2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes.
+
+ * print.c (scm_isymnames): Add names for the new memoizer codes.
+
+ * eval.c (s_missing_clauses, s_bad_case_clause,
+ s_extra_case_clause, s_bad_case_labels, s_duplicate_case_label,
+ literal_p): New static identifiers.
+
+ (scm_m_case): Use ASSERT_SYNTAX to signal syntax errors. Be more
+ specific about the kind of error that was detected. Check for
+ duplicate case labels. Handle bound 'else. Avoid unnecessary
+ consing when creating the memoized code.
+
+ (scm_m_case, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
+ the syntactic keyword 'else.
+
+2003-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (s_bad_expression, syntax_error_key, syntax_error,
+ ASSERT_SYNTAX, ASSERT_SYNTAX_2): New static identifiers.
+
+ (scm_m_and): Use ASSERT_SYNTAX to signal syntax errors. Avoid
+ unnecessary consing when creating the memoized code.
+
+2003-10-09 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_inexact_to_exact): Don't depend on what double->long
+ cast gives for values bigger than a long, or for nan or inf.
+
+2003-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * smob.h (scm_make_smob_type): Made the declaration match the
+ definition.
+
+2003-10-07 Marius Vollmer <mvo@zagadka.de>
+
+ * goops.c, objects.h, smob.c, smob.h: Make type names char
+ const * instead of char *. Thanks to Paul Jarc!
+
+2003-10-02 Kevin Ryde <user42@zip.com.au>
+
+ * strports.c (scm_call_with_output_string): scm_get_output_string
+ rather than scm_strport_to_string, so as to guard against the port
+ having been closed by the called procedure. Reported by Nic Ferrier.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_INEXACTP): Removed uses of SCM_TYP16S.
+
+ * tags.h, deprecated.h (SCM_TYP16S): Deprecated and moved from
+ tags.h to deprecated.h.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This set of patches introduces a new tc7 code scm_tc7_number for
+ numbers. Bignums, reals and complex numbers are turned from smobs
+ into subtypes of scm_tc7_number.
+
+ * tags.h (scm_tc7_number): New.
+
+ * eq.c (scm_equal_p), eval.c (SCM_CEVAL), evalext.c
+ (scm_self_evaluating_p), gc-card.c (scm_i_sweep_card), gc-mark.c
+ (scm_gc_mark_dependencies), goops.c (create_smob_classes), hash.c
+ (scm_hasher), numbers.c, numbers.h (SCM_NUMP), objects.c
+ (scm_class_of), print.c (scm_iprin1), smob.c
+ (scm_smob_prehistory): Don't handle bignums, reals and complex
+ numbers as subtypes of scm_tc7_smob any more.
+
+ * numbers.h, tags.h (scm_tc16_big, scm_tc16_real,
+ scm_tc16_complex): Moved definitions from tags.h to numbers.h.
+
+2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use
+ sizeof (scm_t_complex) to determine the memory size of the
+ malloc'd area for complex numbers.
+
+2003-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.c (scm_bigequal): Fixed.
+
+2003-09-16 Marius Vollmer <mvo@zagadka.de>
+
+ * stime.c (scm_current_time): 'time' does not set errno so don't
+ use SCM_SYSERROR for reporting errors.
+
+2003-09-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ This set of patches eliminates the dependency between the
+ implementation of evaluator specific memoization codes and special
+ constants like #f, '() etc. ('flags'), which are not evaluator
+ specific. The goal is to remove definitions of evaluator
+ memoization codes completely from the public interface. This will
+ make it possible to experiment more freely with optimizations of
+ guile's internal representation of memoized code.
+
+ * objects.c (scm_class_of): Eliminate dependency on SCM_ISYMNUM.
+
+ * print.c (iflagnames): New array, holding the printed names of
+ guile's special constants ('flags').
+
+ (scm_isymnames): Now holds only the printed names of the
+ memoization codes.
+
+ (scm_iprin1): Separate the handling of memoization codes and
+ guile's special constants.
+
+ * tags.h (scm_tc9_flag, SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA,
+ SCM_IFLAGNUM): new
+
+ (scm_tc8_char, scm_tc8_iloc, SCM_BOOL_F, SCM_BOOL_T,
+ SCM_UNDEFINED, SCM_EOF_VAL, SCM_EOL, SCM_UNSPECIFIED, SCM_UNBOUND,
+ SCM_ELISP_NIL, SCM_IM_DISPATCH, SCM_IM_SLOT_REF,
+ SCM_IM_SLOT_SET_X, SCM_IM_DELAY, SCM_IM_FUTURE,
+ SCM_IM_CALL_WITH_VALUES, SCM_IM_NIL_COND, SCM_IM_BIND): Changed
+ values.
+
+ (SCM_IFLAGP): SCM_IFLAGP now only tests for flags.
+
+ (SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Generalized to use the
+ tc9 macros and scm_tc9_flag.
+
+2003-09-15 Marius Vollmer <mvo@zagadka.de>
+
+ * posix.c (scm_setgroups): Check that the gid list is not too
+ long. Thanks to Paul Jarc!
+
+2003-09-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h: Reduced the number of short instructions from 14 to 13.
+ The typecode of the former 14th short instruction is now used to
+ represent long instructions. Changed some comments to reflect
+ this fact.
+
+ (SCM_MAKISYM): ISYMs get a new tc7 code, namely the one that was
+ previously used by SCM_IM_DEFINE.
+
+ (SCM_IM_DEFINE): Turned into a long instruction.
+
+ * eval.c (unmemocopy, SCM_CEVAL): Treat SCM_IM_DEFINE as a long
+ instruction.
+
+ * eval.c (SCM_CEVAL): Since characters and iflags have now a tc7
+ code that is separate from all instructions, one level of dispatch
+ for long instructions can be eliminated.
+
+ * print.c (scm_isymnames): Removed some commented code.
+
+2003-09-12 Marius Vollmer <mvo@zagadka.de>
+
+ * __scm.h (SCM_FENCE): Use __memory_barrier with the Intel
+ compiler on IA64.
+
+ * hashtab.h (scm_tc16_hashtable): Added "extern" declaration.
+
+ * modules.c (scm_module_reverse_lookup): Check that the obarray
+ really is a hashtable and do nothing if not.
+
+ * inline.h: Use "extern inline" only with GCC. Use "static
+ inline" else.
+
+2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Removed uses
+ of SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
+ * numbers.h, deprecated.h (SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP,
+ SCM_SLOPPY_COMPLEXP): Deprecated and moved from numbers.h to
+ deprecated.h.
+
+2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eq.c (scm_eqv_p, scm_equal_p): Removed uses of
+ SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
+ * eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from
+ 0.0==some_expression to some_expression==0.0. The latter is
+ better readable. The former is preferred by some people, since it
+ leads to a compiler error when confusing == with =. However, when
+ using gcc, a warning will be issued if in an if-statement an
+ assigment appears. Since many Guile developers are using gcc,
+ such errors will not remain unnoticed anyway. We can therefore
+ focus on better readability.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * tags.h: Added description of Guile's type system. Removed some
+ old and misleading comments.
+
+2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * unit.c (scm_cvref): Eliminate unnecessary uses of SCM_NIMP,
+ SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
+
2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
* numbers.h (SCM_MAKINUM): Define in terms of scm_tc2_int.
yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get
a compilation error if error-on-warning is enabled).
->>>>>>> 1.1883
2003-05-17 Marius Vollmer <mvo@zagadka.de>
* c-tokenize.lex: Gobble up complete lines after a '#'. This