* eval.c (scm_ilookup): Rewritten to improve readability.
[bpt/guile.git] / libguile / ChangeLog
index 42438fd..a155e3f 100644 (file)
@@ -1,3 +1,260 @@
+2003-04-27  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_ilookup):  Rewritten to improve readability.
+
+2003-04-27  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
+       Partially reverted patch from 2003-04-23 in oder to find a better
+       compromise between readability and debuggability.
+
+2003-04-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
+       scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
+       definitions of the special goops memoizers from goops.[ch] to
+       eval.[ch].  Hmm... it seems that scm_m_atdispatch is not used
+       throughout guile.
+
+2003-04-24  Mikael Djurfeldt  <mdj@kvast.blakulla.net>
+
+       * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
+
+       * fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
+
+       * ports.c (scm_close_port, scm_flush_all_ports): Ditto.
+
+       * ioext.c (scm_fdes_to_ports): Ditto.
+
+       * vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
+       lock/unlock scm_i_port_table_mutex.
+
+       * strports.c (scm_mkstrport): Ditto.
+
+       * ports.c (scm_void_port, scm_port_for_each): Ditto.
+
+       * fports.c (scm_fdes_to_port): Ditto.
+
+2003-04-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       This set of patches contains no functional changes, only debatable
+       minor stylistic ones.  Still, in order to prepare a patch between
+       my local copy and the CVS version, I decided to submit the changes
+       below.  Then, the patch will hopefully only contain relevant
+       modifications :-)
+
+       * eval.c (iqq): Added const specifier.
+
+       * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
+       Use NULL instead of 0 to indicate that a pointer is returned.
+       Removed some misleading 'fall through' comments.
+
+       * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
+       Split up long expressions into smaller ones to be more debugging
+       friendly.
+
+2003-04-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
+       SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
+       rather than casting to SCM.
+
+2003-04-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * sort.c, pairs.h: Removed unnecessary includes.
+
+2003-04-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * sort.c: Replaced hand-made trampline code by the new official
+       mechanism from eval.c.  This fixes a segfault in the new test file
+       sort.test.
+
+       (quicksort, compare_function, scm_restricted_vector_sort_x,
+       scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
+       scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
+       scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
+       scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
+       eval.c.
+
+       (subr2less, lsubrless, closureless, applyless, scm_cmp_function,
+       cmp_fun_t): Removed.
+
+       (compare_function): Added.
+
+       * sort.c (quicksort, SWAP, stack_node): Replaced pointer
+       arithmetics with index arithmetics.  Changed quicksort to work on
+       an array of SCM values instead of an array of characters.  Avoid
+       bytewise copying of SCM elements.  Avoid allocating memory on the
+       stack with alloca.  Fixed some comments.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (EXTEND_ENV): Eliminated.
+
+       (unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
+       EXTEND_ENV.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
+
+       * gc.card.c (scm_gc_marked_p): Fixed compiler warning when
+       compiling with SCM_DEBUG==1 by moving definition behind prototype.
+
+       * gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
+       scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
+       scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
+       scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
+       functions such that they check if the object is a non-immediate.
+       Further, renamed identifiers to use the scm_dbg_ prefix and made
+       their inclusion into the lib dependent of the
+       SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
+       debug option.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.c (scm_ilength, scm_last_pair), unif.c (l2ra): Prefer
+       !SCM_CONSP over SCM_NCONSP.  Now, guile itself does not include
+       any calls to SCM_NCONSP any more.
+
+       * unif.c (l2ra): Eliminate redundant check.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
+       scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
+       SCM_NNULLP.  Now, guile itself does not include any calls to
+       SCM_NNULLP any more.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
+       scm_copy_tree): Place assignment expressions which are part of
+       other expressions into an expression of their own.
+
+2003-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
+       compare SCM values with !=.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
+       scm_m_generalized_set_x, scm_init_evalext): Move the declaration
+       and definition of the memoizer for the generalized set! macro from
+       evalext.[ch] to eval.[ch].  Use the SCM_SYNTAX snarfer macro to
+       define the macro object.
+
+       * eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
+       scm_m_generalized_set_x): Since now scm_s_set_x is only used in
+       eval.c, it is made static and renamed to s_set_x.
+
+       * evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
+       over SCM_N<foo>.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
+       scm_init_eval): Made scm_undefineds static in eval.c, renamed it
+       to undefineds and registered the object as a permanent object.
+
+       * eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
+       static in eval.c, renamed it to f_apply and registered the object
+       as a permanent object.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_BIT7, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
+       file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (scm_logtest):  Fixed argument bug in the call to
+       mpz_and, which showed up when compiling with SCM_DEBUG defined.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
+       type errors that showed up when compiling with SCM_DEBUG defined.
+
+2003-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * continuations.c, continuations.h, eval.c, eval.h, extensions.c,
+       gsubr.c, guile.c, init.c, read.c, root.c, root.h, stackchk.h,
+       throw.c: Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
+       fix compile errors with --disable-deprecated.
+
+2003-04-17  Rob Browning  <rlb@defaultvalue.org>
+
+       * numbers.c (scm_integer_expt): fix case where we were declaring
+       vars in the middle of a statement block.  Thanks to Thamer
+       Al-Harbash.
+
+2003-04-17  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
+
+       * goops.c (TEST_CHANGE_CLASS): Update variable class after class
+       change.
+
+       * eq.c (scm_eqv_p): Turned into a primitive generic.
+
+2003-04-16  Rob Browning  <rlb@defaultvalue.org>
+
+       * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
+       Thanks to Boyd Gerber.
+       Added check for __arm__ in addition to arm for LINUX and copied
+       __s390__ defines from upstream libgc. Thanks to James Treacy for
+       reporting the problems.
+
+       * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT.
+
+       * socket.c: use SCM_CHAR_BIT.
+
+       * random.c (scm_c_random_bignum): use SCM_CHAR_BIT.
+
+       * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT.
+
+2003-04-16  Mikael Djurfeldt  <mdj@kvast.blakulla.net>
+
+       * feature.c (scm_init_feature): Always add threads feature.
+
+2003-04-15  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
+
+       * goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
+       scm_at_assert_bound_ref.  (We don't want the unbound check.  See
+       oop/goops/active-slot.scm.)
+
+2003-04-14  Rob Browning  <rlb@defaultvalue.org>
+
+       * tags.h: scm_t_intptr should have been intptr_t.
+
+2003-04-13  Rob Browning  <rlb@defaultvalue.org>
+
+       * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
+       test.  Instead use
+       #if defined (sparc) || defined (__sparc__) || defined (__sparc)
+       as gc_os_dep.c suggests is appropriate.
+
+       * goops.c (prep_hashsets): make static to match prototype.
+       (scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL.  Thanks to Albert
+       Chin.
+       
+       * c-tokenize.lex: remove trailing comma from enum.  Thanks to
+       Albert Chin.
+
+       * gc_os_dep.c: add NetBSD powerpc config info.  Thanks to Thomas
+       Klausner.
+
+2003-04-13  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
+
+       * goops.c (scm_sys_prep_layout_x): Instance allocation is now
+       indicated through extra fields in getters-n-setters.
+       (scm_add_slot): Adapted to new format of getters_n_setters slot.
+       (Thanks to Andy Wingo.)
+
 2003-02-25  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
        * gc-segment.c: add comment
        cause trouble when included via objective-c (can't hurt, might
        help).  Still have usage in debug.h, though.
 
->>>>>>> 1.1807
 2003-04-06  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
 
        * random.c (scm_c_random_bignum): Don't generate a random number
        (modinclude_HEADERS): remove version.h.
        (nodist_modinclude_HEADERS): add version.h.
 
->>>>>>> 1.1805
 2003-02-24  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
 
        This fixes a serious GC bug, introduced during the latest