-2004-03-24 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
+2004-04-06 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * inline.h (scm_cell): use SCM_GC_CELL_WORD for checking tag.
+
+ * chars.h (scm_init_chars): change scm_{upcase,downcase} to
+ scm_c_{up,down}case.
+ (SCM_MAKE_CHAR): add (unsigned char) cast. This prevents havoc
+ when hi-bit ASCII is subjected to SCM_MAKE_CHAR().
+
+2004-04-06 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_ash): Remove stray "}" in docstring.
+
+ * numbers.c (scm_make_ratio): For inum/bignum integer detection, use
+ x==SCM_MOST_NEGATIVE_FIXNUM explicitly, for clarity and to avoid
+ calling mpz_cmp_ui in most cases.
+
+ * numbers.c (scm_quotient, scm_remainder): In inum/big, use mpz_cmp_ui
+ for big == abs(most-negative-fixnum) special case.
+ (abs_most_negative_fixnum): Remove, no longer used.
+
+ * scmsigs.c (scm_sigaction_for_thread): Correction to signum range
+ test, avoids SCM_VECTOR_REF outside bounds of signal_handlers on
+ calling (sigaction NSIG).
+
+ * simpos.c (scm_system_star): Fix execargv memory leak, merge parent
+ and fork error cases to do this.
+
+2004-04-03 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
+
+ * eval.c (CEVAL): Don't distinguish between short and long
+ instructions when dispatching - just always dispatch on the
+ instruction code, which is common for short and long instructions.
+ Further, removed unnecessary goto statements and added comment.
+
+2004-04-03 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
+
+ * eval.c (scm_unmemocopy): Don't distinguish between short and
+ long instructions when dispatching - just always dispatch on the
+ instruction code, which is common for short and long instructions.
+ Further, removed unnecessary goto statements, fixed indentation
+ and replaced SCM_IMP predicates by SCM_NULLP.
+
+2004-04-03 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
+
+ * eval.c (scm_lookupcar1, CEVAL): Use SCM_ILOCP instead of
+ comparison with SCM_ILOC00. In CEVAL, eliminate goto-label
+ 'checkmacro'.
+
+2004-03-31 Kevin Ryde <user42@zip.com.au>
+
+ * simpos.c: Include <signal.h> for SIG_IGN and friends.
+
+2004-03-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
+
+ Introduce scm_debug_mode_p as a replacement for scm_debug_mode and
+ SCM_DEBUGGINGP:
+
+ * debug.h (scm_debug_mode_p, scm_debug_mode, SCM_DEBUGGINGP),
+ eval.c (scm_debug_mode_p): Deprecated scm_debug_mode and
+ SCM_DEBUGGINGP. Provided scm_debug_mode_p instead, to have one
+ single interface that also matches the naming conventions.
+ Probably scm_debug_mode_p should be part of the private interface
+ anyway.
+
+ * debug.h (scm_debug_mode_p), backtrace.c (display_error_body),
+ eval.c (SCM_APPLY, scm_trampoline_0, scm_trampoline_1,
+ scm_trampoline_2): Change uses of scm_debug_mode or SCM_DEBUGGINGP
+ to scm_debug_mode_p.
+
+
+ Deprecate direct access to scm_ceval, scm_deval and scm_ceval_ptr:
+
+ * eval.h (scm_ceval, scm_deval, scm_ceval_ptr), debug.h
+ (scm_ceval_ptr): Deprecated. Moved declaration of scm_ceval_ptr
+ from debug.h to eval.h.
+
+ * debug.h (SCM_RESET_DEBUG_MODE): Don't access scm_ceval_ptr any
+ more, just leave it with setting scm_debug_mode_p, which is
+ equivalent for practical purposes.
+
+ * deprecated.h (SCM_XEVAL, SCM_XEVALCAR): Call scm_i_eval_x
+ instead of *scm_ceval_ptr. Leave all evaluating to scm_i_eval_x.
+
+ * gdbint.c (gdb_eval): Call scm_i_eval_x instead of scm_ceval.
+
+ * eval.c (ceval, deval, scm_ceval, scm_deval): Made scm_ceval
+ static and renamed it to ceval throughout. Provide a new exported
+ but deprecated function scm_ceval as a wrapper for backwards
+ compatibility. The same is done for the deval/scm_deval pair of
+ functions.
+
+ * eval.c (CEVAL, SCM_CEVAL): Renamed SCM_CEVAL to CEVAL
+ throughout. Defined CEVAL to ceval or deval, based on compilation
+ phase.
+
+ * eval.c (SCM_XEVAL, SCM_XEVALCAR): Dispatch on scm_debug_mode_p
+ to ceval and deval instead of calling *scm_ceval_ptr.
+
+ * eval.c (dispatching_eval): New deprecated static function.
+
+ * eval.c (scm_ceval_ptr): Initialized to dispatching_eval in order
+ to emulate its old behaviour as closely as possible.
+
+
+ Change the evaluator such that only expressions for which pair? is
+ true are passed to CEVAL, and such that all other expressions are
+ evaluated outside of CEVAL:
+
+ * eval.c (EVAL): New, provided in analogy to EVALCAR. Evaluate an
+ expression that is assumed to be memoized already. All but
+ expressions of the form '(<form> <form> ...)' are evaluated inline
+ without calling an evaluator.
+
+ * eval.c (SCM_XEVAL, SCM_XEVALCAR, EVALCAR): Evaluate all but
+ expressions of the form '(<form> <form> ...)' inline without
+ calling an evaluator.
+
+ * eval.c (scm_i_eval_x, scm_i_eval, scm_ceval, scm_deval): Handle
+ the special case of unmemoized symbols passed on the top level.
+
+ * eval.c (CEVAL): Change calls to CEVAL to EVAL, except where it
+ is known that the expression passed to CEVAL is of the form
+ '(<form> <form> ...)'. Remove handling of the tc7-objects, since
+ now it is known that the input expression of CEVAL is a pair.
+
+2004-03-29 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
* eval.c (is_self_quoting_p): New static function.
(copy_tree): Corrected typo in comment.
+>>>>>>> 1.2042
2004-03-28 Han-Wen Nienhuys <hanwen@xs4all.nl>
* eval.c (s_scm_copy_tree): idem.