| 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

Reply via email to