*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
index bd3febf..1236314 100644 (file)
@@ -1,3 +1,205 @@
+2000-03-14  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
+       scm_assoc.  (Thanks to Dirk Herrmann.)
+
+2000-03-14  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
+       scm_nil, scm_t.  (Thanks to Dirk Herrmann.)
+
+2000-03-14  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * init.c (scm_boot_guile_1): Use same initial segment size for
+       1-word and 2-word segments.  Having the smaller size causes Guile
+       to GC too often.  Obviously something needs to be done to allow
+       for a smaller 2-word segment without this to happen.  (The amount
+       of heap for each type should be automatically adapted to the
+       application somehow.)
+
+       [Almost all of these changes should be documented in the NEWS
+       file.]
+
+       * gc.h (scm_freelist_t): New type.
+
+       * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
+
+       * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
+       all of Guile basics fits into one segment and there suitable room
+       for work.
+       (SCM_EXPHEAP): Now takes an argument.  Grow by a factor of 1.5
+       instead of 2.
+       (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
+       Freelists now contains information about object span, cells
+       collected and amount of cells in heap segments belonging to the
+       list.
+       (scm_heap_size, scm_gc_cells_collected): Removed.
+
+       * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
+
+       * Makefile.am (libguile_la_LDFLAGS): Bumped library version
+       number.
+
+       * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
+       numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
+       rewrite of handling of real and complex numbers.
+       (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
+       removed along with the support for floats.  (Float vectors are
+       still supported.)
+
+       * tags.h (scm_tcs_bignums): Removed.
+       (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
+       Use SCM_BIGSIGN(x) to test for sign!
+       (scm_tc16_big): The new bignum type.
+       (SCM_REAL_PART, SCM_IMAG_PART): Removed.
+
+       * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
+       (scm_makdbl): Deprecated.
+       (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
+       (SCM_SINGP): Deprecated.
+       (SCM_FLO): Removed.
+       (SCM_INEXP, SCM_CPLXP): Deprecated.
+       (SCM_INEXACTP, SCM_COMPLEXP): New macros.
+       (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
+       SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
+       (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
+       for doubles and complex numbers.
+       (SCM_REAL_VALUE): New selector for doubles.
+       (scm_double_t, scm_complex_t): New types.
+       (scm_dbl): Removed.
+
+       * numbers.c (scm_floprint, scm_floequal): Removed.
+       (scm_print_real, scm_print_complex, scm_real_equalp,
+       scm_complex_equalp): New functions.
+
+       * unif.c (scm_makflo): Removed.
+
+       * smob.h (SCM_SMOB_PREDICATE): New macro.
+       (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
+       SCM_RETURN_NEWSMOB3): New macros.
+
+1999-11-21  Michael Livshin  <mlivshin@bigfoot.com>
+
+       The following changes implement primitive support for double cells
+       (i.e. four-word cells) and change the representation of some
+       things to multi-cells instead of cons+malloc.  (Applied and
+       modified by mdj.)
+
+       * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
+       (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
+       multi-cell access macros (used by the ones below).
+       (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
+       macros.
+
+       * gc.c (scm_freelist2): multi-cell freelists.
+       (inner_map_free_list): map_free_list, parameterized on ncells.
+       "nn cells in segment mm" was misleading for ncells > 1; changed to
+       "objects".  still print cells too, though.
+       (scm_map_free_list): rewritten using inner_map_free_list.
+       (scm_check_freelist): get freelist as parameter, since now we have
+       more than one.
+       (scm_debug_newcell2): multi-cell variants of
+       scm_debug_newcell.
+       (scm_gc_for_newcell): take ncells and freelist pointer as
+       parameters.
+       (scm_gc_mark): add case for tc7_pws (procedures with setters are
+       now double cells).
+       (scm_gc_sweep): don't free the float data, since it's not malloced
+       anymore.
+       (init_heap_seg): didn't understand what n_new_objects stood for,
+       so changed to n_new_cells.
+       (make_initial_segment): new function, makes an initial segment
+       according to given ncells.
+       (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
+
+       * numbers.c (scm_makdbl): no malloc'ing needed, so the
+       {DEFER,ALLOW}_INTS thing removed.
+
+       * numbers.h (struct scm_dbl): changed to represent a double cell,
+       with the number in the second half.
+
+       * dynwind.c: changed the wind-guards representation to double
+       cell.
+
+       * procs.c, procs.h: changed the procedure-with-setter representation
+       to double cell.
+
+       * async.c, async.h: made async representation a double cell.
+
+       * dynl.c: made dynamic_obj representation a double cell.
+       
+2000-03-13  Gary Houston  <ghouston@arglist.com>
+
+       * ports.c (flush_void_port): renamed to flush_port_default.
+       (end_input_void_port): renamed to end_input_default.
+
+       * init.c (scm_standard_stream_to_port): create a void port instead
+       of opening /dev/null if the standard file descriptors are bad.
+       advantages: no portability problems, doesn't waste a file descriptor,
+       simplifies the code (thanks to Marius for the idea).
+
+       * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
+
+       * void ports: make reading from a void port give EOF instead of
+       segv:
+       * ports.c (s_scm_sys_make_void_port): modified docstring.
+       (fill_input_void_port): new proc.
+       (scm_init_ports): set up fill_input_void_port.
+       * ports.c (scm_port_non_buffer): new proc.
+       (scm_void_port): call scm_port_non_buffer.
+
+       * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
+       which was incorrectly appended.
+
+2000-03-13  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * guile-doc-snarf.in: Don't use absolute path for `sed'.  (Note
+       that we can't use autoconf for this.  Autoconf itself relies on
+       the existence of `sed' somewhere on your path.)  (Thanks to Dirk
+       Herrman.)
+       
+2000-03-13  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
+       EXTRA_libguile_la_SOURCES.
+
+       * iselect.h: Always declare scm_internal_select.
+
+       * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
+       end.  Also let scm_internal_select be a real function also when
+       not using threads.
+
+       * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
+
+2000-03-13  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
+       SCM_ASYNC_TICK.  (This is a preparation for POSIX threads support,
+       and kind of an experiment: Will this cause problems?)
+
+Sun Mar 12 13:26:30 2000  Greg J. Badros  <gjb@cs.washington.edu>
+
+       * Makefile.am: Added *.doc to DISTCLEANFILES.
+
+2000-03-12  Gary Houston  <ghouston@arglist.com>
+
+       * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
+       the fdes is valid before doing anything else.  check that
+       the file descriptor supports the modes required.
+       (scm_fport_buffer_add): don't throw an error if fstat doesn't
+       work: just use the default buffer size.
+
+       * throw.c: change an outdated comment about scm_internal_catch
+       BODY: it doesn't take a jumpbuf arg.
+
+       * init.c (scm_standard_stream_to_port): install a handler in case
+       scm_fdes_to_port throws an error.  don't check here whether the
+       file descriptor is valid, since scm_fdes_to_port will do that.
+       set the revealed count depending on whether the port got the
+       standard file descriptor.
+       (stream_body_data): new type.
+       (stream_body, stream_handler): new procs.
+
 2000-03-12  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
 
        * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):