+Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * errno.h: prototype for scm_strerror.
+ * error.c (scm_strerror): new procedure.
+
+Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * list.c (scm_list_append_x): Allow non-pair as last argument.
+ This is consistent with the R4RS append and is probably the
+ correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
+
+Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.h: prototype for scm_times.
+ * stime.c (scm_times): new procedure.
+ * ioext.c (scm_fseek): if the first argument is a file descriptor
+ call lseek.
+ (scm_ftell): if the first argument is a file descriptor call lseek
+ (sic).
+ * filesys.h: prototypes for scm_open_fdes, scm_fsync.
+ * filesys.c (scm_chmod): if the first argument is a file descriptor,
+ call fchmod.
+ (scm_chown): if the first argument is a port or file descriptor,
+ call fchown.
+ (scm_truncate_file): new procedure.
+ Add DEFER/ALLOW INTS to a few other procedures.
+ (scm_fsync): new procedure.
+ (scm_open_fdes): new procedure.
+ (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
+ now be used.
+ (scm_fcntl): the first argument can now be a file descriptor. The
+ third argument is now optional.
+
+ * posix.c (scm_execl, scm_execlp): make the filename argument
+ compulsory, since omitting it causes SEGV.
+ (scm_sync): return unspecified instead of #f.
+ (scm_execle): new procedure.
+ (environ_list_to_c): new procedure.
+ (scm_environ): use environ_list_to_c. disable interrupts.
+ (scm_convert_exec_args): take pos and subr arguments and
+ improve error checking.
+
+1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
+ (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
+ argument to SCM_ASSERT. Furthermore, the name of the function
+ should be passed as first argument when signalling
+ SCM_WNA. (Thanks to Thomas Morgan)
+
+ * gsubr.c (scm_gsubr_apply): From Radey Shouman
+ <shouman@zianet.com>: "The switch in scm_gsubr_apply that
+ dispatches on the number of actual args has a default case
+ reporting an internal error. This is a vestige from a version
+ that mallocated a SCM vector to hold the arguments. In the
+ current version this check is too late: if it ever happens we will
+ have already overstepped the bounds of the array.
+
+ Also, the patch [...] adds a check for too many actual arguments."
+
+ mdj: Removed check for "internal programming error".
+
+Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+* * gh_io.c (gh_write): New function.
+
+* * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
+ throw.c (scm_internal_stack_catch): New sibling to the other catch
+ functions. Code moved from gh_eval.c.
+ throw.h: Added header.
+ gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
+ scm_internal_stack_catch.
+
+Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.h: fix up prototypes.
+ * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
+ Scheme name is now dup->fdes.
+ (scm_dup_to_fdes): make the second argument optional and
+ fold in the functionality of scm_primitive_dup.
+ (scm_primitive_dup): deleted.
+
+Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
+ * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
+ ultrix are defined. Use setvbuf instead of setbuf.
+ (scm_setvbuf): new procedure.
+ (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
+ (scm_setfileno): moved from ioext.c.
+ (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
+ (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
+
+Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c (scm_fluid_p): New function.
+ * fluids.h (scm_fluid_p): New prototype.
+
+Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * print.c (scm_iprin1): Enter printed structures into the print
+ state as nested data while they are printed.
+ (print_state_fluid, print_state_fluid_num): New variables.
+ (scm_init_print): Initialize them.
+ (scm_iprin): If print_state_fluid carries a print_state, use that
+ instead of creating a new one.
+ (scm_printer_apply, apply_stub, struct apply_data): New
+ definitions to help with calling printer functions written in
+ Scheme.
+ * print.h (scm_printer_apply): New prototype.
+
+ * struct.c (scm_print_struct): Use scm_printer_apply to call the
+ user defined struct printer.
+
+ * dynwind.c (scm_dowinds): Handle fluids on the wind list.
+ * fluids.h (scm_internal_with_fluids, scm_with_fluids,
+ scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
+ * fluids.c (scm_internal_with_fluids, scm_with_fluids,
+ scm_swap_fluids, scm_swap_fluids_reverse): New functions.
+
+Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
+ SCM_ASSERT: arg comes before pos.
+
+Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
+ to a list of length zero correctly.
+
+Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ Supply an `fgets' method for port objects to do fast line i/o.
+ * ioext.c (scm_read_line): New function.
+ * genio.c (scm_gen_read_line): New function.
+ * fports.c (scm_fgets): New function.
+ (scm_fptob, scm_pipob): Add scm_fgets method.
+ * ports.c (fgets_void_port, scm_generic_fgets): New functions.
+ (void_port_ptob): Add void fgets method.
+ (scm_newptob): Initialize fgets method from ptob struct.
+ * ports.h (scm_ptobfuns): Add fgets method.
+ * vports.c (scm_sfptob): Supply generic fgets method.
+ * strports.c (scm_stptob): Supply generic fgets method.
+
+Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.h: removed scm_duplicate_port prototype.
+
+ * ioext.c (scm_primitive_dup2): return the new file descriptor
+ instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
+ is convenient.
+ (scm_fdopen): bug fix: don't try to make port unbuffered until its
+ stream has been set.
+ (scm_duplicate_port): deleted, there's now an implementation in
+ boot-9.scm.
+ (scm_primitive_dup2): do nothing if newfd == oldfd.
+
+Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
+ argument.
+
+ * ioext.h: new prototypes.
+ * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
+
+ * fluids.c (next_fluid_num): don't do
+ SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
+
+ * ports.h: prototypes too.
+ * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
+
+ * fports.h: prototype too.
+ * fports.c (scm_evict_ports): moved from ioext.c.
+
+Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.c (scm_close_port): return a boolean instead of unspecified.
+ throw an error if an error other than EBADF occurs.
+
+ * filesys.h: scm_close prototype.
+ * filesys.c (scm_close): new procedure, can close file descriptors
+ and ports (scsh compatible).
+
+ * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
+ optional argument.
+
+Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c, fluid.h: New files.
+ * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
+ (modinclude_HEADERS): Added "fluids.h"
+
+ * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
+ scm_init_fluids to initialize the fluid machine.
+ (scm_start_stack): Initialize the fluids of the first root with
+ scm_make_initial_fluids.
+
+ * root.h: Added "fluids" member to scm_root_state.
+ * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
+ (scm_make_root): Call scm_copy_fluids to make fluid bindings
+ unique for the new root when it has a parent.
+
+ * smob.h: Include "libguile/print.h" to make scm_print_state
+ visible.
+
+ * dynl.c (free_dynl_obj): New function to free the dynamic object
+ data. (dynl_smob): Use it.
+ * dynl.c (scm_dynamic_link): Moved allocating of the memory for
+ the dynamic object data below the linking of the object to avoid
+ memory leak when the linking code throws an error. Now the code
+ leaks a whole dynamically linked library when must_malloc throws,
+ but that should be much less likely.
+
+Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Changes to compile under gnu-win32, from Marcus Daniels:
+ * stime.c (tzset): If tzset isn't provided, make it a NOP.
+ (scm_localtime): Change SCM_EOF to SCM_EOL.
+ (scm_mktime): Likewise.
+ * socket.c: Don't include sys/un.h unless autoconf tells
+ us Unix domain sockets are available.
+ (scm_fill_sockaddr): Ignore Unix domain code.
+ (scm_addr_vector): Likewise.
+ (scm_init_addr_buffer): Likewise.
+ (scm_socketpair): Don't include unless socketpair was
+ found during autoconf.
+ * simpos.c (SYSTNAME): Treat cygwin like Unix.
+ * scmsigs.c (scm_pause): Don't include unless pause was found
+ during autoconf.
+ * posix.c (scm_getgroups): Don't include unless support function
+ was found during autoconf (in this case, getgroups).
+ (scm_setpwent): For setpwent.
+ (scm_setegid): For setegid.
+ * net_db.c (scm_inet_netof): Don't include unless support
+ function was found during autoconf (in this case, inet_netof).
+ (scm_lnaof): For inet_lnaof.
+ (scm_inet_makeaddr): For inet_makeaddr.
+ (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
+ (scm_getproto): For getprotoent.
+ (scm_getserv): For getservent.
+ (scm_sethost): For sethostent, endhostent.
+ (scm_setnet): For setnetent, endnetent.
+ (scm_setproto): For setprotoent, endprotoent.
+ (scm_setserv): For setservent, endservent.
+ * scmconfig.h.in: Regenerated.
+
+Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
+ scm_misc_error, not SCM_EOF.
+
+ * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
+ arguments for formatting the error message, not SCM_BOOL_F. I
+ think this is left over from the (eq? '() #f) days.
+
+ * read.c (recsexpr): Give this a dummy definition if
+ DEBUG_EXTENSIONS isn't #defined.
+
+Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * coop-threads.c (scm_wait_condition_variable): Lock mutex again
+ after waiting.
+
+Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
+ scm_internal_catch.
+
+Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
+ alloca.lo will be included in @LIBLOBJS@. Something better than
+ this should be possible.
+ * Makefile.in: Regenerated.
+
+Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * simpos.h: prototype for scm_primitive_exit.
+ * simpos.c (scm_primitive_exit): new procedure, terminates the
+ process without unwinding the stack.
+
+Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
+ argument and logior its components together, so the user doesn't
+ have to do this explicitly. Also, if regexp/basic is supplied, then
+ turn off REG_EXTENDED.
+ (scm_init_regex_posix): New regexp/basic symbol.
+ (REG_BASIC): #define this if it is not already present.
+
+Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
+ (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
+ (CLEANFILES): New target, clean versiondat.h, libpath.h.
+ (DISTCLEANFILES): New target, clean *.x.
+ * Makefile.in: Regenerated.
+
+Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * script.c (scm_compile_shell_switches): Add 1997 to copyright
+ years in usage message.
+
+ * Makefile.am (libguile_la_LDFLAGS): Bump library version.
+ * Makefile.in: Regenerated.
+
+ * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
+ flag; I don't think we support it.
+ (scm_make_regexp): Make sure the user doesn't pass the
+ regexp/nosub flag.
+
+ * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
+ FLAGS arguments.
+ (scm_init_regex_posix): Define constants for the REG_mumble flags;
+ name them according to the SCSH convention: regexp/mumble.
+
+ * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
+
+Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * Makefile.am (libpath.h): Include the values of all the standard
+ Makefile directory variables. Print a message, but don't print
+ all the commands.
+ (versiondat.h): Print a message, but don't print all the commands.
+ * load.c: #include "alist.h".
+ (init_build_info): New function.
+ (scm_init_load): Call it.
+ * Makefile.in: Regenerated.
+
+Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * root.c: Establish a reliable catch-all handler for the new root.
+ After all the Scheme handler function might signal an error too,
+ and we don't want to lose that.
+ (cwdr_inner_body): Renamed from cwdr_body.
+ (cwdr_outer_body): New function, to establish the user's handler,
+ and pass control to cwdr_inner_body.
+ (cwdr): Establish the reliable catch-all handler here, and pass
+ control to cwdr_outer_body.
+ (struct cwdr_body_data): New field, handler, to allow cwdr to pass
+ the user's handler through to cwdr_outer_body.
+ * throw.c (scm_handle_by_message): Move guts into....
+ (handler_message): New static function.
+ (scm_handle_by_message_noexit): New function.
+ * throw.h (scm_handle_by_message_noexit): New prototype.
+
+ * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
+ across this. Only works on GCC. Otherwise, we hope for the best.
+ (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
+ the feeling that real thread systems will not need this...
+
+Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Try to detect when people are using one version of libguile and a
+ different version of ice-9. People have been skewing things and
+ sending in bug reports.
+ * Makefile.am (versiondat.h): New file to generate.
+ * version.c: #include "versiondat.h", to get version info.
+ (scm_libguile_config_stamp): New function.
+ * script.c: #include "version.h".
+ (scm_compile_switches): Call scm_version to get version number.
+ * scmconfig.h.in, Makefile.in: Regenerated.
+ * Makefile.in: Regenerated.
+
+ * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
+ primitive definitions under their Scheme names.
+
+ * Makefile.am (libguile_la_LDFLAGS): Update library version to
+ 1:2. Helps avoid confusion between installed and uninstalled libs.
+
+ * scmconfig.h.in: Regenerated. (Needed after June 3 change to
+ ../configure.in.)
+
+ * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
+ backslash from definition; this should be used like: GDB_INTERFACE;
+
+Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c (scm_duplicate_port): bug fix: don't try to make the
+ new port unbuffered until its stream has been set.
+
+Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.h: new prototype.
+ * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
+
+Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Make things compile neatly under Sun's C compiler.
+ * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
+ * extchrs.c (xmbtowc): Make the second arg a normal char, not
+ unsigned, because that's what the ANSI function takes.
+ * extchrs.h (xmbtowc): Corresponding change to prototype.
+ * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
+ uchars here.
+ * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
+ argument plain char *.
+ * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
+ char.
+ * tag.c (scm_tag): Remove unreachable statement.
+ * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
+ top of the word, it should be unsigned.
+
+ * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
+ is defined, to avoid warnings; it's only used in the
+ conflict-checking code. Which might go away anyway.
+ (SCM_CEVAL): All goto's targeting the `dispatch' label are in
+ conditionals; put the label definition in an #if too, to stifle
+ warnings.
+
+ * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
+ ChangeLog-threads in the distribution.
+ * Makefile.in: Regenerated.
+
+Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * guile-snarf.in: Changed regexp to support CPPs that insert
+ whitespace between lexical tokens (which munges the `%%%' snarf
+ cookie).
+
+Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * load.c (scm_init_load_path): Append $(datadir)/guile to
+ %load-path, so modules do not have to be installed in Guile's
+ current version directory.
+
+Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
+ function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
+ (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
+ call the sysdep functions with deferred ints.
+ * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
+ sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
+ deferred interrupts and insert SCM_ALLOW_INTS before throwing an
+ error.
+
+ * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
+ SCM_UNSPECIFIED.
+
+Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
+
+Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
+ ../configure.in.
+
+Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_lookupcar1): New procedure to cope with a race
+ condition during lookup (when using threads).
+ (scm_lookupcar): Implement in terms of scm_lookupcar1.
+ (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
+ place.
+
+Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * regex-posix.c (scm_regexp_exec): Use the `start' argument if
+ supplied. (Change from Tim Pierce.)
+
+Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
+ 23:47:01 1997" changelog: Slots are now initialized with `#f' by
+ default and not `()'. `#f' is the canonical non-value in Scheme,
+ right?
+
+Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (struct_printer): New variable that holds a handle on
+ the Scheme variable *struct-printer*. This variable can be set by
+ Scheme code to override the printing of structures.
+ (scm_print_struct): If struct_printer is set, call it. If it is
+ not set, or returns #f, print the structure in the old fashion.
+ Include "eval.h" for scm_apply.
+
+Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (scm_struct_ref, scm_struct_set_x): Use
+ scm_struct_i_n_words to get the number of fields, not
+ -scm_struct_n_extra_words.
+
+ On the route to fancier struct printing:
+ * struct.c (scm_print_struct): New function to print a structure.
+ Include "genio.h" to support it. This function doesn't do
+ anything interesting right now, but I think it should be here
+ anyway.
+ * struct.h: Include "print.h" and add prototype for
+ scm_print_struct.
+ * print.c (scm_iprin1): Call scm_print_struct instead of trying to
+ print structures ourself.
+
+Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
+ before applying the handler in case it doesn't return.
+
+Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.h, async.h: updated.
+
+ * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
+ loop.
+
+ * posix.c (scm_uname): interpret only negative values as an error.
+ Solaris normally returns a positive value.
+
+ * script.c (scm_compile_shell_switches): if we are not going into
+ an interactive repl, set scm_mask_ints to zero so that asyncs can
+ run.
+
+ * simpos.c (scm_system): don't ignore/unignore signals around
+ the "system" call.
+
+ * posix.c (scm_open_pipe): don't ignore/unignore signals around
+ the "popen" call.
+
+ * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
+ done in boot-9.scm instead.
+
+ * scmsigs.c, async.c: Major rewriting of signal handling code.
+ (scm_sigaction): new procedure.
+ (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
+ timing.
+ (scm_raise): return unspecified, throw error on failure.
+
+Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * regex-posix.c (scm_init_regex_posix): Register the "regex"
+ feature, to help boot-9.scm decide whether to import the regex
+ module.
+
+Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c: Include scmconfig.h at the beginning of the file so that
+ HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
+ pointing this out.
+
+ * regex-posix.c: #include "_scm.h" before conditionally #including
+ <regex.h>; the former defines HAVE_REGCOMP.
+
+ * regex-posix.c: #include <regex.h> conditionally, so the file is
+ CPP'able (for dependency scanning) even on systems that don't have
+ a <regex.h> header.
+
+Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Add new R4RS-compliant syntax for keywords.
+ * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
+ regardless of the setting of the `keywords' read option.
+ * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
+ can be re-read no matter what the setting of the `keywords' read
+ option.
+
+Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ Add support for POSIX regular expressions.
+
+ * regex-posix.c, regex-posix.h: New files. (Some code
+ is taken liberally from rx/rgx.c in the old Guile dist.)
+
+ * init.c: Include regex-posix.h.
+ (scm_boot_guile_1): Call scm_init_regex_posix.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
+ Add regex-posix.[ch] sources.
+ * Makefile.in: Regenerated.
+
+ * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
+ to do this automatically? It didn't for me, bleh.)
+
+Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * fports.c (print_pipe_port): New function.
+ (scm_fptob): Use print_pipe_port instead of scm_prinport; the
+ latter doesn't even take the right arguments.
+
+ * Makefile.am: Increment shared lib revision number. I think
+ sometimes the uninstalled Guile finds the installed shared lib;
+ Gord says doing this might help. As things turned out, I can't
+ say whether it does.
+ * Makefile.in: Regenerated.
+
+ * gh_init.c (gh_enter): Cast c_main_prog to a void * before
+ passing it as the closure argument to scm_boot_guile. (Bill
+ Janssen)
+
+ * ports.c (print_void_port, putc_void_port, puts_void_port,
+ write_void_port, flush_void_port, getc_void_port, close_void_port,
+ noop0): Use ANSI prototypes instead of K&R declarations, so the
+ initialization of void_port_ptob gets aggressively type-checked.
+ Fix arguments of print_void_port and write_void_port. (Bill
+ Janssen)
+
+ * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
+ appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
+ backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
+ continuations.c, continuations.h, coop-defs.h, coop-threads.c,
+ coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
+ coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
+ dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
+ error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
+ filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
+ gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
+ gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
+ gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
+ gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
+ init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
+ list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
+ markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
+ mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
+ objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
+ ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
+ procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
+ read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
+ script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
+ smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
+ stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
+ strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
+ strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
+ tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
+ unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
+ version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
+ address for FSF.
+
+Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * script.c (scm_find_executable): Use prototype-style definition
+ here; apparently it's not quite right to have const in a prototype
+ and then use a K&R declaration. I wonder if stuff like this will
+ go away if we compile with -Wrequire-prototypes, or whatever that
+ is... (Bernard URBAN)
+
+ * scmhob.h: New text from Bernard URBAN.
+
+Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * script.c: Don't #define const on hpux. Configure takes care of
+ this. (Thanks to Larry Schwimmer.)
+
+ * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
+ decide whether to #include <unistd.h>, instead of listing a bunch
+ of systems. Don't #include stdio twice. Removed dyked-out
+ definition of scm_find_impl_file.
+
+Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
+ library version info to 1:0.
+ * Makefile.in: Regenerated.
+
+ * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
+ gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
+ gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
+ init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
+ script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
+ throw.c: Update copyright years; these files have been worked on
+ significantly in 1997, but only had copyright years for 1996.
+ Also, change name of copyright holder on some from Mikael
+ Djurfeldt to Free Software Foundation; he has signed papers
+ assigning the changes to the FSF.
+
+ * script.c (scm_shell_usage): Pass FATAL to exit. There's no
+ reason not to give the user the option.
+
+ * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
+ Return #f on end-of-file when scanning table (i.e. when called
+ with no arguments). Try to catch errors, when we can.
+ * posix.c (scm_getgrgid, scm_getpwuid): Same.
+
+ * script.h (scm_shell_usage, scm_compile_shell_switches): New
+ external declarations. These are useful.
+
+Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * posix.c: don't include <sys/select.h> or define macros for
+ select, since they were not used in this file.
+
+ * filesys.c (scm_select): make the fifth parameter microseconds,
+ not milliseconds. let the fourth parameter be either a real value
+ or an integer or #f. The first, second and third arguments can
+ now be vectors: the type of the corresponding return set will be
+ the same.
+ (set_element, get_element): new static procedures.
+
+Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * strports.c (scm_eval_string): New function.
+ (scm_eval_0str): Trivially re-implemented in terms of
+ scm_eval_string.
+ * strports.h (scm_eval_string): New extern decl.
+
+ * net_db.c (h_errno): Add extern decl for this.
+
+ * fports.c (local_pclose): New function.
+ (scm_pipob): Use it in the initializer here.
+
+ From Tim Pierce:
+ * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
+ Use a meaningful error message when signalling an error. For
+ this, scm_gethost must check h_errno rather than errno.
+
+Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in: Regenerated, using automake-1.1p.
+
+Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
+ not SCM_UNSPECIFIED.
+
+ * script.c (scm_compile_shell_switches): don't append (quit) if
+ interactive.
+ (scm_shell): call scm_exit_status and exit on the result of the
+ evaluation.
+
+Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Ensure that shared substrings are handled properly when passed to
+ a system call or other foreign function. Many thanks to Tim
+ Pierce!
+ * symbols.h (SCM_COERCE_SUBSTR): new macro.
+ * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
+ scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
+ scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
+ scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
+ scm_strftime), vports.c (scm_make_soft_port), backtrace.c
+ (scm_display_error_message): use RO macros when strings may be RO.
+ * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
+ scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
+ scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
+ (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
+ (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
+ (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
+ scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
+ scm_strftime), vports.c (scm_make_soft_port): use
+ SCM_COERCE_SUBSTR to make sure shared substrings are
+ null-terminated.
+
+Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * error.c (scm_error): Add newline to error message.
+
+ * init.c (scm_init_standard_ports): Doc fix.
+
+Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl-shl.c: Completely replaced with new code from Bernard
+ URBAN.
+
+ * script.c (scm_ice_9_already_loaded): New variable.
+ (scm_compile_shell_switches): Use it.
+
+Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_input_waiting_p): add missing third argument to
+ scm_misc_error.
+
+ * stime.c (scm_localtime): copy the result of localtime before
+ calling gmtime in case they share a buffer.
+ (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
+ nor HAVE_TZNAME.
+
+Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
+
+Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (check-local): New target, which causes 'make check'
+ to run gh_test_c and gh_test_repl, with some trivial input.
+ * Makefile.in: Rgnrtd.
+
+Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
+ been unlinked.
+
+Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * async.c (scm_sys_tick_async_thunk): commented out. I'm not
+ sure how this was supposed to work.
+ (scm_async_click): don't send SCM_TICK_SIGNAL.
+ (scm_init_async): don't initialize %tick-thunk.
+
+ * the following change doesn't affect the Scheme interface:
+ gc-thunk is called at the end of garbage collection. however it's
+ no longer implemented by pretending it's a signal.
+
+ * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
+ system async corresponding to scm_gc_thunk.
+ * async.h: declare scm_gc_async.
+ * async.c (scm_sys_gc_async_thunk): apply the thunk named by
+ gc-thunk directly, instead of going through a signal handler.
+ (scm_gc_async): new variable, points to the GC system-async.
+ (scm_init_async): save the GC async as scm_gc_async instead
+ of using system_signal_asyncs.
+ (scm_gc_vcell): new variable, stores the gc-thunk vcell.
+
+Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
+ Don't screw up if we're interrupted.
+ * Makefile.in: Regeneradet.
+
+Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
+
+ * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
+ we're not using AM_INIT_GUILE_MODULE any more.
+ * Makefile.in: Reneregated.
+
+Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Functions for finding variable bindings, grace à Tim Pierce.
+ * gh_data.c (gh_lookup, gh_module_lookup): New functions.
+ * gh.h (gh_lookup, gh_module_lookup): New prototypes.
+
+ Get 'make dist' to work again.
+ * Makefile.am (EXTRA_DIST): Remove PLUGIN files.
+ * Makefile.in: Regenerated, like a surry without a fringe on top.
+
+ Changes for reduced Guile distribution: one configure script,
+ no plugins.
+ * configure.in, configure: Removed.
+ * acconfig.h, acinclude.m4: Moved to parent directory, where the
+ real configure script lives.
+ * Makefile.in, scmconfig.h.in: Regenerated.
+
+ * init.c: #include "script.h", to get prototype for script.c's
+ init function.
+
+Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
+ scm_must_malloc, not raw malloc.
+
+ * script.c (scm_compile_shell_switches): Dyke out debugging output
+ code.
+
+Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
+
+ * stime.c: include both <sys/times.h> and <sys/timeb.h> if the
+ system has them. Hope this is safe. Previously
+ sys/timeb.h was included if HAVE_FTIME was defined or if
+ HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
+ but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
+
+ * ioext.c (scm_setfileno): add missing third argument to
+ scm_misc_error call.
+
+Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * eq.c (scm_equal_p): Correctly compare strings of different
+ varieties. (Thanks to Tim Pierce.)
+
Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
* read.c (skip_scsh_block_comment): SCSH says the !# that ends a
Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
-* * filesys.c (scm_fcntl): New function from Roland McGrath.
+ * filesys.c (scm_fcntl): New function from Roland McGrath.
(scm_init_filesys): New symbols for use with fcntl.
* filesys.h: Added prototype.
(scm_strftime): don't call mktime before strftime. Use
filltime for return value.
(filltime): convert NULL zname to #f.
-* (scm_strptime): return a count of characters consumed, not
+ (scm_strptime): return a count of characters consumed, not
the remaining string.
Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
* posix.h: add prototype for scm_close_pipe, remove prototypes for
scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
-* * posix.c (scm_mknod): split the mode argument into type and perms
+ * posix.c (scm_mknod): split the mode argument into type and perms
arguments, like the extra fields returned by stat.
* fports.c (scm_pipob): set the close, free and print procedures.
* unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
a scm_tc7_byvect.
- * ramap.c (scm_ra_matchp, scm_ra_matchp, scm_array_fill_int, racp,
+ * ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
support for byte vectors.
Setup scm_keyword_prefix symbol.
(scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
set to 'prefix.
-* I've left keyword support disabled by default, since it doesn't
+ I've left keyword support disabled by default, since it doesn't
seem to break the module system and it gives R4RS standard behaviour.
It can be reactivated with (read-set! keywords 'prefix).
* read.c (scm_read_hash_procedures): new variable.
(scm_read_hash_extend): new procedure.
(scm_get_hash_procedure): new procedure.
-* (scm_lreadr): use scm_get_hash_procedure instead of an argument
+ (scm_lreadr): use scm_get_hash_procedure instead of an argument
for extended # processing.
(scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
scm_read_token): remove case_i, sharp arguments. Change callers.
(SCM_CASE_INSENSITIVE_P): define.
* read.c: add case-insensitive option to scm_read_opts.
-* (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
+ (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
to determine whether to convert symbol case.
(default_case_i): definition removed.
* read.c (scm_read_token): if case_i, downcase ic before doing
debug support twice, but it also seems to increase the speed of
the evaluator for such calls (e. g. (+ 1 2 3)).
-* * backtrace.c (scm_display_application): New procedure:
+ * backtrace.c (scm_display_application): New procedure:
display-application; Set fancy printing parameters individually
for different types of display (backtrace, error, application).
(These should of course be customizable!)
(scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
we get segmentation fault!
-* * symbols.c: Added #include "weaks.h". New functions:
+ * symbols.c: Added #include "weaks.h". New functions:
`builtin-bindings' and `builtin-weak-bindings'. (These will be
moved to an extraneous library when we split libguile.)
Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
-* * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
+ * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
* ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
-* * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
+ * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
to avoid clash with various scsh forks.
Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
* __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
* ioext.h: update prototypes.
-* * ioext.c (scm_read_delimited_x): replaces scm_read_line and
+ * ioext.c (scm_read_delimited_x): replaces scm_read_line and
scm_read_line_x, it's a more general procedure using an
interface from scsh. read-line and read-line! are now defined
in boot-9.scm.
-* Note that the new read-line trims the terminator
+ Note that the new read-line trims the terminator
by default, previously it was appended to the returned string. An
optional argument specifies how to process the terminator (scsh
compatible). For the old behaviour: (read-line port 'concat).
socket.h: update prototypes.
* socket.c (scm_recvfrom): for consistency with other procedures,
take start and end as separate optional arguments.
-* (scm_recv, scm_recvfrom): don't allow the second argument
+ (scm_recv, scm_recvfrom): don't allow the second argument
to be a size, only a buffer. Change the scheme names to
recv! and recvfrom!. Don't return the buffer.
SCM_FD.
* filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
scm_syserror_msg.
-* (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
+ (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
scm_sys_dup): deleted: FD capability will be added to other
procedures.
-* Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
+ Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
scm_fd_free, fd_smob, scm_intern_fd.
-* (scm_open): renamed from scm_sys_open. Return a port instead of
+ (scm_open): renamed from scm_sys_open. Return a port instead of
an FD object. Make the mode argument optional.
-* (scm_sys_create): deleted, it's just a special case of open.
+ (scm_sys_create): deleted, it's just a special case of open.
(scm_init_filesys): move interning of constants O_CREAT etc.,
here (were previously using SCM_CONST_LONG macro).
Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.