[Haskell] ANN: IOSpec 0.1
isaacdupree at charter.net
Tue Apr 24 19:36:07 EDT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Wouter Swierstra wrote:
> * If you're an ICFP referee, you may want to avoid reading any further*
> Test.IOSpec Version 1.0
> I'm pleased to announce the first release of the Test.IOSpec library,
> that provides a pure specification of some functions in the IO monad.
> This may be of interest to anyone who wants to debug, reason about,
> analyse, or test impure code.
> Essentially, by importing libraries from IOSpec you can the same code
> you would normally write in the IO monad. Once you're satisfied that
> your functions are reasonably well-behaved, you can remove the
> Test.IOSpec import and replace it with the "real" functions instead.
> Website: www.cs.nott.ac.uk/~wss/repos/IOSpec
> Darcs: darcs get www.cs.nott.ac.uk/~wss/repos/IOSpec
> Tarball: www.cs.nott.ac.uk/~wss/repos/IOSpec/dist/IOSpec-0.1.tar.gz
> Haddock: www.cs.nott.ac.uk/~wss/repos/IOSpec/dist/doc/html
> Several examples are included with the sources.
> At the moment, the library consists of the following modules:
> * Test.IOSpec.Teletype: a specification of getChar and putChar.
> * Test.IOSpec.IORef: a specification of most functions on IORefs.
> * Test.IOSpec.Concurrent: specification of forkIO and MVars.
> As an added feature, running concurrent code using
> Test.IOSpec.Concurrent will detect deadlocks, instead of looping
> Future work includes:
> * Improving the interface, making it easier to combine functions from
> different modules.
> * Adding more functionality: STM and weak pointers seem likely
> If you have any questions, comments, or feedback, please do get in touch.
How does or might this relate to the typeclass-based Restricted IO monad
? RIO's technique has the advantage that multiple capabilities can be
easily combined in one use of the monad - but this manner of using
typeclasses might interfere with how testable it is? (I think that
should be okay... Also that this is a really neat project - incremental
progress on taming Haskell IO in practice!)
> *If you're an ICFP referee, you may want to avoid reading any further*
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the Haskell