The Racket repository
Go to file
Carl Eastlund 5069f3b37e Merged from branch: ^/branches/cce/plt+contract-props+r17680
Added new implementation of contract structure properties.  Contracts are now
based on prop:contract, and flat contracts are based on prop:flat-contract.  The
flat contract property inherits prop:contract (flat contracts are contracts) and
prop:procedure (flat contracts are predicates).

A value is now a contract if it has prop:contract, or if it is a flat contract.
A value is now a flat contract if it has prop:flat-contract, or if it is a
procedure of one argument (assumed to be a predicate), or if it is one of the
constants allowed as a flat contract (e.g. booleans, numbers, strings, symbols,
regular expressions).

The old custom contract systems (proj-prop and friends, make-proj-contract and
friends) have been supplanted by the new properties, constructors for the
properties' associated values, and "simple-contract" and "simple-flat-contract"
constructors for one-off contracts.  These forms are all documented in the
reference.  Documentation of the legacy bindings has been removed, though as
many of them as possible are still exported to give legacy code time to migrate.

This commit includes all the changes to the contract system, plus replacement of
all uses of the legacy bindings (proj-prop, proj-get, make-proj-contract,
several others) in other collections.

svn: r18009
2010-02-06 20:40:03 +00:00
collects Merged changes from trunk. 2010-02-06 19:23:24 +00:00
doc A bunch of additional typos 2010-02-05 03:21:52 +00:00
man/man1 2009 -> 2010 2009-12-22 05:52:15 +00:00
src Removed unused parameters to grab_continuation 2010-02-05 17:28:00 +00:00