x
svn: r3699
This commit is contained in:
parent
6575c9c58d
commit
668e510bbb
|
@ -1,3 +1,30 @@
|
||||||
|
------------------------------
|
||||||
|
Version 351
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
. the or/c contract now accepts multiple higher-order
|
||||||
|
contracts, as long as they can be distinguished by some
|
||||||
|
first-order property (for example, the arity of the
|
||||||
|
function).
|
||||||
|
|
||||||
|
. failures of the first-order aspects of contracts are now
|
||||||
|
checked in the module that provides, not just the
|
||||||
|
requiring module. This means that this module:
|
||||||
|
|
||||||
|
(module m mzscheme
|
||||||
|
(require (lib "contract.ss"))
|
||||||
|
(provide/contact [f (-> integer? integer?)])
|
||||||
|
(define (f x y) x))
|
||||||
|
|
||||||
|
will signal an error as soon as it is required, rather
|
||||||
|
than waiting for a variable reference to `f' (as it used
|
||||||
|
to).
|
||||||
|
|
||||||
|
. rewrote some of the internals of the contract library to
|
||||||
|
get a factor of 2 speedup for tight loops that do a lot
|
||||||
|
of contract checking (FWIW, I had introduced this
|
||||||
|
slowdown a few months ago in an attempt to optimize ...)
|
||||||
|
|
||||||
------------------------------
|
------------------------------
|
||||||
Version 350
|
Version 350
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user