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