bpt/guile.git
25 years ago* strports.c (scm_call_with_output_string): Don't include the
Jim Blandy [Sat, 12 Jun 1999 17:26:34 +0000 (17:26 +0000)]
* strports.c (scm_call_with_output_string): Don't include the
extra character at the end of the string in the result.
* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below.  I got the
ChangeLog entries and the patch from two different places...

25 years ago* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
Jim Blandy [Sat, 12 Jun 1999 17:26:22 +0000 (17:26 +0000)]
* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below.  I got the
ChangeLog entries and the patch from two different places...

25 years ago*** empty log message ***
Jim Blandy [Sat, 12 Jun 1999 12:45:51 +0000 (12:45 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Blandy [Sat, 12 Jun 1999 12:45:23 +0000 (12:45 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Blandy [Wed, 9 Jun 1999 12:55:20 +0000 (12:55 +0000)]
*** empty log message ***

25 years ago * expect.scm (expect-regexec): define 'eof-next?'. I don't
Jim Blandy [Wed, 9 Jun 1999 12:54:59 +0000 (12:54 +0000)]
* expect.scm (expect-regexec): define 'eof-next?'.  I don't
know why it was missing.  also don't peek for end of lines
unless expect-strings-exec-flags contains regexp/noteol.
(expect-strings-exec-flags): initialise to regexp/noteol.

25 years ago* Makefile.am (ice9_sources): Add popen.scm to list.
Jim Blandy [Wed, 9 Jun 1999 12:30:45 +0000 (12:30 +0000)]
* Makefile.am (ice9_sources): Add popen.scm to list.
* Makefile.in: Regenerated.
* popen.scm: applied fixes from Greg Harvey.  use a guardian
and a gc-thunk so that cleanup is done if a pipe is garbage
collected or closed with close-port.  use a weak hash-table instead of
an alist.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.

25 years ago*** empty log message ***
Jim Blandy [Wed, 9 Jun 1999 12:25:26 +0000 (12:25 +0000)]
*** empty log message ***

25 years ago * ioext.c (scm_do_read_line): Rewritten to use memchr to find the
Jim Blandy [Wed, 9 Jun 1999 12:19:58 +0000 (12:19 +0000)]
* ioext.c (scm_do_read_line): Rewritten to use memchr to find the
newline.  A bit faster, and definitely hairier.
(scm_read_line): Count newlines here instead.
* strings.c (scm_take_str): New function.
(scm_take0str): Reimplement in terms of scm_take_str.  * strings.h
(scm_take_str): New declaration.  * ioext.c (scm_read_line): Use
scm_take_str, to avoid copying the string.
Add some simple-minded support for line buffered ports.
* ports.h (SCM_BUFLINE): New flag for ports.
* init.c (scm_init_standard_ports): Request line-buffering on
the standard output port.
* * ports.c (scm_mode_bits): Recognize 'l' as a request for line
buffering.
(scm_putc, scm_puts, scm_lfwrite): If the port is line-buffered,
and there's a newline to be written, flush the port.
* ports.c: (scm_lseek): clear buffers even if just reading current
position.
* fports.c (local_fclose): call local_fflush unconditionally.
(various): don't use the scm_must... memory procs.
* ports.h (scm_port): make read_pos a pointer to const.
strports.c: take care of rw_active and rw_randow.
fports.c: scm_fport_drain_input: removed.  do it all in ports.c.
strports.c (scm_mkstrport): check that pos is reasonable.
ioext.c (scm_ftell, scm_fseek): use lseek.
(SCM_CLEAR_BUFFERS): macro deleted.
ioext.c (redirect_port: use ptob fflush, read_flush.
ports.h (scm_ptobfuns): add ftruncate.
ports.c (scm_newptob): set ftruncate.
adjust ptob tables.
* ports.c (scm_ftruncate): new procedure.
fports.c (local_ftrunate), strports.c (str_ftruncate): new procs.
strports.c (st_seek, st_grow_port): new procs.
fports.h (scm_port): change size types from int to off_t.
ports.c (scm_init_ports): initialise the seek symbols here
instead of in ioext.c.
strports.c (scm_call_with_output_string): start with an empty
string, so seek and ftruncate can be used.
* ports.h (scm_ptobfuns): add a read_flush procedure which is the
equivalent to fflush for the read buffer.
* ports.c (scm_newptob): set read_flush.
ports.c (void_port_ptob): set read_flush.
fports.c (local_read_flush): new proc.  add to ptob.
strport.c (st_read_flush): likewise.
vport.c (sf_read_flush): likewise.
fports.h (struct scm_fport): remove random member.  there's nothing
left but fdes.  leaving it as a struct to allow for future changes.
fports.c: replace usage of scm_fport::random with scm_port::rw_random.
ports.c: (scm_putc, scm_puts, scm_lfwrite): call the read_flush
ptob proc if the read buffer is filled.
* ports.h (scm_port): add a rw_random member and replace
reading and writing members with rw_active member.
SCM_PORT_READ/SCM_PORT_WRITE: new values.
* ports.h (struct scm_port_table): add writing and reading members
to replace write_needs_seek: it isn't good enough for non-fports.
ports.c, ioext.c, fports.c: corresponding changes.
(struct scm_port_table): give it a typedef and rename to scm_port.
ports.c, fports.c, strports.c, vports.c, ioext.c, ports.h:
corresponding changes.
* ports.c (scm_newptob): bugfix: set seek member.
* * (scm_lseek): new procedure, using code from ioext.c:scm_fseek
and generalised to all port types.
* scmsigs.c (scm_init_scmsigs): set the SA_RESTART flag for all
signals (it was only being done for handlers installed from Scheme).
Otherwise (for example) SIGSTOP followed by SIGCONT on an interpreter
waiting for input caused an EINTR error from read.
* ports.h (struct scm_port_table): make all the char members
unsigned, so they convert to int without becoming negative if large.
* fports.c (scm_fdes_wait_for_input): forgot to check compilation
with threads enabled.  rename this procedure to
fport_wait_for_input and take a port instead of a fdes.
use scm_fport_input_waiting_p instead of scm_fdes_waiting_p.
* readline.c (scm_readline): Applied a patch from Greg Harvey to
get readline support working again: use fdopen to get FILE objects.
* gc.c (scm_init_storage): install an atexit proc to flush the
ports.
(cleanup): the new proc.  it sets a global variable which can be
checked by the ptob flush procs to avoid trying to throw
exceptions during exit.  not very pleasant but it seems more reliable.
* fports.c (local_fflush): check terminating variable and if set
don't throw exception.
* CHECKME: that the atexit proc is installed if unexec used.
* throw.c (scm_handle_by_message): don't flush all ports here.
it still causes bus errors.
* fports.h (SCM_FPORT_CLEAR_BUFFERS): rename to SCM_CLEAR_BUFFERS
and move to ioext.c.
* fports.c (scm_fdes_waiting_p): merged into fport_input_waiting_p.
* ports.c (scm_char_ready_p): check the port buffer and call the
ptob entry if needed.
* ports.h (scm_ptobfuns): input_waiting_p added.  change all the
ptob initialisers.  use it in char-ready
* ioext.c (scm_do_read_line): moved from ports.c.  make it static.
* vports.c (sfflush): modified to write a char (since softports
currently use shortbuf.)
* fports.c (scm_standard_stream_to_port): moved to init.c and
made static.
* init.c (scm_init_standard_ports): make stdout and stderr
unbuffered if connected to a terminal.  with stdio they
were line-buffered by default.
* ports.h (scm_ptobfuns): change fflush return to void.
change flush proc definitions.
* strports.c (scm_call_with_output_string): get size from
buffer instead of port stream.
(scm_strprint_obj): likewise.
(st_flush): new proc.
* ports.h (struct scm_port_table): added write_end member,
as an optimisation.  set it where write_buf_size is set.
* ports.h (struct scm_port_table): change stream from void *
back to SCM.  SCM presumably must be large enough to hold a
pointer (and probably vice versa but who knows.)
(SCM_SSTREAM): deleted.  change users back to SCM_STREAM.
(scm_puts): rewritten
* fports.c (local_ffwrite, local_fputs): removed.
* strports.c (stputc, stputs, stwrite): dyked out (FIXME)
* vports.c (sfputc, sfputs, sfwrite) likewise.
* ports.c (write_void_port, puts_void_port): removed.
(putc_void_port, getc_void_port, fgets_void_port): likewise.
* ports.c (scm_lfwrite): rewritten using fport.c version.
* fports.c (local_fputc): deleted.
* ports.c (scm_add_to_port_table): initialise write_needs_seek.
* ports.h (scm_ptobfuns): add seek function pointer.
* fports.c: set it to local_seek, new procedure.
* fports.h (SCM_MAYBE_DRAIN_INPUT): moved to ports.c.
use ptob for seek. take ptob instead of fport arg.
* ports.h (struct scm_port_table): new member write_needs_seek,
replaces reading member in fport struct.
* vports.c (sfgetc): store the getted char into the buffer.
rename to sf_fill_buffer and install it for fill-buffer in ptob.
the Scheme interface is still a procedure that gets a char.
(scm_make_soft_port): set up the port buffer (shortbuf).
* fports.c (local_fgetc, local_fgets): deleted.
* strports.c (stgetc): likewise.
* ports.c: scm_generic_fgets: likewise.
* ports.h (scm_ptobfuns): add fill_buffer.
* ports.c (scm_newptob): assign it.
* strports.c (scm_mkstrport): set up the buffer.
put just the string into the stream, not cons (pos stream).
(stfill_buffer): new proc.
* ports.h: fport buffer moved into port table: to be
used for all port types.
* throw.c (scm_handle_by_message): flush ports at exit.
* socket.c (scm_sock_fd_to_port): use scm_fdes_to_port.
(scm_getsockopt, scm_setsockopt, scm_shutdown, scm_connect,
scm_bind, scm_listen, scm_accept, scm_getsockname,
scm_getpeername, scm_recv, scm_send, scm_recvfrom,
scm_sendto,
use SCM_FPORT_FDES.  use SCM_OPFPORTP not SCM_FPORTP.
* posix.c (scm_getgroups): use SCM_ALLOW/DEFER_INTS.
(scm_ttyname): use SCM_FPORT_FDES.
(scm_tcgetpgrp, scm_tcsetpgrp): likewise.
* ioext.c (scm_isatty_p): use SCM_FPORT_FDES.
(scm_fdes_to_ports): modified.
(scm_fdopen): use scm_fdes_to_port.
* ports.c (scm_init_ports): don't try to flush ports using
atexit().  it's too late, errors will cause SEGV.
* fports.c (scm_fport_buffer_add): new procedure.
* fports.h (SCM_FDES_RANDOM_P): new macro.  use it in
scm_fdes_to_port and scm_redirect_port.
* ioext.c (scm_redirect_port): use setvbuf to set buffers in the
new port.  reset fp->random.
* fports.c (scm_fdes_to_port), ports.c (scm_void_port),
filesys.c (scm_opendir):
restore defer interrupts while the port is constructed.
* (scm_setvbuf): if mode is _IOFBF and size is not supplied,
derive buffer size from fdes or use a default.
(scm_fdes_to_port): use setvbuf instead of creating the buffers
directly.
vports.c (various places): use SCM_SSTREAM.
strports.c: likewise.
* gdbint.c: likewise.
* ports.h (SCM_SSTREAM): new macro.
* fports.c (scm_input_waiting_p): use scm_return_first, since port
may be removed from the stack by the tail call to scm_fdes_waiting_p.
* fports.h (SCM_CLEAR_BUFFERS): new macro.
* ports.c (scm_force_output): call scm_fflush.
* print.c (scm_newline): don't check errno for EPIPE (it wouldn't
* reach this point.)  don't flush port (if scm_cur_outp).
* fports.h (SCM_FPORT_FDES): new macro.
* vports.c (sfflush): don't need to set errno.
* ports.c: install scm_flush_all_ports to be run on exit.
ports.c fports.c ioext.c posix.c socket.c net_db.c filesys.c:
removed all uses of SCM_DEFER/ALLOW ints for now.  they were mainly
just protecting errno.  some may need to be put back.
* scmsigs.c (take_signal): save and restore errno while this
proc runs.
*fports.c (print_pipe_port, local_pclose, scm_pipob): deleted.
* open-pipe, close-pipe are emulated in (ice-9 popen)
ports.c (scm_ports_prehistory): don't init scm_pipob.
ports.h (scm_tc16_pipe): deleted.
posix.c (scm_open_pipe, scm_close_pipe): deleted.
* ioext.c (scm_primitive_move_to_fdes): use fport.
* fport.c (scm_fport_fill_buffer): flush write buffer if needed.
change arg type from scm_fport to SCM port.
fport.h (SCM_SETFDES): removed.
(SCM_MAYBE_DRAIN_INPUT): new macro.
* ioext.c (scm_dup_to_fdes): use SCM_FSTREAM.
(scm_ftell): always use lseek and account for the buffer.
(scm_fileno): use fport buffer.
(scm_fseek): clear fport buffers.  always use lseek.
* posix.c (scm_pipe): use fport buffer.
* unif.c: include fports.h instead of genio.h.
* fports.c (scm_fdes_wait_for_input, scm_fport_fill_buffer): new
procedures.
(local_fgetc): use them.
(local_ffwrite): use buffer.
(local_fgets): use buffer.
(scm_setbuf0): deleted.
(scm_setvbuf): set the buffer.
(scm_setfileno): deleted.
(scm_evict_ports): set fdes directly.
* (scm_freopen): deleted.  doesn't seem useful in Guile.
(scm_stdio_to_port): deleted.
fports.h (struct scm_fport): add shortbuf member to avoid separate
code for unbuffered ports.
(SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP): moved
from ports.h.
* genio.c, genio.h: move contents into ports.c, ports.h.  The
division wasn't useful.
* fports.c, fports.h (scm_fport_drain_input): new procedure.
* ports.c (scm_drain_input): call scm_fport_drain_input.
* scm_fdes_waiting_p: new procedure.
* fports.c (scm_fdes_to_port): allocate read and/or write buffers.
(scm_input_waiting_p): check the buffer.
(local_fgetc, local_fflush, local_fputc): likewise.
* fports.h (scm_fport): read/write_buf,_pos,_buf_end,,_buf_size:
new members.
* init.c (scm_init_standard_ports): pass fdes instead of FILE *.
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago * genio.c, genio.h: move contents into ports.c, ports.h. The
Jim Blandy [Wed, 9 Jun 1999 12:18:55 +0000 (12:18 +0000)]
* genio.c, genio.h: move contents into ports.c, ports.h.  The
division wasn't useful.
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago* gc.c (scm_igc): Check for scm_mallocated underflow. Otherwise,
Jim Blandy [Wed, 9 Jun 1999 12:18:40 +0000 (12:18 +0000)]
* gc.c (scm_igc): Check for scm_mallocated underflow.  Otherwise,
it shows up as terrible performance, as we GC constantly.
* gc.c (scm_init_storage): install an atexit proc to flush the
ports.
(cleanup): the new proc.  it sets a global variable which can be
checked by the ptob flush procs to avoid trying to throw
exceptions during exit.  not very pleasant but it seems more reliable.
* fports.c (local_fflush): check terminating variable and if set
don't throw exception.
* CHECKME: that the atexit proc is installed if unexec used.

25 years ago * ports.h (scm_port): make read_pos a pointer to const.
Jim Blandy [Wed, 9 Jun 1999 12:18:24 +0000 (12:18 +0000)]
* ports.h (scm_port): make read_pos a pointer to const.
strports.c: take care of rw_active and rw_randow.
fports.c: scm_fport_drain_input: removed.  do it all in ports.c.
strports.c (scm_mkstrport): check that pos is reasonable.
ioext.c (scm_ftell, scm_fseek): use lseek.
(SCM_CLEAR_BUFFERS): macro deleted.
ioext.c (redirect_port: use ptob fflush, read_flush.
ports.h (scm_ptobfuns): add ftruncate.
ports.c (scm_newptob): set ftruncate.
adjust ptob tables.
* ports.c (scm_ftruncate): new procedure.
fports.c (local_ftrunate), strports.c (str_ftruncate): new procs.
strports.c (st_seek, st_grow_port): new procs.
fports.h (scm_port): change size types from int to off_t.
ports.c (scm_init_ports): initialise the seek symbols here
instead of in ioext.c.
strports.c (scm_call_with_output_string): start with an empty
string, so seek and ftruncate can be used.
* ports.h (scm_ptobfuns): add a read_flush procedure which is the
equivalent to fflush for the read buffer.
* ports.c (scm_newptob): set read_flush.
ports.c (void_port_ptob): set read_flush.
fports.c (local_read_flush): new proc.  add to ptob.
strport.c (st_read_flush): likewise.
vport.c (sf_read_flush): likewise.
fports.h (struct scm_fport): remove random member.  there's nothing
left but fdes.  leaving it as a struct to allow for future changes.
fports.c: replace usage of scm_fport::random with scm_port::rw_random.
ports.c: (scm_putc, scm_puts, scm_lfwrite): call the read_flush
ptob proc if the read buffer is filled.
* fports.h (SCM_FPORT_CLEAR_BUFFERS): rename to SCM_CLEAR_BUFFERS
and move to ioext.c.
* fports.h (SCM_MAYBE_DRAIN_INPUT): moved to ports.c.
use ptob for seek. take ptob instead of fport arg.
* fports.h (SCM_FDES_RANDOM_P): new macro.  use it in
scm_fdes_to_port and scm_redirect_port.
* fports.h (SCM_CLEAR_BUFFERS): new macro.
* fports.h (SCM_FPORT_FDES): new macro.
* posix.c (scm_pipe): use fport buffer.
* unif.c: include fports.h instead of genio.h.
* fports.c (scm_fdes_wait_for_input, scm_fport_fill_buffer): new
procedures.
(local_fgetc): use them.
(local_ffwrite): use buffer.
(local_fgets): use buffer.
(scm_setbuf0): deleted.
(scm_setvbuf): set the buffer.
(scm_setfileno): deleted.
(scm_evict_ports): set fdes directly.
* (scm_freopen): deleted.  doesn't seem useful in Guile.
(scm_stdio_to_port): deleted.
fports.h (struct scm_fport): add shortbuf member to avoid separate
code for unbuffered ports.
(SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP): moved
from ports.h.
* fports.c, fports.h (scm_fport_drain_input): new procedure.
* ports.c (scm_drain_input): call scm_fport_drain_input.
* scm_fdes_waiting_p: new procedure.
* fports.c (scm_fdes_to_port): allocate read and/or write buffers.
(scm_input_waiting_p): check the buffer.
(local_fgetc, local_fflush, local_fputc): likewise.
* fports.h (scm_fport): read/write_buf,_pos,_buf_end,,_buf_size:
new members.
* init.c (scm_init_standard_ports): pass fdes instead of FILE *.
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago * fports.c (local_fclose): call local_fflush unconditionally.
Jim Blandy [Wed, 9 Jun 1999 12:18:12 +0000 (12:18 +0000)]
* fports.c (local_fclose): call local_fflush unconditionally.
(various): don't use the scm_must... memory procs.
* ports.h (scm_port): make read_pos a pointer to const.
strports.c: take care of rw_active and rw_randow.
fports.c: scm_fport_drain_input: removed.  do it all in ports.c.
strports.c (scm_mkstrport): check that pos is reasonable.
ioext.c (scm_ftell, scm_fseek): use lseek.
(SCM_CLEAR_BUFFERS): macro deleted.
ioext.c (redirect_port: use ptob fflush, read_flush.
ports.h (scm_ptobfuns): add ftruncate.
ports.c (scm_newptob): set ftruncate.
adjust ptob tables.
* ports.c (scm_ftruncate): new procedure.
fports.c (local_ftrunate), strports.c (str_ftruncate): new procs.
strports.c (st_seek, st_grow_port): new procs.
fports.h (scm_port): change size types from int to off_t.
ports.c (scm_init_ports): initialise the seek symbols here
instead of in ioext.c.
strports.c (scm_call_with_output_string): start with an empty
string, so seek and ftruncate can be used.
* ports.h (scm_ptobfuns): add a read_flush procedure which is the
equivalent to fflush for the read buffer.
* ports.c (scm_newptob): set read_flush.
ports.c (void_port_ptob): set read_flush.
fports.c (local_read_flush): new proc.  add to ptob.
strport.c (st_read_flush): likewise.
vport.c (sf_read_flush): likewise.
fports.h (struct scm_fport): remove random member.  there's nothing
left but fdes.  leaving it as a struct to allow for future changes.
fports.c: replace usage of scm_fport::random with scm_port::rw_random.
ports.c: (scm_putc, scm_puts, scm_lfwrite): call the read_flush
ptob proc if the read buffer is filled.
* ports.h (struct scm_port_table): add writing and reading members
to replace write_needs_seek: it isn't good enough for non-fports.
ports.c, ioext.c, fports.c: corresponding changes.
(struct scm_port_table): give it a typedef and rename to scm_port.
ports.c, fports.c, strports.c, vports.c, ioext.c, ports.h:
corresponding changes.
* fports.c (scm_fdes_wait_for_input): forgot to check compilation
with threads enabled.  rename this procedure to
fport_wait_for_input and take a port instead of a fdes.
use scm_fport_input_waiting_p instead of scm_fdes_waiting_p.
* gc.c (scm_init_storage): install an atexit proc to flush the
ports.
(cleanup): the new proc.  it sets a global variable which can be
checked by the ptob flush procs to avoid trying to throw
exceptions during exit.  not very pleasant but it seems more reliable.
* fports.c (local_fflush): check terminating variable and if set
don't throw exception.
* CHECKME: that the atexit proc is installed if unexec used.
* fports.c (scm_fdes_waiting_p): merged into fport_input_waiting_p.
* fports.c (scm_standard_stream_to_port): moved to init.c and
made static.
(scm_puts): rewritten
* fports.c (local_ffwrite, local_fputs): removed.
* strports.c (stputc, stputs, stwrite): dyked out (FIXME)
* vports.c (sfputc, sfputs, sfwrite) likewise.
* ports.c (write_void_port, puts_void_port): removed.
(putc_void_port, getc_void_port, fgets_void_port): likewise.
* fports.c (local_fputc): deleted.
* ports.h (scm_ptobfuns): add seek function pointer.
* fports.c: set it to local_seek, new procedure.
* fports.c (local_fgetc, local_fgets): deleted.
* strports.c (stgetc): likewise.
* ports.c: scm_generic_fgets: likewise.
* fports.c (scm_fport_buffer_add): new procedure.
* fports.c (scm_fdes_to_port), ports.c (scm_void_port),
filesys.c (scm_opendir):
restore defer interrupts while the port is constructed.
* (scm_setvbuf): if mode is _IOFBF and size is not supplied,
derive buffer size from fdes or use a default.
(scm_fdes_to_port): use setvbuf instead of creating the buffers
directly.
* fports.c (scm_input_waiting_p): use scm_return_first, since port
may be removed from the stack by the tail call to scm_fdes_waiting_p.
ports.c fports.c ioext.c posix.c socket.c net_db.c filesys.c:
removed all uses of SCM_DEFER/ALLOW ints for now.  they were mainly
just protecting errno.  some may need to be put back.
*fports.c (print_pipe_port, local_pclose, scm_pipob): deleted.
* open-pipe, close-pipe are emulated in (ice-9 popen)
ports.c (scm_ports_prehistory): don't init scm_pipob.
ports.h (scm_tc16_pipe): deleted.
posix.c (scm_open_pipe, scm_close_pipe): deleted.
* posix.c (scm_pipe): use fport buffer.
* unif.c: include fports.h instead of genio.h.
* fports.c (scm_fdes_wait_for_input, scm_fport_fill_buffer): new
procedures.
(local_fgetc): use them.
(local_ffwrite): use buffer.
(local_fgets): use buffer.
(scm_setbuf0): deleted.
(scm_setvbuf): set the buffer.
(scm_setfileno): deleted.
(scm_evict_ports): set fdes directly.
* (scm_freopen): deleted.  doesn't seem useful in Guile.
(scm_stdio_to_port): deleted.
fports.h (struct scm_fport): add shortbuf member to avoid separate
code for unbuffered ports.
(SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP): moved
from ports.h.
* fports.c, fports.h (scm_fport_drain_input): new procedure.
* ports.c (scm_drain_input): call scm_fport_drain_input.
* scm_fdes_waiting_p: new procedure.
* fports.c (scm_fdes_to_port): allocate read and/or write buffers.
(scm_input_waiting_p): check the buffer.
(local_fgetc, local_fflush, local_fputc): likewise.
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago* * ports.c (scm_drain_input): new procedure.
Jim Blandy [Wed, 9 Jun 1999 12:17:53 +0000 (12:17 +0000)]
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago * filesys.c (scm_chown): use SCM_FPORT_FDES.
Jim Blandy [Wed, 9 Jun 1999 12:17:38 +0000 (12:17 +0000)]
* filesys.c (scm_chown): use SCM_FPORT_FDES.
(scm_chmod, scm_stat, scm_truncate_file: likewise.
* fports.c (scm_fdes_to_port), ports.c (scm_void_port),
filesys.c (scm_opendir):
restore defer interrupts while the port is constructed.
* (scm_setvbuf): if mode is _IOFBF and size is not supplied,
derive buffer size from fdes or use a default.
(scm_fdes_to_port): use setvbuf instead of creating the buffers
directly.
* filesys.c (scm_fsync): use SCM_FDES.
* filesys.c (scm_fcntl): get fdes from fport.
(set_element, get_element): likewise.
* filesys.c (scm_open): adjust port_mode for O_APPEND and O_CREAT.
ports.c fports.c ioext.c posix.c socket.c net_db.c filesys.c:
removed all uses of SCM_DEFER/ALLOW ints for now.  they were mainly
just protecting errno.  some may need to be put back.
* * ports.c (scm_drain_input): new procedure.
ports.h: prototype.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
pre_read, pre_write): removed.
(local_fputc, local_fputs, local_ffwrite): use write, not stdio.
(scm_standard_stream_to_port): change first arg from FILE * to
int fdes.
(local_fflush): flush fdes, not FILE *.
* fports.h (SCM_NOFTELL): removed.
* genio.c, ports.c: don't include filesys.h.
* genio.c (scm_getc): don't use scm_internal_select if FPORT.
do it in fports.c:local_fgetc.
* genio.c: don't use SCM_SYSCALL when calling ptob procedures.
do it where it's needed in the port smobs.
* filesys.c (scm_input_waiting_p): moved to fports.c, stdio
  buffer support removed.  take SCM arg, not FILE *.
* filesys.h: prototype moved too.
* fports.c (scm_fdes_to_port): new procedure.
(local_fgetc): use read not fgetc.
(local_fclose): use close, not fclose.
(local_fgets): use read, not fgets
* fports.h: prototype for scm_fdes_to_port.
* fports.h (scm_fport): new struct.
* fports.c (scm_open_file): use open, not fopen.
#include fcntl.h
* ports.h (struct scm_port_table): change stream from SCM to void *.
* ports.c (scm_add_to_port_table): check for memory allocation error.
(scm_prinport): remove MSDOS hair.
(scm_void_port): set stream to 0 instead of SCM_BOOL_F.
(scm_close_port): don't throw errors: do it in fports.c.

25 years ago* * expect.scm (expect): call the match proc with the port instead.
Jim Blandy [Wed, 9 Jun 1999 12:17:16 +0000 (12:17 +0000)]
* * expect.scm (expect): call the match proc with the port instead.
(expect-strings): use peek-char to get the next char.  this has
the advantage of getting the handling of $ "correct", but the
disadvantage of needing to get (and maybe block for) an extra character
from the port when it may not be needed.  hence:
* (expect-strings-exec-flags): new variable/parameter, supplies
flags for regexp-exec.  if this includes regexp/noteol, then
automatic regexp/noteol handling (requiring an extra peeked char)
is enabled.  default is regexp/noteol.
*       (expect-strings-compile-flags): new variable/parameter, supplies
flags for make-regexp.  default is regexp/newline.
* * expect.scm (expect): call the match proc with an extra char,
peeked from the stream.
(expect-strings): build a match proc which takes the extra char.
(expect-regexec): take an extra arg "eof-next?" and use it
to decide whether the regexp/noteol flag should be added.

25 years ago* boot-9.scm (top-repl): don't flush all ports at exit.
Jim Blandy [Wed, 9 Jun 1999 12:17:03 +0000 (12:17 +0000)]
* boot-9.scm (top-repl): don't flush all ports at exit.
(error-catching-loop): likewise.
* boot-9.scm (scm-style-repl): -read: don't call
consume-trailing-whitespace if val is eof object.  Allows
exiting repl with single control-D.
* boot-9.scm (error-catching-loop): don't force output within
error catching loop after quit received.
(top-repl): flush all ports when the repl terminates.
* boot-9.scm (error-catching-loop): flush all ports before
primitive exit if non-interactive.
force-output on current-error-port if interactive.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.

25 years ago*** empty log message ***
Jim Blandy [Wed, 9 Jun 1999 09:42:21 +0000 (09:42 +0000)]
*** empty log message ***

25 years ago* tests/ports.test ("line counter"): Verify that we do eventually
Jim Blandy [Wed, 9 Jun 1999 09:42:15 +0000 (09:42 +0000)]
* tests/ports.test ("line counter"): Verify that we do eventually
get EOF on the port --- don't just read forever.

25 years ago* lib.scm (print-counts): XFAILS are "expected failures", not
Jim Blandy [Wed, 9 Jun 1999 09:41:54 +0000 (09:41 +0000)]
* lib.scm (print-counts): XFAILS are "expected failures", not
"unexpected failures."

25 years ago*** empty log message ***
Jim Blandy [Wed, 9 Jun 1999 08:57:32 +0000 (08:57 +0000)]
*** empty log message ***

25 years ago* lib.scm (full-reporter): The test name is the cadr of the
Jim Blandy [Wed, 9 Jun 1999 08:57:23 +0000 (08:57 +0000)]
* lib.scm (full-reporter): The test name is the cadr of the
result, not the cdr.  I'm not macho enough to handle run-time
typechecking.

25 years ago*** empty log message ***
Mikael Djurfeldt [Mon, 7 Jun 1999 09:52:39 +0000 (09:52 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Mikael Djurfeldt [Sat, 5 Jun 1999 06:00:05 +0000 (06:00 +0000)]
*** empty log message ***

25 years ago* numbers.c: Added #include "feature.h".
Mikael Djurfeldt [Sat, 5 Jun 1999 05:59:50 +0000 (05:59 +0000)]
* numbers.c: Added #include "feature.h".

25 years ago* boot-9.scm (iota): replaced by a tail recursive version.
Mikael Djurfeldt [Sat, 5 Jun 1999 05:59:26 +0000 (05:59 +0000)]
* boot-9.scm (iota):  replaced by a tail recursive version.
(reverse-iota):  removed.

25 years ago* optargs.scm (lambda*): Bugfix: Replaced ARGLIST -->
Mikael Djurfeldt [Thu, 3 Jun 1999 05:02:23 +0000 (05:02 +0000)]
* optargs.scm (lambda*): Bugfix: Replaced ARGLIST -->
non-optional-args.  (Thanks to David Lutterkort.)

25 years ago*** empty log message ***
Mikael Djurfeldt [Thu, 3 Jun 1999 05:02:05 +0000 (05:02 +0000)]
*** empty log message ***

25 years agoUpdated
Mikael Djurfeldt [Thu, 3 Jun 1999 05:01:55 +0000 (05:01 +0000)]
Updated

25 years agoGary Houston's patches turn popen into a module, which we need to
Jim Blandy [Mon, 31 May 1999 21:30:06 +0000 (21:30 +0000)]
Gary Houston's patches turn popen into a module, which we need to
import.
("pipe: read", "pipe: write"): Use close-pipe, not close-port, so
Guile will wait for the command to terminate.

25 years agoProvide a default reporter, so that results don't just go into the bit
Jim Blandy [Mon, 31 May 1999 21:27:20 +0000 (21:27 +0000)]
Provide a default reporter, so that results don't just go into the bit
bucket if you use the test suite functions without a driver script.
(default-reporter): New variable.
(report): Send results to default-reporter if there are no registered
reporters.
(full-reporter): New function.
(user-reporter): Re-implemented in terms of full-reporter.

25 years agoIgnore log files produced by benchmarks and test suites.
Jim Blandy [Sun, 30 May 1999 10:31:56 +0000 (10:31 +0000)]
Ignore log files produced by benchmarks and test suites.

25 years agoMark file as Scheme code.
Jim Blandy [Sun, 30 May 1999 09:23:37 +0000 (09:23 +0000)]
Mark file as Scheme code.
Use catch-test-errors to isolate independent tests, so we can still
get some results even though Gary Houston's patches don't support
pipes yet.

25 years agoCopyleft files.
Jim Blandy [Sun, 30 May 1999 09:22:12 +0000 (09:22 +0000)]
Copyleft files.

25 years agoIndicate which version of Guile is required to run the test suites.
Jim Blandy [Sat, 29 May 1999 14:34:02 +0000 (14:34 +0000)]
Indicate which version of Guile is required to run the test suites.

25 years agoInitial checkin of the Guile test suite.
Jim Blandy [Sat, 29 May 1999 14:22:24 +0000 (14:22 +0000)]
Initial checkin of the Guile test suite.

25 years ago*** empty log message ***
Mikael Djurfeldt [Sun, 23 May 1999 10:13:18 +0000 (10:13 +0000)]
*** empty log message ***

25 years ago* Makefile.in: Regenerated.
Mikael Djurfeldt [Sun, 23 May 1999 10:09:23 +0000 (10:09 +0000)]
* Makefile.in: Regenerated.

25 years ago* fluids.c, guardians.c, srcprop.c, threads.c: Added #include
Mikael Djurfeldt [Sun, 23 May 1999 10:03:14 +0000 (10:03 +0000)]
* fluids.c, guardians.c, srcprop.c, threads.c: Added #include
"genio.h".

25 years ago* eval.c, fports.c, libguile.h, ports.c: Removed #include
Mikael Djurfeldt [Sun, 23 May 1999 10:02:31 +0000 (10:02 +0000)]
* eval.c, fports.c, libguile.h, ports.c: Removed #include
"markers.h".

25 years ago* Makefile.am: Removed markers.c, markers.x, markers.h.
Mikael Djurfeldt [Sun, 23 May 1999 10:00:53 +0000 (10:00 +0000)]
* Makefile.am: Removed markers.c, markers.x, markers.h.
* markers.c, markers.h: Removed.  (Contents moved to smob.c,
smob.h.)
* eval.c, fports.c, libguile.h, ports.c: Removed #include
"markers.h".

25 years ago* smob.c, smob.h (scm_make_smob_type): New interface to smob
Mikael Djurfeldt [Sun, 23 May 1999 09:57:31 +0000 (09:57 +0000)]
* smob.c, smob.h (scm_make_smob_type): New interface to smob
types (supersedes scm_newsmob).
(scm_set_smob_mark, scm_set_smob_free, scm_set_smob_print,
scm_set_smob_equalp): New functions.  Sets smob functions.
(SCM_NEWSMOB): New macro.  Creates smob objects.
(scm_make_smob): New function.  Creates smob objects and
mallocates memory.
(scm_smob_free, scm_smob_print): Default free and print
functions.
* markers.c, markers.h: Removed.  (Contents moved to smob.c,
smob.h.)

25 years ago* arbiters.c, async.c, regex-posix.c: Use new smob interface.
Mikael Djurfeldt [Sun, 23 May 1999 09:57:08 +0000 (09:57 +0000)]
* arbiters.c, async.c, regex-posix.c: Use new smob interface.
* regex-posix.c, regex-posix.h: Renamed scm_tc16_regex_t -->
scm_tc16_regex.

25 years ago* arbiters.c, async.c, regex-posix.c: Use new smob interface.
Mikael Djurfeldt [Sun, 23 May 1999 09:55:54 +0000 (09:55 +0000)]
* arbiters.c, async.c, regex-posix.c: Use new smob interface.

25 years ago* Makefile.am: Removed markers.c, markers.x, markers.h.
Mikael Djurfeldt [Sun, 23 May 1999 09:53:29 +0000 (09:53 +0000)]
* Makefile.am: Removed markers.c, markers.x, markers.h.

25 years ago*** empty log message ***
Jim Blandy [Sun, 9 May 1999 09:13:20 +0000 (09:13 +0000)]
*** empty log message ***

25 years ago* strop.c (scm_string_capitalize_x): Use the SCM object `s' in
Jim Blandy [Sun, 9 May 1999 09:12:35 +0000 (09:12 +0000)]
* strop.c (scm_string_capitalize_x): Use the SCM object `s' in
error messages, not the uninitialized string `str'.  Love that
typechecking.
* strop.c (scm_substring_move_x): New function, which can handle
arbitrary overlapping substrings.
(substring-move-left!, substring-move-right!): These are
now just synonyms for substring-move!.
* strop.h (scm_substring_move_x): New prototype.
(scm_substring_move_left_x, scm_substring_move_right_x):
#define these as synonyms for scm_substring_move_x.

25 years ago* string-case.scm: Removed; functions moved to libguile/strop.c
Jim Blandy [Sun, 9 May 1999 09:12:01 +0000 (09:12 +0000)]
* string-case.scm: Removed; functions moved to libguile/strop.c
(which could be dynamically linked in the future anyway).
* Makefile.am (ice9_sources): Don't list string-case.scm.
* Makefile.in: Regenerated.
* format.scm: Don't bother importing (ice-9 string-case).

25 years ago*** empty log message ***
Jim Blandy [Sun, 9 May 1999 08:22:42 +0000 (08:22 +0000)]
*** empty log message ***

25 years ago * strop.c (scm_string_capitalize_x, scm_string_capitalize): new
Jim Blandy [Sun, 9 May 1999 08:22:11 +0000 (08:22 +0000)]
* strop.c (scm_string_capitalize_x, scm_string_capitalize): new
functions; capitalize the first letter of each word in the
argument string, and downcase the rest.
(scm_string_ci_to_symbol): string->symbol, such that the same
symbol is returned for any argument where the only difference
between strings is in capitalization.
(scm_string_upcase, scm_string_downcase): non-destructive
versions.
* strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
changed to use memmove.
* strop.c (scm_i_index): removed the pos arguments (it's only
called twice, and each time it's SCM_ARG1, SCM_ARG2, SCM_ARG3,
SCM_ARG4).
* strop.h: fixed prototypes.
* * strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
changed to have 5 required args, rather than 2 required, and 3 required
rest args. Also modified to allow str1 & str2 to overlap.
(scm_substring_fill_x): changed to 4 args, rather than 2 args and
2 required rest args.

25 years ago* string-case.scm: Removed; functions moved to libguile/strop.c
Jim Blandy [Sun, 9 May 1999 08:21:28 +0000 (08:21 +0000)]
* string-case.scm: Removed; functions moved to libguile/strop.c
(which could be dynamically linked in the future anyway).
* format.scm: Don't bother importing (ice-9 string-case).

25 years agoThis is the documentation for (ice-9 format).
Jim Blandy [Sun, 9 May 1999 08:20:56 +0000 (08:20 +0000)]
This is the documentation for (ice-9 format).

25 years ago*** empty log message ***
Jim Blandy [Sun, 2 May 1999 17:28:43 +0000 (17:28 +0000)]
*** empty log message ***

25 years ago* string-case.scm: New file, brought in from SLIB, and adapted to
Jim Blandy [Sun, 2 May 1999 17:27:28 +0000 (17:27 +0000)]
* string-case.scm: New file, brought in from SLIB, and adapted to
Guile's module system.

25 years ago* format.scm: New file, brought in from SLIB, with the following
Jim Blandy [Sun, 2 May 1999 17:27:20 +0000 (17:27 +0000)]
* format.scm: New file, brought in from SLIB, with the following
changes:
(format:format): If the first argument is the format string, stick
a #f on the front of it, so it is now a valid CL format argument
list.  This is easier than changing everyplace else (like the
error formatter) that expects it to be in CL form.  The other
clause which explicitly tests for this case is now dead code.
(format:format-work): Allow `@' and `:' in either order, as per
modern CL behavior.
(format:num->cardinal): Don't assume that an elseless if returns
'() when the condition is false.

25 years ago* boot-9.scm (provided?): New function.
Jim Blandy [Sun, 2 May 1999 17:27:05 +0000 (17:27 +0000)]
* boot-9.scm (provided?): New function.

25 years ago* Makefile.am: Add string-case.scm and format.scm to ice9_sources.
Jim Blandy [Sun, 2 May 1999 17:26:49 +0000 (17:26 +0000)]
* Makefile.am: Add string-case.scm and format.scm to ice9_sources.
* Makefile.in: Regenerated.

25 years ago* scmconfig.h.in: Regenerated; see today's change to
Jim Blandy [Sun, 2 May 1999 17:22:57 +0000 (17:22 +0000)]
* scmconfig.h.in: Regenerated; see today's change to
../configure.in.

25 years ago* procs.h: Doc fix.
Jim Blandy [Sun, 2 May 1999 17:22:47 +0000 (17:22 +0000)]
* procs.h: Doc fix.

25 years ago* numbers.c: If we're supporting floating-point, provide the
Jim Blandy [Sun, 2 May 1999 17:22:39 +0000 (17:22 +0000)]
* numbers.c: If we're supporting floating-point, provide the
feature "inexact".

25 years ago* Makefile.am (modinclude_HEADERS): Add kw.h, so the new version
Jim Blandy [Sun, 2 May 1999 17:22:27 +0000 (17:22 +0000)]
* Makefile.am (modinclude_HEADERS): Add kw.h, so the new version
gets installed.
* Makefile.in: Regenerated.

25 years ago*** empty log message ***
Jim Blandy [Sun, 2 May 1999 17:16:56 +0000 (17:16 +0000)]
*** empty log message ***

25 years ago* configure.in (AC_CHECK_FUNCS): Fill in list of functions that
Jim Blandy [Sun, 2 May 1999 17:16:26 +0000 (17:16 +0000)]
* configure.in (AC_CHECK_FUNCS): Fill in list of functions that
libguile/net_db.h wants to use.  (Add setprotoent, setservent.)

25 years ago*** empty log message ***
Jim Blandy [Sat, 17 Apr 1999 16:53:21 +0000 (16:53 +0000)]
*** empty log message ***

25 years agoRemove readline support, to avoid copyright confusion.
Jim Blandy [Sat, 17 Apr 1999 16:52:51 +0000 (16:52 +0000)]
Remove readline support, to avoid copyright confusion.
* Makefile.am: Remove readline files from lists.
* init.c: Don't initialize readline.
* scmconfig.h.in: Regenerated.

25 years ago* Makefile.in: Regenerated.
Jim Blandy [Sat, 17 Apr 1999 16:51:31 +0000 (16:51 +0000)]
* Makefile.in: Regenerated.

25 years ago* Makefile.in, configure: Regenerated with autoconf 2.13, automake
Jim Blandy [Sat, 17 Apr 1999 16:46:34 +0000 (16:46 +0000)]
* Makefile.in, configure: Regenerated with autoconf 2.13, automake
1.4, libtool 1.2f (1.385 1999/03/15 17:24:54).  I've upgraded to
all the right tools, according to README, but I'm still getting
different results than Mikael is.  Hmm.

25 years ago*** empty log message ***
Jim Blandy [Sat, 17 Apr 1999 16:41:19 +0000 (16:41 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Blandy [Sat, 17 Apr 1999 16:03:58 +0000 (16:03 +0000)]
*** empty log message ***

25 years ago* numbers.c (s_bignum): Renamed to s_bignum, and made static.
Jim Blandy [Sat, 17 Apr 1999 16:03:32 +0000 (16:03 +0000)]
* numbers.c (s_bignum): Renamed to s_bignum, and made static.
Libguile should not be exporting random little strings.
* numbers.h (s_bignum): Extern declaration removed.
More const changes from Ken Raeburn.
* numbers.c (scm_s_bignum, fx): Now const.
(scm_logtab, scm_ilentab, s_adjbig): Now static and const.
* numbers.h (scm_s_bignum): Update declaration.
* eval.c (bodycheck): Argument WHAT now points to const.
* snarf.h (SCM_SYNTAX): Name is const.
* eval.c (scm_i_let): Make this globally visible, to avoid dynamic
linking crashes on NetBSD.  (Thanks to Ken Raeburn.)

25 years agoRemove readline support, to avoid copyright confusion.
Jim Blandy [Sat, 17 Apr 1999 16:02:50 +0000 (16:02 +0000)]
Remove readline support, to avoid copyright confusion.
* Makefile.in: Remove readline files from lists.
* init.c: Don't initialize readline.
* scmconfig.h.in: Regenerated.

25 years agoRemove all automatic readline support, to avoid copyright
Jim Blandy [Sat, 17 Apr 1999 16:01:45 +0000 (16:01 +0000)]
Remove all automatic readline support, to avoid copyright
confusion.
* INSTALL: Update text.
* NEWS: Explain the situation.
* configure.in: Remove configury for readline and its supporting
libraries.
* configure: Regenerated.

25 years agoFormatting tweak.
Jim Blandy [Sat, 17 Apr 1999 15:55:54 +0000 (15:55 +0000)]
Formatting tweak.

25 years agoContent tweak.
Jim Blandy [Sat, 17 Apr 1999 15:16:18 +0000 (15:16 +0000)]
Content tweak.

25 years ago*** empty log message ***
Mikael Djurfeldt [Thu, 8 Apr 1999 06:07:30 +0000 (06:07 +0000)]
*** empty log message ***

25 years ago* boot-9.scm: Provide 'values.
Mikael Djurfeldt [Thu, 8 Apr 1999 06:06:56 +0000 (06:06 +0000)]
* boot-9.scm: Provide 'values.

25 years ago* libguile.h: Added #include evalext.h, fluids.h, guardians.h,
Mikael Djurfeldt [Sat, 27 Mar 1999 17:25:16 +0000 (17:25 +0000)]
* libguile.h: Added #include evalext.h, fluids.h, guardians.h,
macros.h, modules.h, random.h, sort.h.

25 years ago*** empty log message ***
Mikael Djurfeldt [Fri, 26 Mar 1999 14:06:13 +0000 (14:06 +0000)]
*** empty log message ***

25 years ago* numbers.c (isfinite): Define this macro if not defined: Return a
Mikael Djurfeldt [Fri, 26 Mar 1999 13:45:05 +0000 (13:45 +0000)]
* numbers.c (isfinite): Define this macro if not defined: Return a
non-zero value if X is finite.  (From ISO C 9x standard.)
(scm_inexact_to_exact): Bugfix: Don't pass NaNs to scm_dbl2big.
(Thanks to Jon Trowbridge and Greg Harvey.)

25 years agoRegenerated
Mikael Djurfeldt [Mon, 22 Mar 1999 14:00:01 +0000 (14:00 +0000)]
Regenerated

25 years ago*** empty log message ***
Mikael Djurfeldt [Mon, 22 Mar 1999 13:58:42 +0000 (13:58 +0000)]
*** empty log message ***

25 years ago* New libtool: 1.2f
Mikael Djurfeldt [Mon, 22 Mar 1999 13:55:54 +0000 (13:55 +0000)]
* New libtool: 1.2f
* ltmain.sh, ltconfig, config.guess, config.sub: New versions.

25 years ago* README: Mention new version number of libtool.
Mikael Djurfeldt [Mon, 22 Mar 1999 13:53:33 +0000 (13:53 +0000)]
* README: Mention new version number of libtool.

25 years ago* kw.h: New file.
Mikael Djurfeldt [Mon, 22 Mar 1999 12:06:52 +0000 (12:06 +0000)]
* kw.h: New file.

25 years ago*** empty log message ***
Mikael Djurfeldt [Mon, 22 Mar 1999 12:05:28 +0000 (12:05 +0000)]
*** empty log message ***

25 years agoRegenerated
Mikael Djurfeldt [Mon, 22 Mar 1999 12:05:00 +0000 (12:05 +0000)]
Regenerated

25 years ago* Makefile.am (modinclude_HEADERS): Added kw.h;
Mikael Djurfeldt [Mon, 22 Mar 1999 12:02:02 +0000 (12:02 +0000)]
* Makefile.am (modinclude_HEADERS): Added kw.h;

25 years ago* keywords.c (scm_tc16_kw): Added for backward compatibility.
Mikael Djurfeldt [Mon, 22 Mar 1999 11:58:59 +0000 (11:58 +0000)]
* keywords.c (scm_tc16_kw): Added for backward compatibility.
Will be removed in next release.

25 years ago* libguile.h: #include "libguile/kw.h"
Mikael Djurfeldt [Mon, 22 Mar 1999 11:55:38 +0000 (11:55 +0000)]
* libguile.h: #include "libguile/kw.h"

25 years ago*** empty log message ***
Mikael Djurfeldt [Mon, 22 Mar 1999 01:22:46 +0000 (01:22 +0000)]
*** empty log message ***

25 years ago* pairs.c (scm_set_car_x, scm_set_cdr_x): Return SCM_UNSPECIFIED.
Mikael Djurfeldt [Mon, 22 Mar 1999 01:22:04 +0000 (01:22 +0000)]
* pairs.c (scm_set_car_x, scm_set_cdr_x): Return SCM_UNSPECIFIED.

25 years ago*** empty log message ***
Mikael Djurfeldt [Sun, 21 Mar 1999 13:05:55 +0000 (13:05 +0000)]
*** empty log message ***

25 years ago* boot-9.scm (process-define-module, use-syntax): Bugfix:
Mikael Djurfeldt [Sun, 21 Mar 1999 13:04:39 +0000 (13:04 +0000)]
* boot-9.scm (process-define-module, use-syntax): Bugfix:
:use-syntax should add syntax to using module, not current module.
(internal-use-syntax): Removed.

25 years ago*** empty log message ***
Mikael Djurfeldt [Sun, 21 Mar 1999 10:09:18 +0000 (10:09 +0000)]
*** empty log message ***

25 years ago* print.c (scm_isymnames): Added #@dispatch and #@hash-dispatch.
Mikael Djurfeldt [Sun, 21 Mar 1999 10:08:59 +0000 (10:08 +0000)]
* print.c (scm_isymnames): Added #@dispatch and #@hash-dispatch.

25 years ago*** empty log message ***
Mikael Djurfeldt [Sun, 21 Mar 1999 05:04:45 +0000 (05:04 +0000)]
*** empty log message ***

25 years ago* session.scm (apropos-internal): Modified to comply with new
Mikael Djurfeldt [Sun, 21 Mar 1999 05:04:11 +0000 (05:04 +0000)]
* session.scm (apropos-internal): Modified to comply with new
argument order for hash-fold.

25 years ago* hashtab.c, hashtab.h (scm_hash_fold, scm_internal_hash_fold):
Mikael Djurfeldt [Sun, 21 Mar 1999 05:02:42 +0000 (05:02 +0000)]
* hashtab.c, hashtab.h (scm_hash_fold, scm_internal_hash_fold):
Place the table argument last.

25 years ago*** empty log message ***
Mikael Djurfeldt [Fri, 19 Mar 1999 07:13:56 +0000 (07:13 +0000)]
*** empty log message ***

25 years ago* debug.c, eval.c, evalext.c, gdbint.c stacks.c:
Mikael Djurfeldt [Fri, 19 Mar 1999 07:13:39 +0000 (07:13 +0000)]
* debug.c, eval.c, evalext.c, gdbint.c stacks.c:
#include "modules.h".