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

9023 commits

Author SHA1 Message Date
Jim Blandy
c368ffcff1 * boot-9.scm (load): Simplified; primitive-load does most of this
work now.
(%load-announce-win): Removed; no longer used.  Set %load-hook to
call %load-announce.
1996-10-28 23:00:25 +00:00
Jim Blandy
4fe3604d42 *** empty log message *** 1996-10-28 19:37:04 +00:00
Gary Houston
f93ddd3985 * configure.in: add tests for figuring out whether buffered data
is available in a FILE structure, which is needed by char-ready.

* acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
FILE_CNT_READPTR.

* simpos.c (scm_getenv): renamed from scm_sys_getenv.  Throw
exceptions using misc_error instead of syserror.  It seems a bit
odd to throw an exception if a string can't be found in the
environment, but it's consistent with open-file, stat etc.
(simpos.h): remove sys_ from getenv.

* posix.c (scm_putenv): renamed from scm_sys_putenv.  If an error
occurs, throw an error instead of returning errno.  Return value
is now unspecified.
(numerous in posix.c and posix.h): removed superfluous sys_ from names.
1996-10-28 09:44:07 +00:00
Gary Houston
3afb28ce85 * boot-9.scm (stat:dev etc.) accessor functions for stat components.
(file-is-directory?): use stat:type.
1996-10-27 23:26:35 +00:00
Gary Houston
ae5253c589 * filesys.c (scm_stat2scm): derive file type and permissions from
the stat mode and append them to the returned vector.
There isn't much overhead in doing this and it avoids the need to
work with S_IRUSR et al. in Scheme.
Define symbols scm_sym_regular etc.
(scm_init_filesys): don't intern S_IRUSR etc.
1996-10-27 23:25:47 +00:00
Gary Houston
523f526658 * load.c: change s_try_load and s_try_load_path to s_primitive_load
and s_primitive_load_path.

* eval.c, load.c, error.c (scm_wta): use scm_misc_error.

* error.h: don't declare error symbols.  prototype for scm_misc_error.

* stackchk.c (scm_stack_overflow_key): defined here instead of in
error.c.

* error.c: use SCM_SYMBOL to set up error keys.
scm_misc_error: new procedure.
1996-10-27 02:38:39 +00:00
Jim Blandy
3065a62a4c *** empty log message *** 1996-10-25 08:40:27 +00:00
Jim Blandy
0464a0956f * boot-9.scm (%read-sharp): Don't recognize the `#!' syntax here;
that's now taken care of in libguile, and in a way compatible with
SCSH (which this isn't).
1996-10-25 08:35:36 +00:00
Jim Blandy
f9c68a472c * read.c (scm_lreadr): Recognize SCSH-style block comments; text
between `#!' and `!#' is ignored.
(skip_scsh_block_comment): New function.
1996-10-25 08:30:26 +00:00
Jim Blandy
f29de79022 * feature.c (scm_set_program_arguments): New argument, FIRST.
* feature.h: Update prototype.
* init.c (scm_boot_guile_1): Pass new argument to
scm_set_program_arguments.
1996-10-25 08:30:06 +00:00
Jim Blandy
b6edbab202 *** empty log message *** 1996-10-23 02:15:20 +00:00
Jim Blandy
334341aa78 * ports.c: Formatting tweak. 1996-10-23 02:15:04 +00:00
Jim Blandy
2941efc5d1 * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
initialization procedure.
- Delete in, out, err arguments; there are other perfectly good
ways to override these when desired.
- Delete result argument; this function shouldn't ever return.
- Rename init_func argument to main_func, for less confusion.
- Delete boot_cmd argument; main_func is more general.
-Add 'closure' argument, to help people pass data to main_func
without resorting to global variables.
- Abort if reentered; don't bother returning an error code.
- Call scm_init_standard_ports to set up the default/current
standard ports; no need to pass them to scm_start_stack.
- Remove code to evaluate the boot_cmd, and start the repl; let
the user do something like that in main_func if they want.
- Remove code to package up a return value; main_func can do any
of that as needed.
- Call exit (0), instead of returning.
(scm_start_stack): Don't initialize the I/O ports here; that's
weird.  Delete in, out, err arguments.  Move guts to
scm_init_standard_ports, scm_stdio_to_port.
(scm_init_standard_ports): New function, to set up current and
default standard ports.
(scm_start_stack, scm_restart_stack): Make these static.
* init.h (scm_boot_guile): Adjust declaration.
(scm_start_stack, scm_restart_stack): Remove externally
visible declarations for these.
(enum scm_boot_status): Removed; now scm_boot_guile never returns.
1996-10-23 02:14:52 +00:00
Jim Blandy
1cdaaafb73 * init.c (scm_start_stack): Don't initialize scm_progargs here.
(scm_boot_guile): Call scm_set_program_arguments here, later than
the old initialization.

* init.c: (scm_boot_guile, scm_boot_guile_1):  New, simplified
initialization procedure.
- Delete in, out, err arguments; there are other perfectly good
ways to override these when desired.
- Delete result argument; this function shouldn't ever return.
- Rename init_func argument to main_func, for less confusion.
- Delete boot_cmd argument; main_func is more general.
-Add 'closure' argument, to help people pass data to main_func
without resorting to global variables.
- Abort if reentered; don't bother returning an error code.
- Call scm_init_standard_ports to set up the default/current
standard ports; no need to pass them to scm_start_stack.
- Remove code to evaluate the boot_cmd, and start the repl; let
the user do something like that in main_func if they want.
- Remove code to package up a return value; main_func can do any
of that as needed.
- Call exit (0), instead of returning.
(scm_start_stack): Don't initialize the I/O ports here; that's
weird.  Delete in, out, err arguments.  Move guts to
scm_init_standard_ports, scm_stdio_to_port.
(scm_init_standard_ports): New function, to set up current and
default standard ports.
(scm_start_stack, scm_restart_stack): Make these static.
* init.h (scm_boot_guile): Adjust declaration.
(scm_start_stack, scm_restart_stack): Remove externally
visible declarations for these.
(enum scm_boot_status): Removed; now scm_boot_guile never returns.
1996-10-23 02:14:39 +00:00
Jim Blandy
a089567e22 * * fports.c (scm_stdio_to_port): New function. Its guts used to be
written out several times in scm_start_stack.
	* fports.h: New declaration for the above.
1996-10-23 02:14:18 +00:00
Jim Blandy
0b886892da * * feature.c (scm_set_program_arguments): New function.
* feature.h: New declaration for the above.
1996-10-23 02:14:09 +00:00
Jim Blandy
e4c5095fda *** empty log message *** 1996-10-21 23:54:02 +00:00
Jim Blandy
07f779e033 * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
`del', for the sake of C++ compilers.  (Patch applied by JimB.)
1996-10-21 23:53:40 +00:00
Jim Blandy
c7c03b9f87 * boot-9.scm: Formatting tweaks. 1996-10-21 23:53:01 +00:00
Mark Galassi
4b89050f0b Started moving gh.c to acknowledging conservative GC; gh_test core dumps,
but at least it compiles for now.
1996-10-21 17:28:13 +00:00
Mikael Djurfeldt
5dbb2c62b9 *** empty log message *** 1996-10-20 03:31:40 +00:00
Mikael Djurfeldt
a6c64c3c6d * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:31:08 +00:00
Mikael Djurfeldt
a23afe534a * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
for obtaining the address of a car or cdr field.  Motivation:
&SCM_CXR make assumptions about the internal structure of the
SCM_CXR selectors.

* eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
Motivation: see SCM_CXRLOC.

* pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
srcprop.h, tags.h, throw.c, unif.c: Added new selectors
SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
Motivation: Safer use.  Some other macros are defined in terms of
these operations.  If these are defined using the SCM_SETCXR
(<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
to inefficiency and an <e1> with side-effects could potentially
break.  Also, these particular operations are heavily utilized in
the garbage collector.  In unoptimized code there will be a
measurable speedup.

* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:30:16 +00:00
Mikael Djurfeldt
e6d34cb65d * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
for obtaining the address of a car or cdr field.  Motivation:
&SCM_CXR make assumptions about the internal structure of the
SCM_CXR selectors.

* eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
Motivation: see SCM_CXRLOC.

* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:29:48 +00:00
Mikael Djurfeldt
25d8012c77 * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
for obtaining the address of a car or cdr field.  Motivation:
&SCM_CXR make assumptions about the internal structure of the
SCM_CXR selectors.

* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:29:38 +00:00
Mikael Djurfeldt
24e68a57b9 * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
for obtaining the address of a car or cdr field.  Motivation:
&SCM_CXR make assumptions about the internal structure of the
SCM_CXR selectors.

* pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
srcprop.h, tags.h, throw.c, unif.c: Added new selectors
SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
Motivation: Safer use.  Some other macros are defined in terms of
these operations.  If these are defined using the SCM_SETCXR
(<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
to inefficiency and an <e1> with side-effects could potentially
break.  Also, these particular operations are heavily utilized in
the garbage collector.  In unoptimized code there will be a
measurable speedup.

* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:29:01 +00:00
Mikael Djurfeldt
898a256f91 * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
srcprop.h, tags.h, throw.c, unif.c: Added new selectors
SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
Motivation: Safer use.  Some other macros are defined in terms of
these operations.  If these are defined using the SCM_SETCXR
(<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
to inefficiency and an <e1> with side-effects could potentially
break.  Also, these particular operations are heavily utilized in
the garbage collector.  In unoptimized code there will be a
measurable speedup.

* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
1996-10-20 03:28:34 +00:00
Mark Galassi
3f46d95978 Adding more stuff to get the docs to work. 1996-10-18 22:44:47 +00:00
Mikael Djurfeldt
fdd649e1bf Adjustment of load-stack selection. 1996-10-18 00:15:09 +00:00
Mikael Djurfeldt
c27659c87d Bugfix: arg-list --> args in error handler. 1996-10-17 23:56:31 +00:00
Mikael Djurfeldt
1bb961a353 *** empty log message *** 1996-10-17 23:43:30 +00:00
Mikael Djurfeldt
1c6cd8e85e * boot-9.scm (handle-system-error): Added hooks before-error-hook,
after-error-hook, before-backtrace-hook and after-backtrace-hook
to the error handler.  E.g.: fancy emacs support could plug into
these.
(save-stack): New function.  The stack is now made differently
depending on the stack id.  (The motivation is to make a better
choice regarding what stack frames to present to the user.)
(error-catching-loop): Stack handling code moved outside into
save-stack.
1996-10-17 23:43:23 +00:00
Mikael Djurfeldt
b210cb7399 Oops! 1996-10-17 23:43:00 +00:00
Mikael Djurfeldt
841076acf4 * backtrace.c (scm_display_error): Just a safety measure: Stacks
aren't created with zero length, but should such a strange
creature suddenly turn up...
1996-10-17 23:32:47 +00:00
Mikael Djurfeldt
6c1797119b * debug.c (scm_make_memoized): Made it available at scheme level.
(scm_unmemoize, scm_memoized_environment): Bugfix: Check for
SCM_NIMP before applying heavier predicates in argument checking.
(scm_local_eval): Also take memoized object as argument.
1996-10-17 23:32:40 +00:00
Mikael Djurfeldt
d043d8c221 * ports.c (scm_port_line_x, scm_port_column_x): New mutators. 1996-10-17 23:32:32 +00:00
Mikael Djurfeldt
7115d1e4dd * stacks.c: Improve selection of relevant stack frames when making
a stack object.  Introduce one level of indirection in the stack
object to make it possible to "narrow" to a certain region of the
stack.  This facilitates making use of more clever algorithms (not
implemented) for selecting relevant frames and gives a cleaner
design since selection of frames can be done independently of
extraction of frames from the real stack.
(scm_stack_id): Also take #t as argument which means look at
current stack.
1996-10-17 23:32:25 +00:00
Mikael Djurfeldt
c692c370d8 * stacks.h: In struct scm_stack: Turn field frames into a pointer.
Turn n_tail into an integer directly representing current number
of frames in stack.  Add field tail.
1996-10-17 23:32:15 +00:00
Gary Houston
d7189b4983 * Makefile.in (scm_files): add expect.scm.
* expect.scm: new file ported from guile-iii.
1996-10-17 23:21:10 +00:00
Gary Houston
35c5db8731 Second thoughts, keep handle-system-error but call it from
error-catching-loop.
1996-10-17 21:56:22 +00:00
Gary Houston
9a0d70e21e * boot-9.scm: remove handle-system-error, after moving the code into
error-catching-loop.
Don't set 'throw-handler-default property on error keys.
Just interpret (almost) any throw with 4 args as an error throw.
Delete some try-load stuff that was already commented out.
1996-10-17 21:45:04 +00:00
Jim Blandy
44cf1f0f8c Formatting niggles. 1996-10-16 22:29:19 +00:00
Mark Galassi
8a2c7b7170 added gh and removed lgh; modified other stuff to reflect the new gh_
prefix replacing the old lgh_ prefix.
1996-10-16 14:01:56 +00:00
Jim Blandy
aa9576adaf *** empty log message *** 1996-10-16 02:22:21 +00:00
Jim Blandy
0179ae48bf * variable.c (scm_make_variable): Make the name hint optional, as
documented.
(anonymous_variable_sym): Renamed from variable_sym.  All uses
changed.
1996-10-16 02:20:47 +00:00
Jim Blandy
8b718458f3 * boot-9.scm: Doc fixes.
(make-module): Rework for readability.
(make-root-module, make-scm-module): USES argument to make-module
should be '(), not #f.
1996-10-16 02:18:33 +00:00
Jim Blandy
d065b65fdb *** empty log message *** 1996-10-15 22:31:06 +00:00
Jim Blandy
b9d5d65460 * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
from scm_sys_try_load and scm_sys_try_load_path.  The Scheme name
of scm_primitive_load_path was also changed to
"primitive-load-path", from "%try-load-path".  Callers changed.
We'd like to respect the convention that a function named
"try-mumble" should behave just like the function called "mumble",
but return #f instead of signalling some error.
* load.h: Rename prototypes.
1996-10-15 22:30:48 +00:00
Jim Blandy
352a1ccedb * boot-9.scm (try-load): %sys-load-path has been renamed to
primitive-load-path; adjust call here.
1996-10-15 22:29:46 +00:00
Jim Blandy
820bb96d3e *** empty log message *** 1996-10-15 21:57:15 +00:00