Monday, November 19, 2007

PLT Scheme Science Collection Version 2.8

Version 2.8 of the PLT Scheme Science Collection has been released via PLaneT. There are two major changes from Version 2.7:
  • The file has been reverted back to its previous implementation. This is because the interface for SRFI 27 was changed to be compatible with the pre PLT Scheme V371.1 version. That is, Version 2.7 is only required for PLT Scheme V371.1 (which probably isn't being used by anyone). Version 2.8 will work with V371 (and before) as well as with V371.2 and later.
  • Unchecked versions of many of the functions are now provided that bypass the contract check. These are called internally where it is known that the contract would be met. Obviously, they may also be called from user code in similar circumstances or where the contract check is not desired for some reason.
The unchecked version of a function is provided by renaming the function in a provide statement. The standard version is provided in a provide/contract statement. A trivial example is:

(module test-unchecked mzscheme

(require (lib ""))

(rename double unchecked-double))

(-> real? real?)))

(define (double x)
(+ x x)))

This works fine. But, I'm not sure there is any guarantee that it will work in the future.

This will probably be the last revision before the release of PLT Scheme v4.0. I have branched the source code (at the Schematics project on SourceForge) for the PLT Scheme Science Collection Version 3.0 to be released with PLT Scheme Version 4.0. These changes will be tested using the PLT Scheme v3.99.x releases.



Post a Comment

<< Home