A program can use `make-arity-wrapper-procedure` to synthesize a
function that reports a given arity mask (without calling `compile`).
In addition, `set-arity-wrapper-procedure!` suports modifying the
implementation of a synthesized procedure. Although similar
functionality could be achieved with `(lambda args (apply (unbox proc)
args))`, an arity wrapper procedure can dispatch to another procedure
without allocating a list for the arguments.
The interpreter now uses an internal variant of arity wrappers to
cooperate with `procedure-arity-mask`.
original commit: 5fede14302840b55edbeb7565e28d09350a4b2e9
bootstrap failures after small changes like the recent change to
procedure names, so we don't have to rebuild the boot files as often.
Mf-base
original commit: 94aaebe54807780791b8373017c979f59e6c45f1
the signal handler could trip over the NULL jumpbuf in a CCHAIN record.
schlib.c
remade boot files
cherry picked from cisco/ChezScheme#d8c2704031
original commit: f03e2535577df3e3b5d8ad7349c46d4c2e89b507
add an option `--disable-x11` to configure, which allows you to build Chez Scheme with X11 disabled
original commit: 68fe2d780c3b891bad493dd97457e3a2d4af88a3
In some cases, such as
(define g (let ([f (lambda (x) x)]) f))
the inner name `f` could get replaced by the outer name `g`.
Prefer the inner name so that macros can use a `let` wrapper
to reliably name a procedure.
cherry-picked from mflatt/ChezScheme#letname
original commit: fb75f08cfa9690f94ae2abaa237278b287367d68
In some cases, such as
(define g (let ([f (lambda (x) x)]) f))
the inner name `f` could get replaced by the outer name `g`.
Prefer the inner name so that macros can use a `let` wrapper
to reliably name a procedure.
original commit: 9ae0f856b0f81610c6caea13a5bfdf3b135de5b0
Fixed typo in profile-dump-html index and corrected overfull box issue in pdf
version of docs.
foreign.stex, system.stex
original commit: 3a3385c7d62326ba3d0d3220329dfcd3e3d0ac8e
Libraries incorporated via compile-whole-program are, by default,
not visible to environment or eval, unless libs-visible? is true;
complain if we try to visit such libraries.
original commit: 220dca39d0cb482a1cff3f31b8a3197f8b5ee1bc
Improve error reporting and improve docs as suggested by Andy, and
adjust `conv` -> `conv*` to fit a naming convention.
original commit: b34817aea5d3c4862e7bb313ee9f5281472a832f
Changed the base language foregin and fcallable forms to accept a list of
conventions, which are each symbols, instead of a single convention, which was
a list of conventions, mostly to make it clear in the grammar what is going on.
base-lang.ss, cp0.ss cpcheck.ss, cpcommonize.ss, cpletrec.ss, cpnanopass.ss,
cprep.ss, cpvalid.ss, interpret.ss, syntax.ss,
Fixed a place where we were checking for eq? of two conventions, which now
should be equal? since it is a list (assuming this list will always be in a
consistent order).
cpcommonize.ss
Removed a spurious definition of convention?
np-languages.ss
original commit: dabf5a8abeaef12cdfcb36d9aac236dda9ac9158