*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
index 72ef46f..3468be8 100644 (file)
+1998-11-22  Mikael Djurfeldt  <mdj@kenneth>
+
+       * procs.c: #include "objects.h"
+       (scm_procedure_p): Return #t also on structs which are operators.
+
+       * objects.c (scm_init_objects): Renamed <standard-metaclass>,
+       <operator-metaclass> and <entity-class> to <standard-class>,
+       <operator-class> and <entity> in order to conform with STKlos
+       naming conventions.
+
+       * eval.c (SCM_CEVAL): Jump to badfun if trying to apply a struct
+       which isn't an operator.
+       (SCM_APPLY): Ditto, but jump to badproc.
+
+1998-11-21  Mikael Djurfeldt  <mdj@kenneth>
+
+       * eval.c (SCM_CEVAL): Allow structs implanted in code.
+       Previously, structs implanted in code were interpreted as forms
+       the operator of which was a gloc.  We solve this by checking for
+       the zero in the emulated vcell in the struct vtable.  Since
+       implanted structs always will look like forms with a gloc
+       operator, execution will only be slowed down by maximally one
+       extra test-and-branch per application.
+
+       * evalext.c (scm_definedp): Removed check for isyms; Added a
+       second optional argument: It is now possible to supply an
+       evaluation environment in which to look for the symbol.
+
+1998-11-19  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * readline.c (scm_init_readline): Set
+       rl_basic_word_break_characters.  (Thanks to Ian Grant.)
+
+       * coop.c (coop_condition_variable_wait): Removed
+       (coop_condition_variable_wait_mutex): Folded logic of
+       coop_mutex_unlock into coop_condition_variable_wait_mutex to
+       prevent condvar signal lossage.  Previously, another thread could
+       start to run after unlocking the mutex but before putting the
+       current thread on the wait queue.  If that thread then would
+       signal the first, the signal would be lost.  (Thanks to Christian
+       Lynbech.)
+
+1998-11-17  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * eval.c (SCM_CEVAL): Added missing case for cclo.  (Thanks to
+       Christian Lynbech.)
+
+1998-11-14  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * objects.c (scm_i_make_class_object): Renamed from
+       make_class_object; exported; error checking moved to
+       scm_make_class_object and scm_make_subclass_object.
+       (scm_make_class_object, scm_make_subclass_object): Use
+       scm_i_make_class_object.
+       (scm_make_subclass_object): Let the subclass have same metaclass
+       as the superclass.
+
+1998-11-14  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * debug.c (scm_debug_options): Bugfix: Set the value of
+       scm_stack_checking_enabled_p after setting debug options;
+       #include "stackchk.h".  (Thanks to Richard Polton.)
+
+1998-11-13  Radey Shouman  <rshouman@metro2000.com>
+
+       * unif.c (scm_array_contents): removed unnecessary test for 0
+       base.
+
+1998-11-13  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * evalext.c, evalext.h (scm_m_sequence_to_list): Removed.
+       Replaced by macro `collect' in boot-9.scm.
+
+1998-11-10  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * eval.c (scm_copy_tree): Copy source properties if existent.
+
+       * debug.c (scm_start_stack): Copy source when evaluating.  (If we
+       don't, we may end up passing memoized source to a transformer.)
+
+1998-11-10  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * stack.c (get_applybody): Help function which lookups the first
+       body form of the apply closure.
+       (read_frames): Prevent the source of the first form of the apply
+       closure from being recorded.  This would only be confusing.
+
+       * debug.h (SCM_SET_MACROEXP, SCM_CLEAR_MACROEXP, SCM_MACROEXPP):
+       Replaces SCM_MACROFRAME, SCM_MACROFRAMEP.
+       
+       * eval.c (SCM_CEVAL): Use SCM_SET/CLEAR_MACROEXP.
+
+       * stacks.c (read_frame): Bugfix: Removed lingering `else'
+       statement.
+       (read_frames): Use SCM_MACROEXPP.
+
+1998-11-10  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * stacks.c (read_frames): Skip gsubr frames in backtraces.  (They
+       don't contain interesting information since all arguments are
+       present in the frame which applies the compiled closure anyway.);
+       Skip the transformer application frames.
+
+       * print.c (scm_iprin1): Print gsubrs as primitives.
+
+1998-11-09  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * debug.h (SCM_MACROFRAME, SCM_MACROFRAMEP): New frame type.
+
+       * eval.c (SCM_CEVAL): Mark macro frames at `handle_a_macro' so
+       that we can identify these in a backtrace.  (This change doesn't
+       introduce any significant speed penalty.)
+
+       * eval.c: Added note about `serial-map' using scm_map.
+
+       * read.c, read.h (scm_read_options, scm_read_opts): Removed
+       readline options.  They should reside in their own options array.
+       
+       * readline.c, readline.h (scm_readline_options,
+       scm_readline_opts): Moved readline options here.
+
+1998-11-07  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * readline.c (scm_read_history, scm_write_history): Bugfix: Use
+       SCM_ROCHARS instead of SCM_CHARS.
+
+       * ports.c (scm_unread_string): Bugfixes: Check for SCM_STRINGP,
+       not SCM_ROSTRINGP; use SCM_ROUCHARS instead of SCM_UCHARS.
+
+1998-11-06  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * ports.h (SCM_CUC): #define as ~SCM_CRDY instead of 0x001fffffL.
+       This is quite important since the latter clears the
+       FPORT_READ_SAFE and FPORT_WRITE_SAFE flags causing flushes at
+       every single character read...
+
+1998-11-03  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * print.c (scm_iprin1): Removed suspect looking (and indeed
+       malevolent) semicolon after test for user supplied closure print
+       procedure.  (Thanks to Telford Tendys.)
+
+       * list.c (scm_sloppy_memq): Removed sloppy_mem_check.
+       (scm_memq, scm_memv, scm_member): Do argument checking *before*
+       starting to search the list.  Removed call to sloppy_mem_check.
+
+       * list.c, list.h (scm_delq1_x, scm_delv1_x, scm_delete1_x): New
+       procedures: Same as scm_delq_x et al, but delete maximally one
+       element.
+
+       * options.c (scm_options, scm_init_options): GC-protect option
+       values of type SCM.  (Thanks to Telford Tendys.)
+
+1998-11-01  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * eval.c: Don't #define scm_lookupcar to scm_lookupcar1.  Instead
+       make sure that there always is a "real" scm_lookupcar.
+
+1998-11-01  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * read.c, read.h (history-length, history-file): New read options.
+       (scm_read_options): Stifle history to history length.
+
+       * readline.c (scm_read_history, scm_write_history): New
+       procedures.
+
+1998-10-31  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * eval.h (scm_macro_eval_x): Removed declaration.
+
+       * eval.c (scm_s_expression, scm_s_test, scm_s_body,
+       scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals):
+       Renamed and made global.
+
+       * eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
+       (SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
+
+       * evalext.c, evalext.h: New files.  Contain non-R5RS things
+       having to do with evaluation.
+       
+       * evalext.c (scm_serial_map): New procedure: Version of `map'
+       which guarantees that the procedure is applied to the lists in
+       serial order.
+       (scm_m_sequence_to_list): New syntax: Version of `begin' which
+       returns a list of the results of the body forms instead of the
+       result of the last body form.
+       (scm_definedp, scm_m_undefine): Moved from eval.c
+
+       * evalext.h (scm_m_sequence_to_list): Added declaration.
+
+       * macros.c, macros.h: New files.
+       (scm_procedure_to_syntax, scm_procedure_to_macro,
+       scm_procedure_to_memoizing_macro, scm_macro_p, scm_macro_type,
+       scm_macro_name, scm_macro_transformer): Moved from eval.c
+       (scm_make_synt): Moved from eval.c
+
+       * procs.c, procs.h (scm_procedure_documentation): Moved from
+       eval.c.
+
+       * init.c (scm_boot_guile_1): Added calls to scm_init_macros and
+       scm_init_evalext.
+
+       * Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
+
+       * debug.c, print.c: Added #include "macros.h".
+
+1998-10-29  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       This change adds the ability to use `unread-char' multiple times
+       without interspersed reads and adds the new procedure
+       `unread-string'.  The change is optimized for the common case of
+       unreading a single character.  This is also the reason behind the
+       choice to store characters in the port itself: in most cases no
+       extra malloc is required.
+
+       The amount of code in some macros in ports.h has been increased to
+       the extent that they would fit better as C functions, but, since
+       this code belongs to the port representation, such functions
+       should be placed in ports.c which would cause calls back and forth
+       between ports.c and genio.c.  That is not good for performance.
+       Also, keeping them as macros allows the compiler to do some
+       optimizations which are needed to make the current interface
+       (SCM_CRDYP, SCM_CGETUN, SCM_TRY_CLRDY) efficient.
+
+       One benchmark (Guile startup time) indicates an increase of
+       loading speed of 1%.  Another (reading (using `read') boot-9.scm
+       10 times) shows no change in performance.
+
+       (Caveat: Since Gary is redesigning I/O anyway, no big efforts were
+       made to find a beautiful solution.)
+       
+       * ports.h (SCM_CLRDY, SCM_CUNGET, SCM_CGETUN): Rewritten.
+       (SCM_TRY_CLRDY): New macro: Only clear the first unread
+       character. (SCM_CLRDY clears all.)
+       (SCM_N_READY_CHARS): New macro: Returns number of unread
+       characters in a port.  Returns wrong answer if SCM_CRDYP is false.
+       (struct scm_port_table): New fields: `entry' contains port table
+       index, `cp' points to last unread char, `cbuf' is the buffer for
+       unread chars, `cbufend' points after end of the character buffer.
+
+       * ports.h, ports.c (scm_unread_string): New procedure.
+       (scm_grow_port_cbuf): New function.
+
+       * ports.c (scm_add_to_port_table, scm_remove_from_port_table):
+       Handle new fields.
+       (scm_generic_fgets), fports.c (local_fgets): Use a loop
+       to read unread characters.  Use SCM_TRY_CLRDY instead of
+       SCM_CLRDY.
+       
+       * ioext.c (scm_ftell): Use SCM_N_READY_CHARS to correct position.
+
+       * genio.c (scm_getc): Use SCM_TRY_CLRDY instead of SCM_CLRDY.
+
+       * genio.c, genio.h (scm_ungets): New function.
+
+       * genio.c (scm_puts): Removed mysterious TRANSCRIPT_SUPPORT code
+       sections.
+
+1998-10-28  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * threads.h (scm_thread_sleep, scm_thread_usleep): Fixed
+       declarations. (Thanks to Russ McManus.)
+
+1998-10-26  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * numbers.c (num2long): As a software archeologist, I'm proud of
+       this finding! :) Preliminary dating suggests an almost 4 year old
+       remnant from the SCM ancestor.  The sample has been removed from
+       the finding site and is now safely stored in the repository.
+
+       * numbers.h: Removed prototype for num2long.
+
+       * unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
+
+       * gh_data.c (gh_scm2doubles): Make it possible to pass result
+       array as second arg.
+       (gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
+       gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
+       * gh.h: Updated and added prototypes.
+
+       * gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
+
+1998-10-24  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * gc.h: Remove all uses of SCM_P.  (Thanks to Richard Polton.)
+
+       * guile-snarf.in: Never generate an empty file.  (Thanks to
+       Richard Polton.)
+
+       * gh.h (gh_enter, gh_new_procedure0_0, gh_new_procedure0_1,
+       gh_new_procedure0_2, gh_new_procedure1_0, gh_new_procedure1_1,
+       gh_new_procedure1_2, gh_new_procedure2_0, gh_new_procedure2_1,
+       gh_new_procedure2_2, gh_new_procedure3_0, gh_new_procedure4_0,
+       gh_new_procedure5_0): Specify argument types, to appease C++
+       compilers.  (Thanks to Brad Bowman.)
+
+       Bug reports from Russ McManus:
+       * guile-snarf.in: If the CPP environment variable is set, use that
+       as the C preprocessor, instead of the preprocessor autoconf
+       found.
+       * snarf.h (SCM_PROC): Cast the function pointer passed to
+       scm_make_gsubr, to satisfy C++.
+
+       * gh_eval.c (gh_eval_str_with_catch, gh_eval_file_with_catch):
+       Use the handler passed, instead of ignoring it and using
+       gh_standard_handler.  (Thanks to Etienne Bernard.)
+       
+1998-10-20  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * ports.h: Put text after #endif in comment.  (Thanks to Nicolas
+       Neuss.)
+
+1998-10-19  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,
+       continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h,
+       dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h,
+       feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h,
+       genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c,
+       hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h,
+       list.c, list.h, load.c, load.h, mallocs.c, markers.c,
+       mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c,
+       ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
+       procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c,
+       regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c,
+       script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c,
+       srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h,
+       strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c,
+       symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c,
+       vectors.c, vectors.h, version.h, vports.c, weaks.c: Update
+       copyright years.
+
+       * script.c (scm_compile_shell_switches): Define
+       use-emacs-interface in the root module, so the repl code can see
+       it.  See today's change to top-repl in ice-9/boot-9.scm.
+
+       * filesys.c (set_element, get_element): Make sure that `element'
+       is a cell before applying SCM_FPORTP to it.  (Thanks to Jost
+       Boekemeier and Jorgen "forcer" Schaefer.)
+
+1998-10-18  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * chars.c (scm_charnames): In ASCII character name table, make
+       newlines print as #\newline by default, not #\nl.
+
+       * Makefile.am (libguile_la_SOURCES, BUILT_SOURCES): Put these in
+       alphabetical order.  Oh thrills.  But it helps me know how far
+       along in the compilation I am. 
+       * Makefile.in: Regenerated.
+
+1998-10-18  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * unif.c (scm_raprin1): Changed print syntax for byte vectors from
+       #bytes(...) to #y(...), and syntax for short vectors from
+       #short(...) to #h(...).  This may seem nutty, but, like the other
+       uniform vectors, byte vectors and short vectors want to have the
+       same print and read syntax (and, more basic, want to have read
+       syntax!).  Changing the read syntax to use multiple characters
+       after the hash sign breaks with the conventions used in R5RS and
+       the conventions used for the other uniform vectors.  It also
+       introduces complexity in the current reader, both on the C and
+       Scheme levels.  (The Right solution is probably to change the
+       syntax and prototypes for uniform vectors entirely.)
+
+1998-10-17  Jim Blandy  <jimb@savonarola.red-bean.com>
+
+       Don't use local_fgets on sockets; ftell doesn't work on sockets.
+       (Thanks to Jorgen "forcer" Schaefer.)
+       * ports.h (SCM_NOFTELL): New flag.
+       * fports.c (local_fgets): If it's set, use the generic fgets.
+       * socket.c (scm_socket): Set SCM_NOFTELL on the ports we produce.
+
+1998-10-17  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * script.c (scm_compile_shell_switches): Add handling of -q switch
+       (inhibit loading of user init file).
+       (scm_shell_usage): Add usage text for -q switch.
+       (scm_compile_shell_switches): Always load user init file first if
+       it is loaded at all.
+
+1998-10-16  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * stime.c: The CPP hair to determine a value for CLKTCK is weird,
+       and is now broken under NetBSD.  I can't fathom what it's trying
+       to do, so I've replaced it with something that I do understand,
+       which seems to work, and which isn't broken on NetBSD.  "Progress?
+       You Decide."  (Thanks to Perry Metzger.)
+
+       * regex-posix.c (scm_regexp_exec): Add a cast to remove a
+       signed/unsigned comparison.
+
+1998-10-15  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Warning fixes from Greg Harvey:
+       * unif.c (scm_array_set_x): initializer for pos
+       * throw.c (scm_ithrow): added initializer for jmpbuf (SCM_UNDEFINED)
+       * struct.c (scm_struct_ref, scm_struct_set_x): Added
+       initializers for field_type, since EGCS so desparately wants to
+       play dumb
+       * debug.h (scm_make_gloc, scm_gloc_p, scm_make_iloc, scm_memcons,
+       scm_mem_to_proc, scm_proc_to_mem, scm_debug_hang): Added prototypes
+       when GUILE_DEBUG is defined.
+       * dynwind.h (scm_wind_chain): Same.
+       * ports.h (scm_pt_size, scm_pt_member): Same.
+       * print.h (scm_current_pstate): Same.
+       * procs.h (scm_make_cclo): Same.
+
+1998-10-14  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Handle short and long long uniform arrays properly.  (Thanks to
+       Clark McGrew.)
+       * ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
+       raeql_1): Add cases for scm_tc7_svect (short vectors) and
+       scm_tc7_llvect (long long vectors).
+
+       Change the way libguile and boot-9.scm are timestamped, to try to
+       get rid of these spurious mismatch warnings.  Now both
+       libguile/versiondat.h and ice-9/version.scm are generated directly
+       by the configuration process, rather than having version.scm
+       generated directly, and libguile/versiondat.h generated by the
+       Makefile, which is generated by configure.  It seems that
+       sometimes the Makefile would change, but versiondat.h depends on
+       Makefile.in, not Makefile, so it wouldn't get rebuilt.
+       * Makefile.am (versiondat.h): Target removed; this is generated
+       directly by the configure script now.
+       (BUILT_SOURCES): Remove versiondat.h.
+       * versiondat.h.in: New file, transformed by the configure script
+       into versiondat.h.
+       * Makefile.in: Regenerated.
+
+       * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
+       options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
+       SCM_CAUTIOUS; this way, 1) there's only one version of each flag
+       to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
+       if we want to use them in a header file some day, we can.  (Thanks
+       to Michael Livshin.)
+
+       * stime.c (scm_get_internal_real_time): Do the arithmetic using
+       SCM numbers, so we won't have rollover problems; the range of a
+       signed long in milliseconds is about 25 days.  (Thanks to Karl
+       Hegbloom.)
+
+       Don't redefine sleep and usleep; fix this problem now.
+       * coop.c (sleep, usleep): Remove declarations; we don't use or
+       redefine these any more.
+       (scm_thread_usleep, scm_thread_sleep): New functions which do the
+       job of usleep and sleep in a thread-friendly way.  We can use
+       these in the rest of Guile.  Define versions for systems both with
+       and without iselect.
+       * threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
+       * scmsigs.c (usleep): Clean up oddities declaring usleep; since
+       we're just using it, not redefining it, we can use a K&R style
+       declaration here.
+       (sleep): Declare this, too, if the system hasn't.
+       (scm_sleep, scm_usleep): Use scm_thread_sleep and
+       scm_uthread_sleep if they're available; otherwise, just call the
+       system functions.
+       * scmconfig.h.in: Regenerated.
+
+       * coop.c (scm_thread_sleep): Make `slept' an unsigned long.
+
+       * coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
+
+1998-10-12  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * threads.c: Doc fix.
+
+       The argument type of usleep varies from system to system,
+       as does the return type.  We really shouldn't be redefining usleep
+       at all, but I don't have time to clean that up before the 1.3.
+       release.  It's on the schedule for afterwards.  (Thanks to Julian
+       Satchell.)
+       * coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
+       definition.
+       * scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
+       * scmconfig.h: Regenerated.
+
+       * simpos.c (scm_software_type): Procedure deleted.  This isn't the
+       right way to handle system variation.  Autoconf's approach is the
+       way and the light.
+       * simpos.h (scm_software_type): Declaration deleted.
+
+       * script.c (scm_find_executable): Don't test if unix is #defined
+       here; first, NetBSD doesn't #define it, and second, it's the wrong
+       way to go about these things.  (Thanks to Perry Metzger.)
+       (dld_find_executable): Delete this MSDOS support code.  This isn't
+       the way we want to support this; it needs to be rethunk at a
+       larger scale.
+
+       * genio.c (scm_do_read_line): Don't just politely check that the
+       line was either non-empty or EOF.  Abort if it's empty and not
+       EOF.
+
+1998-10-11  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * scmconfig.h.in: Regenerated.
+
+       * libguile.h: Don't omit the dynamic linking functions.  (Thanks
+       to Greg Badros.)
+
+       * genio.c (scm_do_read_line): Count lines correctly when the file
+       doesn't end in a newline.
+
+1998-10-10  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * genio.c (scm_do_read_line): Maintain the line count correctly.
+       (Thanks to Harvey J. Stein and Greg Harvey.)
+
+       * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
+       requires ANSI now.
+
+       * numbers.c (big2str): Protect t from garbage collection until
+       we're done.  (Thanks to Gary Houston.)
+
+1998-10-09  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * Makefile.am (libguile_la_LDFLAGS): Increment shared library
+       version number.
+       * Makefile.in: Regenerated.
+
+       * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
+       scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
+       SCM_P macro.
+
+       Do magic to mix reads and writes on stdio FILE-based ports.
+       (Thanks to Christian Lynbech.)
+       * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
+       New macros.
+       (pre_read, pre_write): New functions.
+       (local_fgetc, local_fgets, local_ffwrite, local_fputc,
+       local_fputs): Call them.
+       (local_fflush): Mark the port as ready for reading and writing.
+       (scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
+       flags on new port objects.  This might not be accurate --- who
+       knows what state the FILE * is in when we get it --- but it won't
+       do extraneous calls to fflush or fseek, so it's no worse than the
+       behavior before this change.
+       * ports.h: Add comment.
+
+       Centralize the creation of port objects based on stdio FILE * in
+       fports.c; don't just throw them together anywhere.
+       * fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
+       what the rest of Guile wants.  Don't set the revealed count;
+       that's only appropriate for stdin, stdout, stderr.
+       (scm_standard_stream_to_port): This function does set the revealed
+       count.
+       * init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
+       not scm_stdio_to_port.
+       * filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
+       * fports.c (scm_open_file): Same.
+       * posix.c (scm_pipe): Same.
+       * socket.c (scm_sock_fd_to_port): Same.
+       * ioext.c (scm_fdopen): Same.
+       (scm_freopen): Moved from here to...
+       * fports.c (scm_freopen): ... here.  This is really something that
+       munges the internals of an fport, so it should go here.
+       * fports.h (scm_stdio_to_port): Adjust prototype.
+       (scm_standard_stream_to_port, scm_freopen): New protoypes.
+       * ioext.h (scm_freopen): Prototype removed.
+
+       * filesys.c (set_element, get_element): This can work on both pipe
+       and file ports, so use SCM_FPORTP to typecheck, instead of testing
+       for scm_tc16_fport.
+
+       * scmconfig.h.in: Regenerated.
+
+       Change the definition of the functions in scm_ptobfuns so that
+       they get passed the port object, not the port's stream.
+       * ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
+       * gc.c (scm_gc_sweep): Pass the port itself to the free function.
+       * genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
+       Pass the port itself to the scm_ptobs function.
+       * ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
+       scm_generic_fgets): Same.
+       (putc_void_port, puts_void_port, write_void_port, flush_void_port,
+       getc_void_port, fgets_void_port, close_void_port): Just change the
+       argument names; these functions don't really do anything.
+       * fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
+       local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
+       port as an argument, and use SCM_STREAM to get the stdio FILE *.
+       Also, use prototyped definitions, and get rid of the extra
+       declarations.
+       (scm_fptob, scm_pipob): We don't need casts here any more.
+       * strports.c (prinstpt): Use prototype declarations.
+       (stputc, stwrite, stputs, stgetc): Take the port as an argument,
+       and use SCM_STREAM to get the string info.  Also, use prototyped
+       definitions, and get rid of the extra declarations.
+       * vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
+       noop0): Same.
+
+       * ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
+       prototype; it's okay (preferred, even!) to use ANSI C in Guile.
+       
+       * fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
+       scm_fgets, for consistency.
+       (scm_fptop, scm_pipob): References updated.
+
+1998-10-08  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Include the source location in error messages for scripts.
+       * init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
+       stack is still there when we catch the error.
+       * throw.c (handler_message): If we are handling an error with a
+       message, then put together the proper arguments and call
+       scm_display_error, instead of scm_display_error_message.  That
+       displays source location, if it can find it.
+
+1998-10-07  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * gc.c (scm_unprotect_object): Change this so that calls to
+       scm_protect_object and scm_unprotect_object nest properly.
+       (scm_protect_object): Doc fixes.
+
+       * strings.c (scm_string_set_x): Require the argument to be a
+       writable string, not a substring or a symbol.
+       * strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
+       (Thanks to John Redford and Charbel Jacquin.)
+       
+       * scmconfig.h.in: Regenerated; ../acconfig.h has changed.
+
+1998-10-07  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * eval.c (safe_setjmp): Remove this misunderstanding.
+       (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
+       ordinary setjmp.
+
+1998-10-06  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * libguile.h: Mark these as C declarations, for compilation by C++
+       compilers.
+
+       * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
+       __cplusplus clause.  I seriously doubt this ever worked the way
+       the author seems to have intended.
+
+1998-10-05  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Utterly needless cleanups to hopelessly messy code.
+       * ports.c: Doc fixes.
+       (scm_fflush): Moved to ...
+       * genio.c (scm_fflush): ... here, amongst all the other port
+       method invocation functions.
+       * genio.h, ports.h: The prototype moves too.
+
+1998-10-04  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * backtrace.c (display_error_body): The current frame does not
+       always have a parent frame; consider a function called directly
+       from the MAIN_FUNC passed to scm_boot_guile.  (Thanks to Maciej
+       Stachowiak.)
+
+       * alloca.c (alloca): Undo yesterday's changes, and simply call
+       malloc directly for storage, and abort if we don't get what we
+       want.  The situation is much simpler --- just call malloc.  Emacs
+       has bizarre/evil requirements (signal handlers might malloc unless
+       you set this global flag, so you have to set the flag around all
+       calls to malloc) which we are certainly not going to conform to,
+       so we can do the simple and obvious thing.
+
+       * coop.c (coop_condition_variable_wait): Make this function
+       static.  It's only useful internally --- you should never just
+       wait on a condition variable.
+       * coop-defs.h (coop_condition_variable_wait): Delete prototype.
+
+1998-10-03  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * unif.c (scm_array_set_x): Accept any kind of number as an
+       element for a uniform vector of doubles.  This is more consistent
+       with Scheme's view of numbers.  (Thanks to Miroslav Silovic.)
+
+       * alloca.c: Use scm_must_malloc to obtain storage.  Hopefully this
+       works; I can't conveniently test it myself.  (Thanks to Dvid
+       Tillman for the bug report.)
+
+       * init.c: Doc fixes.
+
+       * init.c (invoke_main_func): Load the startup files (boot-9.scm)
+       from here, not from scm_compile_shell_switches (which is a pretty
+       dumb place to do it).
+       (scm_load_startup_files): New function.
+       (scm_ice_9_already_loaded): Variable moved to here from script.c.
+       * script.c (scm_compile_shell_switches): Don't load the startup
+       files here.
+       (scm_ice_9_already_loaded): Variable moved.
+       * init.c (scm_load_startup_files): Prototype for new function.
+       * gh_init.c (gh_enter): Doc fix.
+
+1998-10-03  Jim Blandy  <jimb@savonarola.red-bean.com>
+
+       Some anti-warning changes from Greg Harvey.
+       * gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
+       warnings when it doesn't understand our NORETURN declarations in
+       error.h.
+       * posix.c (scm_mknod): Similar.
+
+1998-10-03  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * posix.c (scm_getpwuid): If we can't find an entry, return our
+       own message, instead of using scm_syserror --- the getpwMUMBLE
+       functions don't set `errno' to anything interesting.
+
+1998-10-03  Jim Blandy  <jimb@savonarola.red-bean.com>
+
+       Get rid of warnings from the cooperative threading system.
+       * threads.h (scm_single_thread_p, scm_yield,
+       scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
+       scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
+       scm_wait_condition_variable, scm_signal_condition_variable): Add
+       prototypes for these Scheme-visible functions.
+       * coop-defs.h (coop_next_runnable_thread,
+       coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
+       Prototypes for these here, even though they're from iselect.c.
+       (coop_condition_variable_wait, coop_join): Add prototypes.
+       * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
+       scm_threads_free_condvar): Make these smob functions static.
+       * coop-threads.h (coop_init): Give this a real prototype.
+       * coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
+       (coop_next_runnable_thread): No need to provide prototype; it's in 
+       coop-defs.h.
+
+       * scmconfig.h.in: .detarenegeR
+
+       * iselect.c, threads.c: Doc fixes.
+
+1998-10-03  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * Makefile.in: Regenerated with a patched automake, to get
+       dependency generation right when using EGCS.
+
+       * inet_aton.c (inet_aton): Add prototype, to remove compiler
+       warning. (Thanks to Robert Pluim.)
+
+       * inet_aton.c (inet_aton): Reassure the compiler that the
+       arguments to the <ctype.h> macros are all unsigned characters, not
+       signed characters.
+
+1998-10-03  Jim Blandy  <jimb@savonarola.red-bean.com>
+
+       Getting rid of more warnings...
+       * iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
+       today's change to ../configure.in.
+       * scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
+       * scmconfig.h.in: Regenertaded.de.,.__
+       * stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
+       (scm_localtime, scm_mktime): Use a const char * to manipulate the
+       time zone name.
+
+       * readline.c: Doc fix.
+       (rl_cleanup_after_signal, rl_free_line_state): Make these static.
+       * readline.h (scm_filename_completion_function): Add prototype.
+       (scm_init_readline): Make this into a prototype.
+
+       * readline.c (scm_filename_completion_function): Use SCM_PROC to
+       declare this, instead of calling scm_make_subr manually.
+
+1998-10-02  Jim Blandy  <jimb@savonarola.red-bean.com>
+
+       * readline.h (scm_init_readline): Add prototype for this.
+       (scm_init_readline): Make this a real prototype.
+
+1998-09-30  Jim Blandy  <jimb@zwingli.cygnus.com>
+       
+       Warning fixes from Maciej Stachowiak:
+       * backtrace.h (scm_display_application, scm_backtrace): Add
+       prototypes.
+       * debug.c (scm_m_start_stack): Make this function static.
+       * fluids.h (scm_fluid_p): Add prototype.
+       * procprop.c (scm_i_procedure_arity): Make this function static.
+       * regex-posix.c (scm_regexp_error_msg): Make this function static.
+       * regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
+       * root.h (scm_dynamic_root): Add external prototype.
+       * scmsigs.h (scm_usleep): Add external prototype.
+       * script.h (scm_init_script): Use prototype, not K&R decl.
+       * stacks.h (scm_stack_id): Add external prototype.
+       * symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
+
+1998-09-30  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh.h: took out the definitions of vset and vref, since they are
+       replaced by the proper vector routines that correspond to the R4RS
+       procedures.
+
+1998-09-29  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
+       these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
+       third argument, a C expression that should result in a SCM value,
+       which is used to initialize the variable. Reimplemented
+       SCM_CONST_LONG in terms of SCM_VCELL_INIT.  (Thanks to Maciej
+       Stachowiak.)
+
+       * version.h (scm_libguile_config_stamp): Add prototype.
+       (From Maciej Stachowiak.)
+
+1998-09-26  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
+       (force 9) is tried.  (Thanks to Karl M. Hegbloom.) 
+
+1998-09-06  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * print.c (scm_iprin1): Rather than having one i, and using it in
+       several places, declare a fresh i local to each block where it is
+       used, and give it a signedness appropriate to its use in each case.
+       (scm_iprlist): Same.
+
+       * print.c (scm_iprin1): Add cast to avoid unsigned/signed
+       comparison warnings.
+
+       * print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
+       signed/unsigned clashes.
+
+       * posix.h (scm_tmpnam): Added prototype.
+
+       * objects.h (scm_set_object_procedure_x, scm_make_class_object,
+       scm_make_subclass_object): Add external prototypes.
+
+       * numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
+       comparison is okay here.
+
+       * numbers.c (scm_istr2int): Add cast; len is known to be positive.
+
+       * numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
+       (true, but confusing) fact that -1 == ((unsigned) 0 - 1).
+
+       * numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
+       signed/unsigned.
+
+       * load.c (swap_port): Make this function static.
+
+       * load.c (scm_search_path): Make max_path_len and max_ext_len
+       unsigned, since they're compared against string sizes.
+
+       * load.c (init_build_info): Make i unsigned.
+
+       * ioext.h (scm_read_line): Add prototype.
+       
+       * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
+       scm_hash_fn_remove_x): Make hash bucket index local variable k
+       unsigned.  Use scm_ulong2num to pass it to SCM_ASSERT as
+       accurately as possible.
+
+       * gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
+       comparisons, and range checking to make sure those casts are
+       harmless.
+
+       * stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
+       signed/unsigned comparisons.
+
+       * smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
+       avoid signed/unsigned comparisons.
+       * smob.h (scm_numsmob): Change extern declaration to match.
+
+       * ports.c (scm_numptob): Make this an int, not an scm_sizet, to
+       avoid signed/unsigned comparisons.
+       * ports.h (scm_numptob): Change extern declaration to match.
+       (scm_current_load_port, scm_set_port_line_x,
+       scm_set_port_column_x): New prototypes.
+
+       * gsubr.c (GSUBR_TEST): Don't #define this.  Nobody's using the
+       test code, and it causes warnings.
+
+       * gh.h (gh_int2scmb, gh_uniform_vector_length,
+       gh_uniform_vector_ref): Added prototypes.
+
+       * Makefile.am (libguile_la_SOURCES): Include Scheme-level
+       debugging support unconditionally.  That's backtrace.c, stack.c,
+       debug.c, and srcprop.c.
+       (EXTRA_libguile_la_SOURCES): Omit those from here.
+       * Makefile.in: Regenerated.
+
+1998-08-21  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * options.c (scm_options): Bugfix: Allow empty list of options!
+
+       * debug.c, debug.h (scm_single_step): Removed.
+       (scm_with_traps): New procedure.  This procedure could easily be
+       written in Scheme but needs to be highly optimized.
+
+       * eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
+
+       * eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
+       Check SCM_TRAPS_P before trapping.
+
+1998-07-30  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Changes to avoid signed/unsigned comparison warnings.
+       * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
+       (scm_gc_sweep): Make n and j local to the blocks they're used in,
+       so they can have appropriate types for each application.  Make i
+       signed.  Use initializers in some spots.  I'll probably pay for
+       all this tweaking.
+       (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
+       (scm_must_realloc): Make nm unsigned.
+       (init_heap_seg): Make new_seg_index and n_new_objects signed.
+       (scm_init_storage): Use prototype-style definition, and make the
+       argument unsigned.
+       * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
+       scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
+       
+       * filesys.c (scm_readlink): Make local vars rv and size ints, to
+       avoid signed/unsigned comparison warnings, and because the return
+       value of readlink may be -1.  Don't bother casting the third
+       argument to readlink.
+
+       * filesys.c (scm_dirname, scm_basename): Move these to their own
+       page, at the end of the file.
+       * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
+
+       * eval.h (scm_eval_options_interface): Add external prototype for this.
+       * eval.c (scm_eval_options_interface): Use prototype-style def'n.
+       
+       * eval.c (scm_lookupcar1): Make this static.
+
+       * dynl.h (scm_registered_modules, scm_clear_registered_modules):
+       Make these prototype declarations, not K&R-style.
+
+       * chars.c (scm_tables_prehistory): Add cast, to remove signed/
+       unsigned comparison warning.
+
+       * appinit.c: File removed.  It had a single function in it, empty,
+       whose reason for existence is explained in no documentation or
+       comment.  I think it's there as a default for some Tcl-style
+       initialization, but Tcl abandoned that approach a while ago.
+       * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
+       (BUILT_SOURCES): Remove appinit.x.
+       * Makefile.in: Regenerated.
+
+1998-07-29  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * Makefile.in: Regenerated using the last public version of
+       automake, not the hacked Cygnus version.
+
+1998-07-28  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Remove Totoro kludge.
+       * Makefile.in, scmconfig.h.in: Regenerated.
+       * init.c, readline.c: Don't check if TOTORO is #defined.
+
+1998-07-26  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       * Makefile.am: Adjust for new thread configuration system.
+       (INCLUDES): Include the value of THREAD_CPPFLAGS.
+       (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
+       THREAD_LIBS.
+       (THREAD_LIBS): Definition deleted; automake will generate such
+       things automatically.
+       * Makefile.in: Regenerated.
+
+1998-07-23  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+       Simplify smob and port marking; set the mark bit in the generic
+       marking code, and make marker routines only responsible for
+       turning up outgoing pointers.
+       * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
+       before calling the marking function.  Don't call the marking
+       function if it's zero.
+       * markers.c (scm_mark0): Just return #f.  This function isn't
+       necessary at all now, but it's harmless to call it.  We'll leave
+       it in so other folks' code doesn't croak at link time.
+       (scm_markcdr): Don't call SCM_SETGC8MARK.
+       * async.c (mark_async): Don't call SCM_SETGC8MARK.
+       * dynl.c (mark_dynl_obj): Same.
+       * root.c (mark_root): Same.
+       * srcprop.c (marksrcprops): Same.
+       * unif.c (markra): Same.
+       * variable.c (scm_markvar): Same.
+       * ports.c (scm_markstream): Same.
+       (void_port_ptob): Specify zero for our marking function.
+       * debug.c (debugobjsmob): Same.
+       * dynwind.c (guardsmob): Same.
+       * filesys.c (dir_smob): Same.
+       * fluids.c (fluid_smob): Same.
+       * fports.c (scm_fptob, scm_pipob): Same.
+       * mallocs.c (mallocsmob): Same.
+       * regex-posix.c (regex_t_smob): Same.
+       * smob.c (freecell, flob, bigob): Same.
+       * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
+       * throw.c (jbsmob, lazy_catch_funs): Same.
+
+1998-07-17  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * eval.c (scm_copy_tree): Reverted last change: `eval' uses
+       scm_copy_tree on code in order not to let memoized code to leak
+       out.  Thus, scm_copy_tree needs to copy vectors as well since
+       quasiquote can introduce evaluated code also inside vector
+       constants.
+
+1998-07-17  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * eval.c (scm_copy_tree): Removed ability to copy vectors.
+
+       * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
+       gh_ulongs2uvect): New procedures.  (Complements gh_doubles2scm and
+       gh_doubles2dvect.)
+
+       * unif.c: Say that ivect and uvect are of type signed and unsigned
+       long instead of int in commentary so that it correctly describes
+       the implementation.
+
+1998-07-12  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * stime.c: Removed declaration of strptime.  (It should be
+       declared by the system headers.  If it turns out that some systems
+       don't, we'll handle that then.)  (Thanks to Greg Troxel.)
+
+       * stime.h: Renamed TIMEH --> STIMEH
+
+       * backtrace.c (scm_display_error, scm_display_backtrace): In order
+       to increase portability, don't use structure assignment.
+       (Thanks to Nicolas Neuss.)
+
+       * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
+       portability.
+       (finalize_fd_sets): Added empty statement after last case label.
+       (Thanks to Nicolas Neuss.)
+
+       * gc.c (scm_igc): Changed //-comment into /*-comment.  (Thanks to
+       Nicolas Neuss.)
+
+Sat Jul 11 22:08:21 1998  Mikael Djurfeldt  <mdj@totoro.red-bean.com>
+
+       * init.c, readline.c: OK, I won't have these readline.x bug
+       reports anymore.  We've had them since April.  The current reason
+       is a completely unintelligible failure of totoro.red-bean.com to
+       do the test for rl_getc_function in libreadline correctly.  This
+       kludge overrides the test if we're on totoro so that the snapshot
+       generation process can work.
+
+       * readline.c: Define a strdup replacement if not existent on system.
+
+1998-07-12  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * vectors.c, vectors.h (scm_make_vector): Removed third argument.
+       This change makes scm_make_vector R5RS compatible.  We cannot keep
+       the third argument since people want to be able to deduce the form
+       of the C function call only by looking at R5RS.  (At the same time
+       we have removed some unnecessary complexity!)
+
+       * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
+       net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
+       stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
+       argument in call to scm_make_vector.
+       
+1998-07-02  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * numbers.h (SCM_NUM2DBL): New macro.  Complements SCM_NUMBERP.
+       This macro is useful in applications.
+
+1998-06-21  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * load.c (scm_internal_parse_path): Renamed from scm_parse_path.
+       (scm_parse_path, scm_search_path): New Scheme level procedures.
+
+       * load.h (scm_internal_parse_path, scm_parse_path,
+       scm_search_path): Declared.
+
+1998-06-18  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * filesys.c (dirname, basename): New procedures.
+
+       * init.c (scm_boot_guile_1): Removed condition around
+       scm_init_options.
+
+       * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
+       new data type (guards) for representation of C level guards and
+       data on the wind chain.
+       (scm_internal_dynamic_wind): New function.
+
+       * dynwind.h: Declare scm_internal_dynamic_wind.
+       
+       * root.h (scm_root_state): Added scm_cur_loadp.
+
+       * root.c (mark_root): Added comment about cur_loadp.
+
+       * load.c: #include "dynwind.h";
+       (scm_primitive_load): Use scm_inner_dynamic_wind to update
+       scm_cur_loadp.
+
+       * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
+
+       * ports.c (current-load-port): New procedure.
+
+1998-06-09  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * ioext.c (scm_isatty_p): Accept any kind of data as argument.  If
+       not a tty, return #f.
+
+       * regex-posix.c (scm_regexp_exec): Free malloced memory.  (Thanks
+       to Julian Satchell and Roland Kaufmann.)
+
+       * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
+       (gh_write):  Added declaration.  (Thanks to Eiichi Takamori.)
+
+1998-06-07  Mikael Djurfeldt  <mdj@barbara.nada.kth.se>
+
+       * debug.h, debug.c (scm_start_stack): New function.  Implements
+       the guts of old scm_m_start_stack.
+
+       * debug.c (scm_m_start_stack): Use scm_start_stack.
+
+       * init.c (scm_start_stack, scm_restart_stack): Renamed to
+       start_stack and restart_stack.  (These have static scope.)
+
+1998-05-19  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
+       readline functions to come in release 2.3.  (Thanks to Chet
+       Ramey.)
+       (handle_errors): Use the above functions.
+
+1998-05-12  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * readline.c: Improvements for readline support: Handle errors
+       better; Implement before-read-hook.
+
+1998-05-11  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * init.c (scm_boot_guile_1), readline.c: Test for
+       HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE.  (Need to
+       assure that we have version >= 2.1.)
+
+1998-05-11  Mikael Djurfeldt  <mdj@kenneth>
+
+       * readline.c (scm_readline): Defer interrupts while we're calling
+       readline.
+
+       * readline.c (scm_add_history): Bugfix: Do strdup before giving
+       away the string to add_history.
+       (completion_function): Do completion for readline. (Thanks to
+       Andrew Archibald.)
+       (scm_filename_completion_function): New procedure: Filename
+       completer.
+       (current_input_getc): New function.  Use this one instead of
+       standard getc from readline.
+
+       * throw.c, throw.h (scm_handle_by_throw): New function: This
+       handler throws errors to next handler on the dynwind chain.
+
+1998-05-09  Mikael Djurfeldt  <mdj@kenneth>
+
+       * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
+       used.
+
+1998-05-03  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * procprop.c (scm_i_procedure_arity): New function.  Returns arity
+       of procedure.
+       (scm_procedure_properties): Modified to return arity together with
+       other properties.
+       (scm_procedure_property): Added the read-only property `arity'.
+       (scm_set_procedure_property_x): It is an error to set the `arity'
+       property.
+
+       * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
+       prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
+
+       * procprop.h (scm_sym_arity): New symbol.
+
+       * objects.c (scm_set_object_procedure_x): New procedure: Use this
+       to set the dispatch procedure of an operator or entity object.
+
+       * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
+       Made procedure slots read-only.
+
+       * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
+       scm_tcs_cons_gloc case in zero args switch; Fixed args
+       construction for operators in scm_tcs_cons_gloc case in two args
+       switch.
+
+1998-05-02  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * fluids.c: Removed use of assert.h (in order to avoid
+       __eprintf).
+
+       * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
+
+       * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
+
+       * eval.c (SCM_CEVAL): Do more thorough argument checking.  This
+       change makes the evaluator safer at the cost of evaluation speed.
+       It handles the case when the user has added a non-immediate
+       improper end of the application form, e.g., `(+ 0 . x)'.
+       (Earlier only cases like `(+ 0 . 0)' were handled.)  I've tried to
+       minimize the extra cost as much as possible.  The new code is
+       enclosed in #ifdef CAUTIOUS regions.  NOTE: This also fixes the
+       problem with structs planted directly in the code (e.g. by a
+       macro).  This no longer causes segmentation fault.  (Thanks to
+       Eric Hanchrow.)
+       
+       * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
+       arg `proc' in order to be able to throw errors; New argument
+       checking code.
+
+       * Removed extra #include "debug.h"
+
+1998-04-25  Mikael Djurfeldt  <mdj@kenneth>
+
+       * scmsigs.c: Declare usleep as returning void on some systems.
+       (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
+       Satchell.)
+
+       * coop.c (usleep): Return void on some systems.
+
+1998-04-20  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
+
+       * coop.c: Changed return type of usleep to int.
+
+       * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
+       isn't found in the OS.
+
+       * iselect.h: #define scm_internal_select select if GUILE_ISELECT
+       isn't enabled.  (Thought that I had made this change ages ago...)
+
+       * iselect.c: Declare bzero if not defined by OS.
+
+1998-04-19  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
+       condition.  (Thanks to John Tobey.)
+
+       * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
+       scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
+       A section.
+
+       * __scm.h: Start the long-term project of moving to POSIX threads.
+       Phase 1: Classification of all critical sections.
+       (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
+       for A sections.  (See comments in __scm.h for details.)
+
+       * dynl.c: Only check that HAVE_DLOPEN is defined before loading
+       dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
+
+1998-04-18  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
+       cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
+       (libpath.h, versiondat.h): Replaced dependency on Makefile with
+       dependencies on $(srcdir)/Makefile.in
+       $(top_builddir)/config.status in order to avoid circularity.
+
+       * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
+       from argc if argc was 0 initially.
+
+       * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
+       in generation of libpath.h.
+
+1998-04-15  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
+       libguile from 2 to 3.
+
+1998-04-14  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
+
+1998-04-13  Mikael Djurfeldt  <mdj@kenneth>
+
+       * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
+       scm_set_port_column_x, scm_port_filename,
+       scm_set_port_filename_x): Removed optional arguments.  Added
+       proper argument checking.
+
+       * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
+       stack size in machine words.
+
+       * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
+       rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings.  (Thanks
+       to Ole Myren Röhne.)
+
+1998-04-12  Mikael Djurfeldt  <mdj@kenneth>
+
+       * socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
+       UNIX_DOMAIN_SOCKETS.  (Thanks to Lauri Alanko.)
+
+       * gc.c (scm_gc_sweep): Count cells correctly.  (Thanks to Ben
+       Caradoc-Davies.)
+
+       * eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
+       procedure apply: Copy argument lists before pushing them unto the
+       environment so that the environment won't get mutated due to
+       manipulation of procedure arguments.  This should perhaps be
+       regarded as a temporary solution until someone finds a more
+       efficient one.  (Thanks to Maciej Stachowiak.)
+
+1998-04-10  Mikael Djurfeldt  <mdj@kenneth>
+
+       * script.c (scm_compile_shell_switches): Use "guile" as default
+       zero arg if argc is NULL.
+
+1998-04-02  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * script.c (scm_compile_shell_switches): Allow NULL argv if argc
+       is zero.  (Thanks to Dirk Herrmann.)
+
+1998-03-30  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * ports.c (scm_add_to_port_table): First line is now line 0
+       (was 1).  (Interface changed according to suggestion by Per
+       Bothner.)
+
+       * backtrace.c (display_header): Add 1 to line and column numbers
+       when presenting them to the user.
+
+       * eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
+       from debug.c --> eval.c
+
+       * eval.h, eval.c (scm_eval_options_interface): New options
+       interface.
+       (SCM_EVAL_STACK): New option: Size of newly created stacks,
+       i.e. stacks for new threads.
+       
+       * coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK.
+
+       * eval.c (unsafe_setjmp): Removed with #if 0.
+
+       * gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
+       warning.
+
+       * eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
+       to avoid compiler warnings.
+
+       * dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
+
+1998-03-28  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * throw.c (handler_message): Print message on current error port
+       instead of default error port.  (Thanks to Maciej Stachowiak.)
+
+Mon Mar  2 21:35:02 1998  Gary Houston  <ghouston@actrix.gen.nz>
+
+       * ports.c (scm_add_to_port_table): allocate in units of 
+       struct scm_port_table *, not struct scm_port_table.
+       * posix.c (scm_close_pipe): remove the port from the port table
+       and mark as closed.
+       Thanks to Rob Engle for both fixes.
+
+1998-02-06  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
+       coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
+
+1998-02-02  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * throw.h: Removed jmpbuf arg in scm_catch_body_t.
+
+       * backtrace.c (display_error_body, display_backtrace_body),
+       coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
+       gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
+       (invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
+       scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
+       functions.
+
+       * throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
+       don't receive the jmpbuf arg anylonger.
+       (scm_catch): Don't accept a #f tag.
+       (scm_throw): Check that key is a symbol.
+       (scm_ithrow): Don't take a jmpbuf as key.  Don't check key arg.
+
+Fri Jan 30 22:28:07 1998  Mikael Djurfeldt  <mdj@kenneth>
+
+       * async.c (async_pending): Removed declaration.
+
+1998-01-30  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       *  dynwind.c (scm_wind_chain): New debug function.
+
+       * coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
+       scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
+       c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
+       extra layer of functions around the body and handler of a thread.
+       This extra layer makes sure that the handler is called in the
+       dynamic context of the surround (= empty dynwind list), but under
+       the *dynamic root* of the body.  We can not use the dynamic root
+       of the surround since that root belongs to another thread => stack
+       is not handled correctly.  It may seem ugly to use this extra
+       layer, but the extra cost in terms of execution time is really
+       negligible compared to the total amount of time required to create
+       a thread, and it would reduce maintainability to duplicate the
+       crucial and complicated steps performed by cwdr.
+
+       * __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
+       (SCM_ALLOW_INTS): Added thread switching code before interrupts
+       get re-enabled.  The important effect of this is that interrupts
+       are blocked during thread switching so that thread data structures
+       don't risk getting messed up by an unfortunate signal.
+       (SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
+       seems to do more aggressive optimization which actually move
+       instructions around in these macros in a fatal way.  Therefore:
+       Introduce Anthony's SCM_FENCE macro!  (And I who thought he was
+       just superstitious...)
+       (SCM_TICK): Maybe do a context switch and take care of asyncs.
+       This macro should be used instead of SCM_ASYNC_TICK since the
+       latter doesn't do context switches any more.
+
+       * eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
+       instead of SCM_ASYNC_TICK.
+
+       * coop.c, iselect.c: Since thread switches are now performed with
+       interrupts masked, we can't use the old mechanism of delivering
+       signals immediately when they arrive.  Signals must instead be
+       delivered when the asyncs run *after* the end of the critical
+       section in scm_internal_select.  But this also means after context
+       switch so that the signal will be delivered to a different thread.
+       To avoid this, I have changed the protocol of
+       coop_wait_for_runnable_thread and friends so that they are allowed
+       to return the original thread.  So, if a signal arrives during
+       scm_internal_select, we won't any longer be forced do a context
+       switch, but can remain in the same thread and deliver the signal
+       to it.
+
+       * async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
+       scm_asyncs_pending and made it global.
+
+       * iselect.c: Small fixes.
+
+       * coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
+       coop_condition_variable_init, coop_condition_variable_wait,
+       coop_condition_variable_signal): Changed return type from `void'
+       to `int'.  This is to adhere closer to the pthreads interface.
+       This, in turn, is part of an attempt to provide C versions of the
+       mutex and condition variable primitives which can be part of a
+       frontend to COOP or pthreads.
+
+       * coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
+       coop_condition_variable_destroy): New functions.
+       
+       * coop-threads.c (scm_wait_condition_variable): Use
+       coop_condition_variable_wait_mutex.
+
+       * coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
+       Definitions moved to coop-defs.h.
+
+       * coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
+       scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
+       scm_cond_destroy): New C interface to mutecis and cond vars.
+
+1998-01-24  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7.
+
+       * iselect.c: Now several threads can wait on the same file
+       descriptor.  The behaviour is compatible with OS select: All
+       threads waiting for the fd return with the same status.
+
+1998-01-23  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * coop-threads.c, threads.h (scm_spawn_thread): New function.
+       Can spawn a thread from application C code.
+
+1998-01-20  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
+       gh_doubles2scm): New functions.
+
+1998-01-15  Mark Galassi  <rosalia@nis.lanl.gov>
+
+       * gh_eval.c (gh_eval_str): cleanup -- threw out the old
+       commented-out version of gh_eval_str()
+
+Sun Jan  4 02:23:36 1998  Gary Houston  <ghouston@actrix.gen.nz>
+
+       * socket.c (scm_bind): free soka after use.
+
+Sat Jan  3 20:55:07 1998  Gary Houston  <ghouston@actrix.gen.nz>
+
+       * stime.c (tzvar): new variable.
+       (setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
+       avoid memory leaks when allocating.
+
+1998-01-03  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * iselect.h: Some systems require <sys/types.h> to get the FD_SET
+       macro definitions.
+
+       * gc.c, tags.h: Doc fixes.
+
+1998-01-02  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * eval.c (macro-eval!): Removed.  This function was a design bug.
+       It allowed memoized code to leak out to the scheme level.  Most
+       things that you could do with `macro-eval!' can be done with
+       `local-eval'.
+
+1997-12-20  Tim Pierce  <twp@skepsis.com>
+
+       * fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
+       scm_fgets now depends on ftell(3) to know how many bytes were
+       read.  Sigh.
+
+1997-12-15  Tim Pierce  <twp@skepsis.com>
+
+       * gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
+       dealing with strings.
+
+1997-12-13  Tim Pierce  <twp@skepsis.com>
+
+       Make %read-line more suitable for implementing read-line efficiently.
+       * ioext.c (scm_read_line): Strip the terminating newline from a
+       string, and return a cons of the string and its terminator.
+
+       * fports.c, fports.h (scm_fgets): Add `len' argument.  The length
+       of the string that is read is stored in this memory location.
+       * ports.c, ports.h (scm_generic_fgets, fgets_void_port): Same.
+       * genio.c, genio.h (scm_do_read_line): Update caller.
+       * ports.h (scm_ptobfuns): Update typedef.
+       * fports.c (scm_fptob, scm_pipob): Update struct.
+
+1997-12-08  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * filesys.c (set_element): Return file descriptor.
+       (fill_select_type): Return the highest file descriptor.
+       (scm_select): Tell select about the highest file descriptor.  On
+       some systems the SELECT_SET_SIZE can be as much as 128 bytes.
+       Therefore the extra overhead for calculating the maximum fd seems
+       to be more than compensated.  Is this correct?  In any case,
+       scm_internal_select will be much faster with this info.
+       (scm_select, fill_select_type, set_element): Don't accept any kind
+       of object in the file descriptor list or vector.
+
+1997-12-07  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * iselect.c (finalize_fd_sets): Bugfix.
+
+1997-12-06  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * filesys.c (scm_select): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS
+       when using scm_internal_select (since we might switch to another
+       thread).
+
+Sun Dec  7 01:43:56 1997  Gary Houston  <ghouston@actrix.gen.nz>
+
+       * simpos.c (scm_system): always define: use sysmissing if not
+       available.  Check for HAVE_SYSTEM instead of _Windows (does
+       Windows lack system or does it have an unusable one?).
+       Check for error conditions -1 and 127.  Use SCM_DEFER_INTS.
+       Let the argument be optional: if not supplied, call system(NULL).
+
+       * ports.c (scm_close_port): relax the type check from OPPORTP to
+       PORTP; closing a closed port is allowed.
+
+1997-12-04  Tim Pierce  <twp@ppp39.Nantucket.net>
+
+       * fports.c (scm_fgets): Return if the last char in a chunk is
+       newline.  When fgets returns a string whose length is `size-1', it
+       is ambiguous whether a whole line was retrieved, so we must check
+       explicitly whether a line terminator is present.
+
+1997-12-04  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * print.h (SCM_COERCE_OUTPORT): Check that the object is a pair
+       before taking the CDR. (Thanks to Harald Meland.)
+
+       * filesys.c (scm_stat): Slightly optimized.
+
+Wed Dec  3 12:23:06 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * ports.c (scm_close_port): Make sure the port is open before
+       trying to close it.
+
+       * guile-snarf.in: Pass args through to gcc in a way that preserves
+       whitespace boundaries.  (Thanks to Greg Badros.)
+
+1997-12-02  Tim Pierce  <twp@skepsis.com>
+
+       * stacks.c (scm_frame_procedure): Reverse the logic in the return
+       statement.  (Thanks to Doug Evans for pointing this out.)
+
+1997-12-01  Tim Pierce  <twp@skepsis.com>
+
+       * scmconfig.h.in: Regenerated for USCORE change in ../acconfig.h.
+
+Sun Nov 30 11:29:18 1997  Mikael Djurfeldt  <mdj@kenneth>
+
+       * coop-defs.h (struct coop_t): Renamed errno --> _errno to prevent
+       errno macro expansion of this field name.  (errno is a C
+       preprocessor macro on some systems.)
+
+1997-11-29  Tim Pierce  <twp@skepsis.com>
+
+       * iselect.c: Doc fix.
+
+Sat Nov 29 01:16:53 1997  Mikael Djurfeldt  <mdj@kenneth>
+
+       * init.c (scm_start_stack): Removed initialization of
+       scm_the_last_stack_var.
+
+       * backtrace.h: Declare scm_the_last_stack_var.
+
+       * backtrace.c: Define scm_the_last_stack_var.
+
+       * root.c (mark_root): Don't mark the_last_stack_var.
+
+       * root.h (scm_root_state): Removed the_last_stack_var.
+
+       * throw.c: Added #include "fluids.h"
+       (ss_handler): `the-last-stack' is now a fluid.
+
+       * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
+       --> the_last_stack_fluid.
+       
+       * backtrace.c: Added #include "fluids.h"
+       (scm_init_backtrace): Initialize `the-last-stack' to a fluid.
+       (scm_backtrace): `the-last-stack' is now a fluid.
+
+       * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
+       after scm_init_fluids.
+
+1997-11-28  Tim Pierce  <twp@skepsis.com>
+
+       * iselect.c: #ifdef USE_THREADS around thread-related includes.
+
+       * dynl-dl.c (sysdep_dynl_func): Check both USCORE and
+       DLSYM_ADDS_USCORE to decide whether to add an underscore.
+
+1997-11-28  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * iselect.c (coop_next_runnable_thread,
+       coop_wait_for_runnable_thread): Disable interrupts so that no
+       async is executed before a potential error_revive.
+       (scm_internal_select): Disable interrupts during the parts of the
+       code which manipulate the sleep queue and the file descriptors.
+
+1997-11-27  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * Makefile.am: Added iselect.c and iselect.h.
+
+       * coop.c (coop_qinit): Initialize fields used by
+       scm_internal_select.
+       (coop_qget, coop_qget, coop_tmp_queue): Made global.
+       (coop_next_runnable_thread): If GUILE_ISELECT enabled, use
+       replacement in iselect.c.
+       (coop_mutex_lock, coop_condition_variable_wait, coop_abort,
+       coop_join): If GUILE_ISELECT enabled, use
+       coop_wait_for_runnable_thread instead of
+       coop_next_runnable_thread.
+       (usleep, sleep): New replacements for system functions if
+       GUILE_ISELECT is enabled.
+
+       * coop-threads.h: Declare coop_wait_for_runnable_thread.
+
+       * coop-defs.h (coop_t): Added fields used by scm_internal_select.
+
+       * filesys.c: Added #include "iselect.h".  Moved FD-macros to
+       iselect.h.  Implement Scheme level `select' using
+       scm_internal_select.  (See NEWS.)
+
+       * genio.c (scm_getc): Block with scm_internal_select.  (See NEWS.)
+
+       * init.c: Call scm_init_iselect.
+
+       * iselect.h, iselect.c: New files.  Implements
+       scm_internal_select.  (See NEWS.)
+
+1997-11-27  Tim Pierce  <twp@skepsis.com>
+
+       Fix a memory leak in scm_read_line and a type cast bug in the ptob.
+       * fports.c (scm_fgets): Use malloc/free rather than scm_must_malloc
+       and scm_must_free, since ultimately the string returned will be copied
+       by scm_makfrom0str anyway.  Also, read any characters that may have
+       been pushed onto the port with scm_ungetc.
+       * ports.c (scm_generic_fgets): Same as for scm_fgets.
+       * ioext.c (scm_read_line): Free string after Guilifying it.
+       * ports.h (scm_ptobfuns): fgets method returns a char *, not a char.
+
+1997-11-26  Anthony Green  <green@hoser.cygnus.com>
+
+       * gh_data.c (gh_set_substr): Strings can be longer than 256 bytes.
+
+       * gh.h: Safely wrap prototypes for c++ usage.
+
+1997-11-25  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh_test_repl.c (main_prog): changed invocation of gh_repl() to
+       gh_repl (argc, argv).
+
+1997-11-24  Mark Galassi  <rosalia@nis.lanl.gov>
+
+       * gh_init.c (gh_repl): modified gh_repl() to accept argc and argv
+       and to invoke scm_shell().
+       (gh_launch_pad): took out the loading of boot-9.scm from here,
+       since it is probably best to let the user control that.  In fact,
+       gh_repl() now invokes scm_shell() which does that.
+
+1997-11-23  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh_test_repl.c (main_prog): added argc and argv to the gh_repl()
+       invocation.
+
+1997-11-22  Tim Pierce  <twp@twp.tezcat.com>
+
+       * dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
+       yesterday's underscore patch.  (Thanks to Marius Vollmer for
+       spotting this.)
+
+1997-11-21  Tim Pierce  <twp@twp.tezcat.com>
+
+       * dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
+       DLSYM_ADDS_USCORE is not defined.
+
+1997-11-17  Mark Galassi  <rosalia@nis.lanl.gov>
+
+       * gh_data.c (gh_uniform_vector_length): 
+       (gh_uniform_vector_ref): started implementing the uniform types in
+       the gh_ interface.
+
+1997-11-06  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
+       of 0; size_t --> scm_size_t.  Thanks to Bernard Urban.
+
+1997-10-26  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
+       configure.in was changed).
+
+Sun Oct 26 02:20:11 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * Makefile.am (modinclude_HEADERS): Include readline.h here.
+       * Makefile.in: Regenerated.
+
+1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT.  An
+       OPORT is an `open' port, not an output port.
+
+       * filesys.c (scm_close, set_element, get_element, scm_chown,
+       scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
+       SCM_COERCE_OUTPORT to cope with the printstate/port magic.
+       * ports.c (scm_port_revealed, scm_set_port_revealed_x,
+       scm_close_port, scm_port_line, scm_set_port_line_x,
+       scm_port_column, scm_set_port_column_x, scm_port_filename,
+       scm_set_port_filename_x, scm_port_mode,
+       scm_close_all_ports_except, scm_set_current_output_port,
+       scm_set_current_error_port): Likewise
+       * ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
+       scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
+       Likewise
+       * posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
+       * backtrace.c (display_backtrace_body): Likewise
+       * fports (scm_setvbuf): Likewise
+       * socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
+       scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
+       scm_getpeername, scm_send, scm_sendto): Likewise
+       * unif.c (scm_uniform_array_write): Likewise
+
+Sat Oct 25 02:52:58 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       Minor problems with substring-related tag changes.
+       * symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
+       exactly what we want to leave in to detect substrings.
+       (SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
+       * tags.h: Fix diagrams and comments describing the S tag bit;
+       remove vestigial remarks about the D tag bit.
+       (SCM_TYP7, SCM_TYP7S): Rephrased for readability.
+       * strings.c: Formatting tweaks.
+
+       * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
+       variable first; then SCHEME_LOAD_PATH, with a warning message.
+       (scm_parse_path): New function.
+       * script.c: Doc fixes.
+
+Thu Oct 23 01:02:03 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       Readline support, from Daniel Risacher.
+       * readline.c, readline.h: New files.
+       * init.c: #include "readline.h".
+       (scm_boot_guile_1): Call scm_init_readline, if we have it.
+       * Makefile.am (libguile_la_SOURCES): Include readline.c.
+       * Makefile.in: Regenerated.
+       * scmconfig.h.in: Regenerated, after change to ../configure.
+
+1997-10-20  Mark Galassi  <rosalia@nis.lanl.gov>
+
+       * gh.h: gh_vector_set -> gh_vector_set_x
+
+1997-10-20  Mark Galassi  <rosalia@nis.lanl.gov>
+
+       * gh_data.c (gh_vector_set_x): changed name to make it consistent
+       with the ! -> _x mapping when going from Scheme to C.
+
+1997-10-19  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh.h (gh_reverse): 
+       (gh_list_tail): 
+       (gh_list_ref): 
+       (gh_memq): 
+       (gh_memv): 
+       (gh_member): 
+       (gh_assq): 
+       (gh_assv): 
+       (gh_assoc): added these gh_ functions implemented as macros.
+
+       * gh_predicates.c (gh_null_p): 
+       (gh_string_equal_p): added these two missing predicates.
+
+       * gh_list.c (gh_append): 
+       (gh_append2): 
+       (gh_append3): 
+       (gh_append4): 
+       (gh_set_car_x): 
+       (gh_set_cdr_x): added these routines as I go through and try to
+       complete the picture R4RS functions that should be mirrored in the
+       gh_ interface.
+
+Sat Oct 18 01:52:51 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * tags.h (scm_tc7_substring): Changed the comment and code to
+       conform with the changes below.  Folks!  We have suddenly two new
+       free tc7 codes!!!  Jummy, jummy!
+
+Tue Oct 14 22:03:06 1997  Tom Tromey  <tromey@cygnus.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
+       mbstrings.c.
+       (modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
+       * unif.c (scm_vector_set_length_x): Don't handle multibyte
+       strings.
+       * tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
+       (scm_tag): Don't handle multibyte strings.
+       * read.c: Don't include mbstrings.h.
+       (scm_lreadr): Don't handle multibyte ports.
+       * kw.c: Don't include mbstrings.h.
+       * init.c: Don't include mbstrings.h.
+       (scm_boot_guile_1): Don't init mbstrings module.
+       * hash.c (scm_hasher): Don't handle mbstrings.
+       * gscm.c (gscm_run_scm): Don't init mbstrings module.
+       * gc.c (scm_gc_mark): Don't handle mbstrings.
+       (scm_gc_sweep): Likewise.
+       * eval.c (SCM_CEVAL): Don't handle mbstrings.
+       * eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
+       * tags.h (SCM_TYP7SD): Removed.
+       (SCM_TYP7D): Removed.
+       (scm_tc7_mb_string): Removed.
+       (scm_tc7_mb_substring): Removed.
+       * print.c (scm_iprin1): Handle char printing directly.  Don't
+       handle mbstrings.
+       Don't include "mbstrings.h".
+       * symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
+       scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
+       multi-byte flag.
+       Don't include "mbstrings.h".
+       * symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
+       (SCM_SYMBOL_SLOTS): Define as 4.
+       (SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
+       * arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
+       gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
+       print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
+       struct.c, threads.c, throw.c, unif.c, variable.c: Use new
+       ("gen"-less) I/O function names.
+       * ports.c (scm_add_to_port_table): Don't set port's
+       representation.
+       * ports.h (scm_port_representation_type): Removed.
+       (scm_string_representation_type): Removed.
+       (struct scm_port_table ): Removed representation field.
+       (SCM_PORT_REPRESENTATION): Removed.
+       (SCM_SET_PORT_REPRESENTATION): Removed.
+       * genio.h: Use new function names.
+       * genio.c: Don't include "extchrs.h".
+       (scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
+       Removed.
+       (scm_putc, scm_puts, scm_lfwrite): No longer static.
+       (scm_getc): No longer static; handle line and column changes.
+       (scm_ungetc): Renamed from scm_gen_ungetc.
+       (scm_do_read_line): Renamed from scm_gen_read_line.
+       * libguile.h: Don't include "extchrs.h" or "mbstrings.h"
+       * extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
+
+1997-10-12  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh_test_repl.c (c_vector_test): same as gh_test_c.c
+
+       * gh_test_c.c (c_vector_test): some improvements on the vector
+       routines test.
+
+       * gh.h (gh_vector): this used to exist but do the wrong thing.
+       Now it (almost) does the right thing, though it takes a list
+       instead of the individual arguments.  I need to see how it could
+       be done right.
+       (gh_list_to_vector): added this function as a macro.  Corresponds
+       to Scheme's (list->vector ...).
+       (gh_vector_to_list): added this function as a macro.  Corresponds
+       to Scheme's (vector->list ...).
+
+       * gh_data.c (gh_vector_ref): renamed from gh_vref to
+       gh_vector_ref, so that it resembles the Scheme routines more.
+       (gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
+       resembles the Scheme routines more.
+       (gh_make_vector): this used to be (stupidly) called gh_vector().
+       This is the right name, since it does the same thing as the Scheme
+       (make-vector ...) procedure.
+
+Sun Oct 12 14:41:39 1997  Mikael Djurfeldt  <mdj@kenneth>
+
+       * ports.h: #include "libguile/print.h"
+
+       * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
+       Some indentation fixes.
+
+       * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
+       longer a user field; New field: class_flags.
+
+       * objets.c, objects.h: New metaclass: scm_metaclass_operator.
+
+Tue Oct  7 09:37:24 1997  Mark Galassi  <rosalia@cygnus.com>
+
+       * gh_data.c (gh_bool2scm): new function which replaces
+       gh_int2scmb(), which is now tagged as obsolete.
+
+1997-10-03  Mikael Djurfeldt  <mdj@nada.kth.se>
+
+       * print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test.  (NIMP
+       macros should by convention not test for NIMPness.)
+       (SCM_COERCE_OPORT): Adjust indentation.
+
+       * print.c (scm_valid_oport_value_p): Adjusted indentation; Added
+       SCM_NIMP test before SCM_PRINT_STATE_P.
+
+       * struct.c, struct.h, gc.c: Renamed:
+       scm_struct_i_layout        --> scm_vtable_index_layout
+       scm_struct_i_vcell         --> scm_vtable_index_vcell
+       scm_struct_i_vtable        --> scm_vtable_index_vtable
+       scm_struct_i_printer       --> scm_vtable_index_printer
+       scm_struct_i_vtable_offset --> scm_vtable_offset_user
+       
+       * struct.c (scm_print_struct): Use new printer slot; Default
+       printing: Also output hex code of vtable so that type identity
+       will be indicated as well.
+       (scm_init_struct): Updated required_vtable_fields to "pruosrpw";
+       Removed struct_printer_var; Removed struct-vtable-offset;
+       (vtable-index-layout, vtable-index-vtable, vtable-index-printer,
+       vtable-offset-user): New constants.
+
+       * struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
+       (scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
+       If this slot contains a procedure, use that to print structures of
+       the type represented by this vtable.
+
+       * print.c (scm_iprin1): Don't print arguments of macro
+       transformers.  (They are always: exp env.); Bugfix: Unmemoize
+       transformer source with correct environment.
+
+1997-10-02  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Streamlining of call-with-dynamic-root:
+       
+       * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
+       there is now only one catch.
+       (cwdr_outer_body): Removed.
+       (cwdr_handler): New function.
+       (scm_internal_cwdr): New function to perform the function of cwdr
+       but take args that are more useful to C code.  Also, the handler
+       is now invoked *outside* of the new dynamic root, like the docs
+       say.  We no longer have to catch absolutely all errors, the caller
+       is responsible for using a handler that does not throw, if he
+       wants that.
+       (cwdr): Reimplemented in terms of scm_internal_cwdr.
+       * root.h (scm_internal_cwdr): New prototype.
+
+       Even more but risky streamlining:
+       
+       * root.c (USE_STACKJMPBUF): New define to activate a stack-based
+       allocation of the jumpbuf of a root continuation.  The changes
+       below are controlled by it.  They are now deactivated.
+       (scm_internal_cwdr): Allocate the scm_contregs on the stack.  Set
+       the JMPBUF of the scm_rootcont to NULL before returning.
+
+       * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
+       when they are non-NULL.
+       (scm_gc_mark): Likewise, mark only when non-NULL.
+
+       Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
+       * dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
+
+       * gc.c (scm_done_malloc): New function.
+        gc.h (scm_done_malloc): New prototype.
+       
+       * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
+       (struct scm_print_state) [revealed]: New field.
+       (scm_print_state_vtable): Make visible to the outside world for
+       type checking purposes.
+       (scm_valid_oport_value_p): New prototype.
+       
+       * print.c (scm_valid_oport_value_p): New function to check whether
+       a certain value is acceptable as a port argument.
+       (scm_print_state_vtable): New variable.
+       (scm_free_print_state): Set `revealed' field to false.
+       (scm_iprin1): Call user supplied closure printer with
+       scm_printer_apply.  Print in the traditional way when there isn't
+       one or when it returns #f.
+       (scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
+       Accept a port/print-state pair in addition to just a port.
+       (scm_prin1): Don't return the print_state to the pool when it has
+       been `revealed'.
+       (scm_printer_apply): Set `revealed' field of print_state to true.
+       (scm_init_print): Set scm_print_state_vtable.
+       (print_state_fluid, print_state_fluid_num): Removed.
+       
+       * throw.h (scm_handle_by_proc_catching_all): New prototype
+       throw.c (scm_handle_by_proc_catching_all): New function
+       
+Mon Sep 29 23:54:09 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * Makefile.in: Regenerated with automake 1.2c.
+
+Sun Sep 28 21:35:42 1997  Radey Shouman  <shouman@zianet.com>
+
+       * ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
+       was looping endlessly.
+
+Sun Sep 28 00:04:29 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * strports.c (scm_eval_string): Don't close the port.
+
+       * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
+       former returns a nice normal integer.  (Thanks to Daniel
+       Risacher.)
+
+Sat Sep 27 20:19:34 1997  Jim Blandy  <jimb@totoro.red-bean.com>
+
+       * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
+       makefile variable as a build parameter called LIBS.  The
+       build-guile program will use this, for the time being.
+       * Makefile.in: Regenerated.
+
+       Thanks to Shiro Kawai:
+       * gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
+       * ports.h (scm_ptobfuns): The fgets method returns a char *, not
+       an SCM.
+
+       * Makefile.in: Regenerated with automake 1.2a.
+
+       * script.c (scm_compile_shell_switches): If we hit the -c or --
+       arguments, don't set the car of (command-line) to scm_usage_name,
+       the prettified name of the guile executable; give it the full
+       path, the way shells usually handle $0. 
+
+Wed Sep 24 22:09:52 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * ramap.c (scm_array_map): Renamed to scm_array_map_x.  Removed
+       Scheme-level name `array-map' and renamed `serial-array-map' to
+       `serial-array-map!'.
+
+       * backtrace.c: Introduced exception handlers which now enclose
+       `display-error' and `display-backtrace' so that error reporting
+       won't get into infinite loops if an error occurs during displaying
+       of the error.  This can very easily happen with user supplied
+       print call-back routines.
+
+Tue Sep 23 12:43:17 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * ramap.c: Added alias `array-map!' for `array-map'.  (Probably,
+       the names `serial-array-map' and `array-map' should be removed.)
+
+Mon Sep 22 01:21:54 1997  Mikael Djurfeldt  <mdj@kenneth>
+
+       * init.c (scm_boot_guile_1): Added scm_init_objects ().
+       Added #include "objects.h"
+
+       * eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
+       Add #include "feature.h".
+
+       * Makefile.am (libguile_la_SOURCES): Added objects.c.
+       (modinclude_HEADERS): Added objects.h.
+
+       * ports.h (SCM_EOF_OBJECT_P): New macro predicate.
+       This test is needed at many places in the code and should be
+       abstracted.  (Motivated by the need of this test in libguiletk.)
+
+       * ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
+       (scm_eval_string), load.c (scm_primitive_load,
+       scm_read_and_eval_x), gh_eval.c (gh_eval_str):
+       Use SCM_EOF_OBJECT_P.
+
+       * eval.c (scm_init_eval): Add feature `delay'.
+
+Tue Sep 16 02:12:02 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * scmhob.h: Removed.
+
 Mon Sep 15 20:42:03 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
 
        * list.h (SCM_LISTn): New macros.  Make list creation in C code
@@ -55,7 +2138,7 @@ Thu Sep 11 00:59:17 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
 
 Wed Sep 10 20:52:18 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
 
-*      * eval.c (macro?, macro-type, macro-name, macro-transfomer): New
+       * eval.c (macro?, macro-type, macro-name, macro-transformer): New
        procedures;
        (prinmacro): Removed.  The code has been moved/merged into print.c
        in order to decrease code redundancy.  We want macros to print in
@@ -67,7 +2150,7 @@ Wed Sep 10 20:52:18 1997  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
        scm_macro_transformer): New prototypes.
        (scm_tc16_macro): Declared.
 
-*      * print.c (scm_iprin1): Added code for printing of macros.  Macros
+       * print.c (scm_iprin1): Added code for printing of macros.  Macros
        are now printed in a way equivalent to procedures.
 
 Sat Sep  6 12:20:42 1997  Mikael Djurfeldt  <mdj@kenneth>