* libguile/tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes.
[bpt/guile.git] / libguile / ChangeLog
index 862c3a6..90dec9b 100644 (file)
@@ -1,3 +1,21 @@
+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,