This document is a pseudo user manual for experimental and/or ephemeral
functionality in Larceny. Experimental functionality is functionality
that will eventually be incorporated in the standard distribution in
some form or another, because it's a feature we want. Ephemeral
functionality is functionality that is useful in the current implementation
of Larceny, and that may be radically redesigned or removed altogether
in the future.
1. Ephemeral functionality
(None supported in this release.)
2. Experimental functionality
2.2. The debugger
Synopsis: Load Experimental/debug.sch, and following an error,
evaluate (debug). When in the debugger, type ? for
help.
2.3. Record package
Synopsis: Load Experimental/record.sch and read
Experimental/record.doc.
2.4. Generalized procedures
Larceny has an experimental implementation of MIT Scheme style "apply
hooks", which are generalized procedures. To use this facility, you must
assemble Experimental/applyhook0.mal to a fasl file and load it;
you must also load Experimental/applyhook.sch.
An apply hook is a procedure that contains another procedure and a data
object; in particular, if x is bound to an apply hook, then
(procedure? x) => #t.
When the apply hook is called, the procedure stored in the hook is
called with the arguments of the apply hook. That procedure can inspect
or change the procedure or the data stored in the hook using the
procedures below.
(make-apply-hook procedure object) => apply-hook
(apply-hook? object) => boolean
(apply-hook-procedure apply-hook) => procedure
(set-apply-hook-procedure! apply-hook procedure) => unspecified
(apply-hook-extra apply-hook) => object
(set-apply-hook-extra! apply-hook val) => unspecified
$Id: ephemeral.html,v 1.3 1998/12/21 21:23:18 will Exp $
larceny@ccs.neu.edu