+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.)
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.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.