* errno.h: prototype for scm_strerror.
[bpt/guile.git] / libguile / ChangeLog
index 9d7782e..182fb3f 100644 (file)
@@ -1,5 +1,373 @@
+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.)
 
@@ -52,7 +420,7 @@ Fri Jun 20 10:03:41 1997  Tim Pierce  <twpierce@bio-5.bsd.uchicago.edu>
 
 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.