[Haskell] ANNOUNCE: HasFuse V1.1
David Sabel
dsabel at stud.uni-frankfurt.de
Tue Feb 3 16:57:56 EST 2004
HasFuse Version 1.1
===================
HasFuse is a modification of the Glasgow Haskell Compiler which has
built-in some precautions for the execution of unsafePerformIO, hence
the name "HasFuse". This means the user does not have to undertake
the proof obligation that the timing of an I/O-operation wrapped by
unsafePerformIO is independent from each other I/O-operation.
HasFuse is available as a patch of the GHC 5.04.3 source code from
http://www.ki.informatik.uni-frankfurt.de/~sabel/hasfuse
On the same location, building instructions and further documentation
can be found.
The semantics of programs which make use of unsafePerformIO is given
by the nondeterministic call-by-need calculus FUNDIO. This calculus
provides an I/O-interface, which can be used to model direct-call
I/O within Haskell.
The FUNDIO-calculus is published in the technical report "Frank-16",
see
http://www.ki.informatik.uni-frankfurt.de/papers/articles.html#Frank-16
The results of applying the FUNDIO semantics to Haskell and the
(FUNDIO-) correctness of those program transformations which are
performed by the GHC are available as "Technical Report Frank-17"
through
http://www.ki.informatik.uni-frankfurt.de/papers/articles.html#Frank-17
Changes from version 1.0 to 1.1:
--------------------------------
HasFuse provides a new flag -fno-hasfuse, which runs the GHC in
GHC mode, i.e. all optimisations performed by the original GHC
are turned on.
More information about the Haskell
mailing list