The Racket repository
Go to file
Carl Eastlund 97b78ace5b Added #:dispatch option for clauses in #:defaults and #:fast-defaults.
The #:dispatch option specifies a second, less strict predicate for a #:defaults
or #:fast-defaults clause.  The main predicate is still used for the generics
group's type predicate, but the dispatch predicate is used in choosing which
method implementation to use.  The #:dispatch option is useful when the dispatch
predicate is disjoint from all other instances, is significantly cheaper to run
than the main predicate, and the full checks can be meaningfully deferred in
method implementations.

Specifically, this is useful in the implementation of iteration for
association-list dictionaries.  The dict-iterate-{next,key,value} functions do
not need to test (andmap pair? dict) if the given dict is eq? to the one stored
in the given iterator.  The dispatch predicate, list?, is much cheaper.
2013-07-25 13:48:59 -04:00
pkgs Added #:dispatch option for clauses in #:defaults and #:fast-defaults. 2013-07-25 13:48:59 -04:00
racket Added #:dispatch option for clauses in #:defaults and #:fast-defaults. 2013-07-25 13:48:59 -04:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Add add-on to .gitignore. 2013-07-04 11:51:53 -04:00
.mailmap mailmap updates & fixes. 2013-04-03 18:10:22 -04:00
.travis.yml Re-enable reasonable Travis setup. 2013-07-23 00:27:50 -04:00
INSTALL.txt Fix typito in INSTALL.txt 2013-07-20 07:14:51 -06:00
Makefile distro-build: change `#:source?' config to mean source packages, too 2013-07-20 13:39:33 -06:00
README.txt reorganize into core plus packages 2013-06-19 09:01:37 -06:00

This is the source code for the main Racket distribution.  See
"INSTALL.txt" for information on building Racket.

License
-------

Racket
Copyright (c) 2010-2013 PLT Design Inc.

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This means that you can link Racket into proprietary
applications, provided you follow the rules stated in the LGPL.  You can
also modify Racket; if you distribute a modified version, you must
distribute it under the terms of the LGPL, which in particular means
that you must release the source code for the modified software.  See
doc/release-notes/COPYING_LESSER.txt for more information.