base package (Was: GHC 7.8 release?)
mail at joachim-breitner.de
Thu Feb 14 23:53:29 CET 2013
Am Donnerstag, den 14.02.2013, 13:19 -0800 schrieb Johan Tibell:
> That's great. I'm curious I was under the impression that it was hard
> to split out a pure subset as functions might call 'error' (e.g. due
> to incomplete pattern matches) and that would pull in the whole I/O
> subsystem. How did you avoid that?
as mentioned before: By crippling GHC.Fingerprint. error foo just calls
raise (ErrorCall foo), which calls "raise# (SomeException (ErrorCall
foo)". The problem is that the definition of SomeException pulls in the
Exception type class, which pulls in Typeable, which pulls in
GHC.Fingerprint, which uses FFI and IO code to to fingerprinting...
Looking at the code it seems that the FFI is only required for MD5.
Maybe a pure implementation there is worth it, if it is not
performance-critical code. Or, another work-around, would be primops for
these commands that can be used without the FFI types and IO.
I have also removed GHC.Unicode and functions like lines that require
the FFI calls there. These seem to be the largest open issues.
Joachim "nomeata" Breitner
nomeata at debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
JID: nomeata at joachim-breitner.de | http://people.debian.org/~nomeata
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: This is a digitally signed message part
More information about the Glasgow-haskell-users