Commit graph

191 commits

Author SHA1 Message Date
Jim Blandy
e500ef7019 break up if if if 1997-03-16 10:20:45 +00:00
Gary Houston
a574455a13 * posix.c (scm_uname): throw an error if uname fails instead
of returning errno.

* error.h (scm_errno, scm_perror): obsolete prototypes removed.

* error.c (err_head, scm_errno, scm_perror): obsolete procedures
removed.

* async.c (scm_ints_disabled): definition moved from error.c.
1997-03-15 18:10:35 +00:00
Mikael Djurfeldt
c6433b2a0d * acconfig.h: Removed PACKAGE.
* scmconfig.h.in: Regenerated.
1997-03-15 01:08:53 +00:00
Mikael Djurfeldt
dfa84eae7b * snarf.h: g++ says it's non-portable not to specify the first
argument in a varargs declaration.  I introduced the first
argument by using preprocessor conditionals.
1997-03-14 23:06:42 +00:00
Gary Houston
ae2fa5bc81 * ioext.c (scm_read_delimited_x): use RO string macros for delims.
(scm_freopen): use RO string macros for filename and modes.
(scm_duplicate_port, scm_fdopen): use RO string macros for modes.

* posix.c (scm_getgrgid): simplify conversion of name to C string.
(scm_mknod): use RO string macros for path.

* socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.

* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
use SCM_ROSTRINGP and SCM_ROCHARS.
1997-03-13 21:54:02 +00:00
Mikael Djurfeldt
216fb10850 *** empty log message *** 1997-03-13 17:32:23 +00:00
Gary Houston
c37e0e559f * backtrace.c (scm_display_error_message): don't segv if message
is an immediate.

* error.h: prototype for scm_error_scm.

* error.c (scm_error_scm): new procedure, reimplements scm-error
in C and uses scm_error.
1997-03-13 00:22:20 +00:00
Gary Houston
14de3b4206 * read.c (scm_read_hash_extend): make scm_read_hash_procedures a
pointer to the Scheme variable read-hash-procedures and intern it
in scm_init_read. Modify scm_read_hash_extend and
scm_get_hash_procedure to use the pointer.
1997-03-11 03:57:04 +00:00
Gary Houston
c773377128 * read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
(SCM_KEYWORD_STYLE): defined.

	* read.c (scm_read_opts): add a keywords option.  This isn't a
	boolean option, in case someone wants to add support for DSSSL
	keywords too.
	Setup scm_keyword_prefix symbol.
	(scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
	set to 'prefix.
*	I've left keyword support disabled by default, since it doesn't
	seem to break the module system and it gives R4RS standard behaviour.
	It can be reactivated with (read-set! keywords 'prefix).
1997-03-10 06:49:15 +00:00
Mikael Djurfeldt
b045e53287 *** empty log message *** 1997-03-09 15:30:04 +00:00
Gary Houston
e3473097c7 typo 1997-03-08 22:55:06 +00:00
Gary Houston
fed9c9a2d4 * read.c (scm_init_read): intitialise scm_read_hash_procedures
(idea from Mikael: make it a pair so scm_permanent object only
	called once.)
	(scm_read_hash_extend): don't call scm_permanent_object.
	(ideas from Mikael): if chr is already in the list, replace its
	procedure instead of appending it again.  If chr is #f, remove
	it from the list.
	(scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
1997-03-08 22:52:56 +00:00
Gary Houston
deca31e173 * strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
* gdbint.c (gdb_read): update scm_lreadr usage.

	* load.h: update prototypes.

	* load.c (scm_primitive_load, scm_read_and_eval_x,
	scm_primitive_load_path): remove case_insensitive_p, sharp arguments.

	* read.h: add prototype for scm_read_hash_extend.  Change args for
	other prototypes.

	* read.c (scm_read_hash_procedures): new variable.
	(scm_read_hash_extend): new procedure.
	(scm_get_hash_procedure): new procedure.
*	(scm_lreadr): use scm_get_hash_procedure instead of an argument
	for extended # processing.
	(scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
	scm_read_token): remove case_i, sharp arguments.  Change callers.

	* read.h (SCM_N_READ_OPTIONS): increase to 3.
	(SCM_CASE_INSENSITIVE_P): define.

	* read.c: add case-insensitive option to scm_read_opts.
*	(scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
	to determine whether to convert symbol case.
	(default_case_i): definition removed.
	* read.c (scm_read_token): if case_i, downcase ic before doing
	anything with it.
1997-03-08 18:58:24 +00:00
Mikael Djurfeldt
25a301d67d *** empty log message *** 1997-03-08 14:46:39 +00:00
Mikael Djurfeldt
71d3aa6de5 * eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
with 3 or more args internally to the evaluator.
1997-03-08 03:03:16 +00:00
Mikael Djurfeldt
a1e2cfe360 *** empty log message *** 1997-03-07 21:43:46 +00:00
Mikael Djurfeldt
bc6b266af0 *** empty log message *** 1997-03-06 22:57:45 +00:00
Mikael Djurfeldt
ee4274a654 * tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP. 1997-03-06 00:57:11 +00:00
Mikael Djurfeldt
b2530d665a * tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
from pairs with a GLOC in the car.

* symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
otherwise `symbol-hash' will behave badly.
(scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
we get segmentation fault!

* symbols.c: Added #include "weaks.h".  New functions
`builtin-bindings' and `builtin-weak-bindings'.  (These will be
moved to an extraneous library when we split libguile.)
1997-03-05 22:49:12 +00:00
Mikael Djurfeldt
c0ebd8c5a8 * filesys.c (scm_stat): stat now takes fport arguments too as
documented in the manual.
1997-03-04 18:54:52 +00:00
Gary Houston
44493941d8 * ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
argument wasn't declared to be optional.
1997-03-03 09:22:58 +00:00
Mikael Djurfeldt
876c87ce4e * stime.c (scm_init_stime): Add feature "current-time". 1997-03-02 15:40:23 +00:00
Gary Houston
1a36eef2ea * throw.h: prototype for scm_exit_status.
* throw.c (scm_handle_by_message): if a 'quit is caught, use its
args to derive an exit status.  Allows (quit) to work from a
script.
(scm_exit_status): new function.
#include "eq.h".
1997-03-02 07:32:19 +00:00
Mikael Djurfeldt
c6a4fbce36 * eval.c (scm_deval): Removed some old code.
(ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
with the others.
(ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
exit-frame traps.
1997-03-01 14:23:27 +00:00
Mikael Djurfeldt
77a6036bd1 * symbols.c (msymbolize): Bugfix: Must initialize property list to
SCM_EOL.
1997-02-28 23:10:00 +00:00
Mikael Djurfeldt
f76c22afd3 * procs.c: Introduce the existent C function scm_thunk_p at the
Scheme level as well.
1997-02-28 21:37:30 +00:00
Mikael Djurfeldt
1dd28b3d65 * symbols.c, symbols.h (scm_symbol_value0): New function. Can be
used from C to easily lookup the value of a symbol in the current
module.
1997-02-26 12:08:26 +00:00
Mikael Djurfeldt
15ae1beecf * configure.in: Added AM_MAINTAINER_MODE
Makefile.in, aclocal.m4, configure: Regenerated
1997-02-24 23:35:55 +00:00
Mikael Djurfeldt
01c77a0aa2 * gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to avoid
warnings.
1997-02-21 23:02:01 +00:00
Marius Vollmer
a7580a9738 *** empty log message *** 1997-02-21 18:22:50 +00:00
Jim Blandy
413b4ab645 *** empty log message *** 1997-02-19 19:05:24 +00:00
Gary Houston
0aa0871fc1 * unif.c (scm_array_set_x): minor change to argument error checking. 1997-02-15 18:49:59 +00:00
Mikael Djurfeldt
5aab5d961c * symbols.c (scm_sysintern0): New function. Contains the core of
old scm_sysintern but doesn't take a second value argument.
(scm_sysintern): Now uses scm_sysintern0.
(scm_sysintern_no_module_lookup): Renamed to
scm_sysintern0_no_module_lookup and doesn't take a second value
argument any longer.

* symbols.h (scm_sysintern0: Added declaration.

* options.c (scm_init_opts): Use scm_sysintern0 instead of
scm_sysintern when interning option keys.  Otherwise we risk
destroying the values of already interned variables.

* symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
scheme-level boolean (use SCM_NFALSEP).

* backtrace.c (scm_init_backtrace): Make Scheme-level variable
`the-last-stack'.
(scm_backtrace): New function. (C version of old function from
boot-9.scm) Motivation: Make it possible to display backtraces
without depending on boot-9.scm.  (I'm uncertain if this
motivation is good enough...)

* root.h (scm_root_state): Add member the_last_stack_var.
(scm_the_stack_var): Defined to scm_root->the_last_stack_var.

* root.c (mark_root): Mark scm_the_last_stack_var.

* init.c (scm_start_stack): Initialize scm_the_last_stack_var to
SCM_BOOL_F.
1997-02-10 01:01:54 +00:00
Mikael Djurfeldt
3197e30d2e * throw.c (mark_lazy_catch, free_lazy_catch): Removed.
1. mark_lazy_catch didn't mark the smob.
2. Both functions above have standard variants:
(lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
free_lazy_catch --> scm_free0.
1997-02-09 16:21:49 +00:00
Jim Blandy
2e4fe934c1 *** empty log message *** 1997-02-07 22:41:10 +00:00
Gary Houston
c101e39e41 * strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
unif.c.
strop.h: move prototypes too.
* posix.c (scm_init_posix): don't intern EINTR since it's now done
elsewhere.

* ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
etc.  I deleted them from filesys.c long ago, but didn't
notice they were here too (although ineffective since
sys/stat.h wasn't included).
1997-02-06 07:05:08 +00:00
Tom Tromey
5862b540cd * eval.c: Don't define alloca in GCC case. gcc will automatically
use __builtin_alloca if appropriate.
1997-02-05 18:19:57 +00:00
Jim Blandy
c687fa59a0 *** empty log message *** 1997-02-04 23:30:20 +00:00
Jim Blandy
c4314b4ff4 *** empty log message *** 1997-02-04 22:22:19 +00:00
Jim Blandy
bd4b91edbb *** empty log message *** 1997-02-04 22:13:52 +00:00
Jim Blandy
5ede70d071 *** empty log message *** 1997-02-04 21:59:53 +00:00
Gary Houston
03bc438643 * * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
* read.c (scm_lreadr): use scm_misc_error to improve one of the
	"unknown # object" error messages.

	* strop.c (scm_i_index, scm_i_rindex): combine into one procedure
	(scm_i_index) and declare it static.  Add a 'direction' argument
	to indicate what way the search should go.
	(scm_i_index): throw out-of-range error instead	of wrong-type-arg
	if indices are bad.
	(scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
	strop.h: remove scm_i_index, scm_i_rindex prototypes.
1997-02-04 05:27:57 +00:00
Gary Houston
063e05bed8 * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
*	* posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
	to avoid clash with various scsh forks.
1997-01-31 04:36:24 +00:00
Mikael Djurfeldt
ad31050811 The following two changes (ramap.c, throw.c) are motivated by the
apparent unportability of forward declarations of static arrays of
the form `static foo bar[];'.

* ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
(ra_rpsubrs, ra_asubrs): Moved to the top of array code.

* throw.c (scm_throw): Moved above scm_ithrow.

* options.h: Removed the extern declarations of scm_yes_sym and
scm_no_sym since these are static.
1997-01-30 20:25:09 +00:00
Gary Houston
1146b6cda2 * ports.c: add SCM_PROC declarations for pt-size and pt-member.
* Makefile.am: remove AWK=@AWK@.
	Add a rule for generating errnos.list.
	(CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.

	* configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
	don't extract errnos, just set a variable (avoids the
	need to recompile error.c just because configure is run.)

	* unif.h: update prototypes.
	* unif.c (scm_uniform_array_read,write): change the offset and
	length arguments to start and end, for consistency.

	* __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.

	* ioext.h: update prototypes.
*	* ioext.c (scm_read_delimited_x): replaces scm_read_line and
	scm_read_line_x, it's a more general procedure using an
	interface from scsh.  read-line and read-line! are now defined
	in boot-9.scm.
*  	Note that the new read-line trims the terminator
	by default, previously it was appended to the returned string.  An
	optional argument specifies how to process the terminator (scsh
	compatible).  For the old behaviour: (read-line port 'concat).
	scm_read_line, scm_read_line_x: deleted.  (read-line port 'split)
	returns a pair, but is converted to multiple values if the scsh
	module is loaded.

	socket.h: update prototypes.
	* socket.c (scm_recvfrom): for consistency with other procedures,
	take start and end as separate optional arguments.
*	(scm_recv, scm_recvfrom): don't allow the second argument
	to be a size, only a buffer.  Change the scheme names to
	recv! and recvfrom!.  Don't return the buffer.

	* ioext.h, posix.h: move prototypes too.
	* ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
	moved back from posix.c to ioext.c.  Also move #includes of "genio.h"
	"read.h" and "unif.h".
	* ioext.c: include "chars.h"
1997-01-25 18:23:49 +00:00
Marius Vollmer
a063340e82 added lost entries after getting confused about a conflict 1997-01-22 22:35:21 +00:00
Gary Houston
3d8d56dfac * init.scm (index, rindex): replace versions in utilities.scm with
primitives.
	load errno.scm.

	* netconst.scm: undefine maybe-define and maybe-define-so after use.
	* errno.scm: new file.

	* fports.c (scm_open_file): pass errno to scm_syserror_msg.
	* filesys.h: update prototypes.  Remove macros: SCM_FD_P, SCM_FD_FLAGS,
	SCM_FD.
	* filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
	scm_syserror_msg.
*	(scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
	scm_sys_dup): deleted: FD capability will be added to other
	procedures.
*	Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
	scm_fd_free, fd_smob, scm_intern_fd.
*	(scm_open): renamed from scm_sys_open.  Return a port instead of
	an FD object.  Make the mode argument optional.
*	(scm_sys_create): deleted, it's just a special case of open.
	(scm_init_filesys): move interning of constants O_CREAT etc.,
	here (were previously using SCM_CONST_LONG macro).
	Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
	don't newsmob fd.
	(numerous _sys_ procedures): remove gratuitous _sys_ from names.
	include "fports.h" and <stdio.h>
	(scm_stat, scm_select): don't support FD objects.

	* error.h: adjust scm_syserror_msg prototype.
	* error.c (scm_syserror_msg): take an extra argument for errno.
	Using the global value didn't always work, since it could be
	reset by procedure calls in the message or args arguments.

	* fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
	I don't understand why the check was there (and what about the
	ultrix check?)

	* strop.c (scm_string_copy): allow shared substrings to be copied.

	* unif.h: corresponding change to prototypes.
	* unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
	recognize two new optional arguments: offset and length.  Allow
	the port argument to be an integer (file descriptor, for scsh).
	Include <unistd.h> for "read" prototype.
1997-01-18 17:51:33 +00:00
Gary Houston
be9edf15fb * Makefile.am: add AWK=@AWK@ (?) 1997-01-13 06:22:51 +00:00
Gary Houston
ee78fbb067 * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
errnos_get.c.
Add a rule to generate errnos.c from errnos.
* error.c (scm_init_error): include errnos.c.
* errnos_cnvt.awk: new file, converts the list of errno codes to
C expressions.
* errnos_get.c: new file.
* errnos.default: new file, contains errnos to try if they can't
be extracted from errno.h.
* configure.in: if using GCC, try and extract errno codes from
errno.h.
Added AC_PROG_AWK.
1997-01-13 04:05:27 +00:00
Marius Vollmer
b9e19a2773 *** empty log message *** 1997-01-11 19:01:21 +00:00