| Simon Peyton Jones wrote:
| > Just for the record, below are the changes required in the boot
| > libraries -- ie the places where. Not quite as minimal as I'd hoped,
| > but the changes fall into a few standard patterns, and most represent
| > (in my opinion) sytlistic improvements. I will not push these patches,
| > however.
| >
| > == running darcs what -s --repodir libraries/base
| > M ./Control/Arrow.hs -2 +4
| > M ./Data/Data.hs -7 +22
| > M ./System/IO/Error.hs +1
| > M ./Text/ParserCombinators/ReadP.hs +1
| > == running darcs what -s --repodir libraries/bytestring
| > M ./Data/ByteString/Char8.hs -1 +2
| ...etc.
|
| I'm curious, can you send those library-patches (to mailing-list
| perhaps), so we can have a look at what kinds of stylistic changes are
| required?
I've put the diffs up at
http://research.microsoft.com/~simonpj/tmp/local-mono-diffs.txt
Also Ian has kindly run all of Hackage through GHC with -XLocalMonoBinds.
Here's what he found:
| In total, I tried to build 1122 packages, of which 793 were buildable
| with the HEAD. Of these, 95 additional packages failed to build with
| -XMonoLocalBinds. The list of packages tried is here:
| http://community.haskell.org/~igloo/pkgs.txt
|
| I've put a tarball of the build logs of those packages that regressed
| here:
| http://community.haskell.org/~igloo/mono-local-binds.tar.gz
|
| Due to a quirk of how the scripts work, the failure is in the middle of
| the log. If that's a problem then let me know, and I'll see if I can
| work around it and do another run.
I'm conscious that I have not articulated the reason for this exercise;
Dimitrios and Tom and I are working on a paper describing it. In brief, with
the full generality of type functions it seems nigh impossible to give a good
(ie simple, clean, predictable) story for local generalisation.
-XMonoLocalBinds sounds radical, but I'm guessing may be less invasive than you
might think; hence the experiment. An alternative would be some compromise
that still generalised Good Old ML-style definitions, but not ones involving
more complicated constraints. But I thought it'd be interesting to see the
impact of the simplest thing that would work.
Simon
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc