racket/pkgs/racket-test-core
Matthew Flatt 662a9022c0 refine implementation of keyword and optional arguments
The old implementation turns a single optional argument into two
arguments: the optional value and a boolean to indicate whether the
optional value is supplied.

The new expansion uses `unsafe-undefined` in place of not-supplied
arguments, in the general case. If the default-value expression is
simple enough, however, it is copied to call sites that would
otherwise supply `unsafe-undefined`. In the common case where the
default value is `#f`, for example, no run-time test is needed in the
core implementation function to check whether the default is supplied,
because a `#f` will be filled in for callers.

The performance improvement is tiny to non-existent for realistic
programs, but the simpler and reduced generated code may help in the
long run.
2018-05-06 07:59:54 -06:00
..
mzlib Finish fixing dependencies of "racket-test-core". 2014-12-19 11:35:39 -05:00
tests/racket refine implementation of keyword and optional arguments 2018-05-06 07:59:54 -06:00
info.rkt Remove stray unstable dependency. 2015-09-14 16:54:06 -05:00
LICENSE.txt update copyright year to 2018 2018-01-12 15:44:07 -06:00