1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-15 10:10:21 +02:00
Commit graph

5232 commits

Author SHA1 Message Date
Jim Blandy
22f4f241db * scmconfig.h.in: Regenerated. 1998-10-11 21:56:18 +00:00
Jim Blandy
335df0e83e *** empty log message *** 1998-10-11 20:35:28 +00:00
Jim Blandy
8e1043e020 * libguile.h: Don't omit the dynamic linking functions. (Thanks
to Greg Badros.)
1998-10-11 20:35:07 +00:00
Jim Blandy
5f964025e8 *** empty log message *** 1998-10-11 18:42:32 +00:00
Jim Blandy
5ead5a91d0 * genio.c (scm_do_read_line): Count lines correctly when the file
doesn't end in a newline.
1998-10-11 18:42:17 +00:00
Jim Blandy
216d3a1e28 *** empty log message *** 1998-10-10 21:29:37 +00:00
Jim Blandy
af77c5fdf1 * genio.c (scm_do_read_line): Maintain the line count correctly. 1998-10-10 21:27:34 +00:00
Jim Blandy
17f8d40ce9 *** empty log message *** 1998-10-10 12:59:50 +00:00
Jim Blandy
b098016b6e * numbers.c (big2str): Protect t from garbage collection until
we're done.  (Thanks to Gary Houston.)
1998-10-10 12:59:37 +00:00
Jim Blandy
4147236a59 * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
requires ANSI now.
1998-10-10 12:59:29 +00:00
Jim Blandy
c6ff295ec8 *** empty log message *** 1998-10-09 15:25:08 +00:00
Jim Blandy
c15f9b9dbd * Makefile.am (libguile_la_LDFLAGS): Increment shared library
version number.
* Makefile.in: Regenerated.
1998-10-09 15:24:40 +00:00
Jim Blandy
0e4233dcf6 Remove uses of the #/ syntax. 1998-10-09 15:13:12 +00:00
Jim Blandy
0445f9f28c *** empty log message *** 1998-10-09 14:25:04 +00:00
Jim Blandy
31b9e7671b *** empty log message *** 1998-10-09 12:47:01 +00:00
Jim Blandy
bc45012d8f Centralize the creation of port objects based on stdio FILE * in
fports.c; don't just throw them together anywhere.
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
what the rest of Guile wants.  Don't set the revealed count;
that's only appropriate for stdin, stdout, stderr.
(scm_standard_stream_to_port): This function does set the revealed
count.
* init.c (scm_init_standard_ports): Use	scm_standard_stream_to_port,
not scm_stdio_to_port.
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
* fports.c (scm_open_file): Same.
* posix.c (scm_pipe): Same.
* socket.c (scm_sock_fd_to_port): Same.
* ioext.c (scm_fdopen): Same.
(scm_freopen): Moved from here to...
* fports.c (scm_freopen): ... here.  This is really something that
munges the internals of an fport, so it should go here.
* fports.h (scm_stdio_to_port): Adjust prototype.
(scm_standard_stream_to_port, scm_freopen): New protoypes.
* ioext.h (scm_freopen): Prototype removed.
1998-10-09 12:46:31 +00:00
Jim Blandy
571031dca0 * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
SCM_P macro.
Do magic to mix reads and writes on stdio FILE-based ports.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
New macros.
(pre_read, pre_write): New functions.
(local_fgetc, local_fgets, local_ffwrite, local_fputc,
local_fputs): Call them.
(local_fflush): Mark the port as ready for reading and writing.
(scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
flags on new port objects.  This might not be accurate --- who
knows what state the FILE * is in when we get it --- but it won't
do extraneous calls to fflush or fseek, so it's no worse than the
behavior before this change.
* ports.h: Add comment.
Centralize the creation of port objects based on stdio FILE * in
fports.c; don't just throw them together anywhere.
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
what the rest of Guile wants.  Don't set the revealed count;
that's only appropriate for stdin, stdout, stderr.
(scm_standard_stream_to_port): This function does set the revealed
count.
* init.c (scm_init_standard_ports): Use	scm_standard_stream_to_port,
not scm_stdio_to_port.
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
* fports.c (scm_open_file): Same.
* posix.c (scm_pipe): Same.
* socket.c (scm_sock_fd_to_port): Same.
* ioext.c (scm_fdopen): Same.
(scm_freopen): Moved from here to...
* fports.c (scm_freopen): ... here.  This is really something that
munges the internals of an fport, so it should go here.
* fports.h (scm_stdio_to_port): Adjust prototype.
(scm_standard_stream_to_port, scm_freopen): New protoypes.
* ioext.h (scm_freopen): Prototype removed.
1998-10-09 12:46:13 +00:00
Jim Blandy
e145dd0277 Do magic to mix reads and writes on stdio FILE-based ports.
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
New macros.
(pre_read, pre_write): New functions.
(local_fgetc, local_fgets, local_ffwrite, local_fputc,
local_fputs): Call them.
(local_fflush): Mark the port as ready for reading and writing.
(scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
flags on new port objects.  This might not be accurate --- who
knows what state the FILE * is in when we get it --- but it won't
do extraneous calls to fflush or fseek, so it's no worse than the
behavior before this change.
* ports.h: Add comment.
Centralize the creation of port objects based on stdio FILE * in
fports.c; don't just throw them together anywhere.
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
what the rest of Guile wants.  Don't set the revealed count;
that's only appropriate for stdin, stdout, stderr.
(scm_standard_stream_to_port): This function does set the revealed
count.
* init.c (scm_init_standard_ports): Use	scm_standard_stream_to_port,
not scm_stdio_to_port.
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
* fports.c (scm_open_file): Same.
* posix.c (scm_pipe): Same.
* socket.c (scm_sock_fd_to_port): Same.
* ioext.c (scm_fdopen): Same.
(scm_freopen): Moved from here to...
* fports.c (scm_freopen): ... here.  This is really something that
munges the internals of an fport, so it should go here.
* fports.h (scm_stdio_to_port): Adjust prototype.
(scm_standard_stream_to_port, scm_freopen): New protoypes.
* ioext.h (scm_freopen): Prototype removed.
1998-10-09 12:45:20 +00:00
Jim Blandy
5621be9997 Centralize the creation of port objects based on stdio FILE * in
fports.c; don't just throw them together anywhere.
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
what the rest of Guile wants.  Don't set the revealed count;
that's only appropriate for stdin, stdout, stderr.
(scm_standard_stream_to_port): This function does set the revealed
count.
* init.c (scm_init_standard_ports): Use	scm_standard_stream_to_port,
not scm_stdio_to_port.
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
* fports.c (scm_open_file): Same.
* posix.c (scm_pipe): Same.
* socket.c (scm_sock_fd_to_port): Same.
* ioext.c (scm_fdopen): Same.
(scm_freopen): Moved from here to...
* fports.c (scm_freopen): ... here.  This is really something that
munges the internals of an fport, so it should go here.
* fports.h (scm_stdio_to_port): Adjust prototype.
(scm_standard_stream_to_port, scm_freopen): New protoypes.
* ioext.h (scm_freopen): Prototype removed.
* filesys.c (set_element, get_element): This can work on both pipe
and file ports, so use SCM_FPORTP to typecheck, instead of testing
for scm_tc16_fport.
1998-10-09 12:44:37 +00:00
Jim Blandy
74d977c610 * scmconfig.h.in: Regenerated. 1998-10-09 12:44:06 +00:00
Jim Blandy
93016112cb * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
SCM_P macro.
Centralize the creation of port objects based on stdio FILE * in
fports.c; don't just throw them together anywhere.
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
what the rest of Guile wants.  Don't set the revealed count;
that's only appropriate for stdin, stdout, stderr.
(scm_standard_stream_to_port): This function does set the revealed
count.
* init.c (scm_init_standard_ports): Use	scm_standard_stream_to_port,
not scm_stdio_to_port.
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
* fports.c (scm_open_file): Same.
* posix.c (scm_pipe): Same.
* socket.c (scm_sock_fd_to_port): Same.
* ioext.c (scm_fdopen): Same.
(scm_freopen): Moved from here to...
* fports.c (scm_freopen): ... here.  This is really something that
munges the internals of an fport, so it should go here.
* fports.h (scm_stdio_to_port): Adjust prototype.
(scm_standard_stream_to_port, scm_freopen): New protoypes.
* ioext.h (scm_freopen): Prototype removed.
1998-10-09 12:43:51 +00:00
Jim Blandy
0f88a8f3bd Change the definition of the functions in scm_ptobfuns so that
they get passed the port object, not the port's stream.
* ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
* gc.c (scm_gc_sweep): Pass the port itself to the free function.
* genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
Pass the port itself to the scm_ptobs function.
* ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
scm_generic_fgets): Same.
(putc_void_port, puts_void_port, write_void_port, flush_void_port,
getc_void_port, fgets_void_port, close_void_port): Just change the
argument names; these functions don't really do anything.
* fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
port as an argument, and use SCM_STREAM to get the stdio FILE *.
Also, use prototyped definitions, and get rid of the extra
declarations.
(scm_fptob, scm_pipob): We don't need casts here any more.
* strports.c (prinstpt): Use prototype declarations.
(stputc, stwrite, stputs, stgetc): Take the port as an argument,
and use SCM_STREAM to get the string info.  Also, use prototyped
definitions, and get rid of the extra declarations.
* vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
noop0): Same.
1998-10-09 10:02:41 +00:00
Jim Blandy
ea9fc30d4b Change the definition of the functions in scm_ptobfuns so that
they get passed the port object, not the port's stream.
* ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
* gc.c (scm_gc_sweep): Pass the port itself to the free function.
* genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
Pass the port itself to the scm_ptobs function.
* ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
scm_generic_fgets): Same.
(putc_void_port, puts_void_port, write_void_port, flush_void_port,
getc_void_port, fgets_void_port, close_void_port): Just change the
argument names; these functions don't really do anything.
* fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
port as an argument, and use SCM_STREAM to get the stdio FILE *.
Also, use prototyped definitions, and get rid of the extra
declarations.
(scm_fptob, scm_pipob): We don't need casts here any more.
* strports.c (prinstpt): Use prototype declarations.
(stputc, stwrite, stputs, stgetc): Take the port as an argument,
and use SCM_STREAM to get the string info.  Also, use prototyped
definitions, and get rid of the extra declarations.
* vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
noop0): Same.
* fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
scm_fgets, for consistency.
(scm_fptop, scm_pipob): References updated.
1998-10-09 10:01:12 +00:00
Jim Blandy
0c0669cc73 Change the definition of the functions in scm_ptobfuns so that
they get passed the port object, not the port's stream.
* ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
* gc.c (scm_gc_sweep): Pass the port itself to the free function.
* genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
Pass the port itself to the scm_ptobs function.
* ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
scm_generic_fgets): Same.
(putc_void_port, puts_void_port, write_void_port, flush_void_port,
getc_void_port, fgets_void_port, close_void_port): Just change the
argument names; these functions don't really do anything.
* fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
port as an argument, and use SCM_STREAM to get the stdio FILE *.
Also, use prototyped definitions, and get rid of the extra
declarations.
(scm_fptob, scm_pipob): We don't need casts here any more.
* strports.c (prinstpt): Use prototype declarations.
(stputc, stwrite, stputs, stgetc): Take the port as an argument,
and use SCM_STREAM to get the string info.  Also, use prototyped
definitions, and get rid of the extra declarations.
* vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
noop0): Same.
* ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
prototype; it's okay (preferred, even!) to use ANSI C in Guile.
1998-10-09 10:00:55 +00:00
Jim Blandy
cc5ca0281d Adjust formatting. 1998-10-08 20:12:53 +00:00
Jim Blandy
6d921cd6cc *** empty log message *** 1998-10-08 20:12:22 +00:00
Jim Blandy
f64056d105 Include the source location in error messages for scripts.
* init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
stack is still there when we catch the error.
* throw.c (handler_message): If we are handling an error with a
message, then put together the proper arguments and call
scm_display_error, instead of scm_display_error_message.  That
displays source location, if it can find it.
1998-10-08 20:11:59 +00:00
Jim Blandy
a8e0500932 *** empty log message *** 1998-10-07 20:06:29 +00:00
Jim Blandy
dab7f56692 * gc.c (scm_unprotect_object): Change this so that calls to
scm_protect_object and scm_unprotect_object nest properly.
(scm_protect_object): Doc fixes.
1998-10-07 20:05:56 +00:00
Jim Blandy
74f8751631 *** empty log message *** 1998-10-07 19:35:56 +00:00
Jim Blandy
3c0a54bd68 *** empty log message *** 1998-10-07 15:52:46 +00:00
Jim Blandy
82637e2bfe * strings.c (scm_string_set_x): Require the argument to be a
writable string, not a substring or a symbol.
* strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
1998-10-07 15:52:31 +00:00
Jim Blandy
13af30488e *** empty log message *** 1998-10-07 10:16:28 +00:00
Jim Blandy
f52526ef55 * scmconfig.h.in: Regenerated; ../acconfig.h has changed. 1998-10-07 10:15:44 +00:00
Jim Blandy
6ea669d7b0 *** empty log message *** 1998-10-07 10:03:07 +00:00
Jim Blandy
ca6ef71ad9 * eval.c (safe_setjmp): Remove this misunderstanding.
(ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
ordinary setjmp.
1998-10-07 10:02:34 +00:00
Jim Blandy
3e877d1576 Formatting tweaks. 1998-10-06 20:57:10 +00:00
Jim Blandy
2d0937bc84 *** empty log message *** 1998-10-06 15:47:07 +00:00
Jim Blandy
3401653fe0 * libguile.h: Mark these as C declarations, for compilation by C++
compilers.
1998-10-06 15:46:06 +00:00
Jim Blandy
d021129f24 * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
__cplusplus clause.  I seriously doubt this ever worked the way
the author seems to have intended.
1998-10-06 13:01:46 +00:00
Jim Blandy
89545eba77 Doc fixes 1998-10-05 21:05:04 +00:00
Jim Blandy
d68fee4833 Utterly needless cleanups to hopelessly messy code.
* ports.c: Doc fixes.
(scm_fflush): Moved to ...
* genio.c (scm_fflush): ... here, amongst all the other port
method invocation functions.
* genio.h, ports.h: The prototype moves too.
1998-10-05 21:04:15 +00:00
Jim Blandy
8b49142f60 *** empty log message *** 1998-10-04 16:44:53 +00:00
Jim Blandy
a88a4c8a6f * backtrace.c (display_error_body): The current frame does not
always have a parent frame; consider a function called directly
from the MAIN_FUNC passed to scm_boot_guile.  (Thanks to Maciej
Stachowiak.)
1998-10-04 16:44:34 +00:00
Jim Blandy
533149475d *** empty log message *** 1998-10-04 12:59:56 +00:00
Jim Blandy
f122e56eda * alloca.c (alloca): Undo yesterday's changes, and simply call
malloc directly for storage, and abort if we don't get what we
want.  The situation is much simpler --- just call malloc.  Emacs
has bizarre/evil requirements (signal handlers might malloc unless
you set this global flag, so you have to set the flag around all
calls to malloc) which we are certainly not going to conform to,
so we can do the simple and obvious thing.
1998-10-04 12:59:41 +00:00
Jim Blandy
9086fa7771 * coop.c (coop_condition_variable_wait): Make this function
static.  It's only useful internally --- you should never just
wait on a condition variable.
* coop-defs.h (coop_condition_variable_wait): Delete prototype.
1998-10-04 12:10:11 +00:00
Jim Blandy
7265de7033 *** empty log message *** 1998-10-03 20:08:58 +00:00
Jim Blandy
f69575032d * unif.c (scm_array_set_x): Accept any kind of number as an
element for a uniform vector of doubles.  This is more consistent
with Scheme's view of numbers.  (Thanks to Miroslav Silovic.)
1998-10-03 20:08:45 +00:00
Jim Blandy
a9fe62cba3 *** empty log message *** 1998-10-03 19:51:24 +00:00