ANNOUNCE: GHC 6.10.2 Release Candidate 1

Thorkil Naur naur at post11.tele.dk
Wed Mar 18 07:35:01 EDT 2009


Hello,

On Sunday 15 March 2009 16:51, Ian Lynagh wrote:
> 
> We are pleased to announce the first release candidate for GHC 6.10.2:
> ...
> Please test as much as possible; bugs are much cheaper if we find them
> before the release!
> ...

I have tried the Intel Mac installer and the source package on both FreeBSD 
and PPC Mac OS X. Some comments follow, first on 
GHC-6.10.1.20090314-i386.pkg:

1. An important property of such installers is that you are told, right from 
the start, that all the information you are presented with during the 
installation process can be accessed at any time, after completion of the 
installation, and you are told how. In case of GHC, something like a 
reference to a suitable spot, given as part of the output from ghc --help. I 
don't see any trace of such a facility on the introduction screen. (I know 
that other installers don't do this either, which is part of the reason why I 
try to avoid them.)

2. The introduction screen says "This package must be installed on the system 
volume" which seems to imply that there is some kind of choice involved at a 
later stage. But I don't recall having to perform any choice that related to 
this. So perhaps this should be "This package will be installed on the system 
volume" instead.

3. I can copy and paste the text of the introduction screen, excellent. I 
cannot copy and paste the header.

4. On the License screen, GMP is denoted "GNU MP Bignum Library" in two 
places. I suggest using "GNU Multiple Precision Arithmetic Library" (from 
http://gmplib.org/) instead.

5. On the License screen, replace "licence" by "license", twice.

6. The License screen explains "that by default the GMP will be statically 
linked into any binary produced by GHC. Software with a non-GPL compatible 
licence [sic] will have to ensure that the conditions of the LGPL are met; 
for example, by forcing GMP to link dynamically instead." Some details or a 
reference to an explanation of how to do this would be nice. Also, shouldn't 
"non-GPL compatible" be plain "non-GPL"?

7. I may very well be wrong, but as far as I have been able to tell, the ghc 
executable itself that is distributed 
(/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.1.20090314/ghc) 
contains GMP, statically linked. For example:

> thorkil-naurs-intel-mac-mini:~/tn/test/GHC/release/GHC-6.10.2-rc1 
thorkilnaur$ DYLD_PRINT_LIBRARIES=YES /usr/bin/ghc --version
> dyld: loaded: /bin/sh
> dyld: loaded: /usr/lib/libncurses.5.4.dylib
> dyld: loaded: /usr/lib/libiconv.2.dylib
> dyld: loaded: /usr/lib/libSystem.B.dylib
> dyld: loaded: /usr/lib/libgcc_s.1.dylib
> dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
> dyld: 
loaded: /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.1.20090314/ghc
> dyld: loaded: /usr/lib/libedit.2.dylib
> dyld: loaded: /usr/lib/libncurses.5.4.dylib
> dyld: loaded: /usr/lib/libSystem.B.dylib
> dyld: loaded: /usr/lib/libgcc_s.1.dylib
> dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
> The Glorious Glasgow Haskell Compilation System, version 6.10.1.20090314
> thorkil-naurs-intel-mac-mini:~/tn/test/GHC/release/GHC-6.10.2-rc1 
thorkilnaur$

where I fail to observe anything that seems to relate to GMP. This is in 
contrast to the corresponding information for an earlier GHC installation

> thorkil-naurs-intel-mac-mini:~/tn/test/GHC/release/GHC-6.10.2-rc1 
thorkilnaur$ DYLD_PRINT_LIBRARIES=YES ghc --version
> dyld: loaded: /bin/sh
> dyld: loaded: /usr/lib/libncurses.5.4.dylib
> dyld: loaded: /usr/lib/libiconv.2.dylib
> dyld: loaded: /usr/lib/libSystem.B.dylib
> dyld: loaded: /usr/lib/libgcc_s.1.dylib
> dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
> dyld: 
loaded: /Users/thorkilnaur/tn/install/ghc-6.8.3/lib/ghc-6.8.3/ghc-6.8.3
> dyld: loaded: /opt/local/lib/libreadline.5.2.dylib
> dyld: loaded: /opt/local/lib/libncurses.5.dylib
> dyld: loaded: /usr/lib/libSystem.B.dylib
> dyld: loaded: /opt/local/lib/libgmp.3.dylib
> dyld: loaded: /usr/lib/libgcc_s.1.dylib
> dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
> The Glorious Glasgow Haskell Compilation System, version 6.8.3
> thorkil-naurs-intel-mac-mini:~/tn/test/GHC/release/GHC-6.10.2-rc1 
thorkilnaur$

where one observes the presence of "dyld: 
loaded: /opt/local/lib/libgmp.3.dylib" that loads the separately installed 
dynamic GMP library. I am no expert in these matters, but this seems to 
activate requirement d) 0) under section "4. Combined Works" of the LGPL "GNU 
LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 
2007" (http://www.fsf.org/licensing/licenses/lgpl.html) which talks about 
providing material and giving instructions about how to re-link with a new 
version of the library and all that. If this material and the instructions 
are present in the installation package, I have failed to notice it.

Alternatively, if the ghc executable links to GMP dynamically, requirement d) 
1) of the LGPL comes into effect and that talks about a 
"mechanism ...that ... uses at run time a copy of the Library already present 
on the user's computer system". In the latter case, I would expect a 
mentioning of this requirement of a separate GMP installation and I have not 
seen such a requirement mentioned.

8. I can copy and paste the text of the License screen (without the header), 
excellent. (I can also Print and Save, I haven't tried that.)

9. I cannot copy and paste the text or the header of the Installation Type 
screen, the one that says "This will take 448 MB of space on your computer.  
Click Install to perform a standard installation of this software for all 
users of this computer."

10. On the Summary screen, I am told to find additional documentation at 
"/usr/share/doc/ghc/index.html". Should that, perhaps, be 
"file:///usr/share/doc/ghc/index.html" or something else, that more directly 
indicates how to access this documentation? And also mention the use of a 
browser?

11. And there is an uninstaller, excellent. Not least because reading that 
allows me to figure out where (the author of the uninstaller believes) things 
are installed. I didn't check before installing, but certainly, running the 
uninstaller increased the available space on the disk by about 500 MBytes, 
the expected amount.

12. What happens if I have a GHC installed already? To check this, I tried 
running the installer twice, without uninstalling in between. I didn't notice 
any difference between the first and second install. So I guess that the 
first installation was simply being overwritten.

I realise that the /Library/Framework conventions allow multiple versions of 
the same thing to be installed. But the way the GHC package is supposed to be 
accessed is via symbolic links in /usr/bin (and elsewhere?) and these links 
are surely being overwritten. If there is a mechanism for changing between 
versions, I haven't noticed it.

13. Looking inside /usr/share/doc/ghc, I find LICENSE, but this is not the 
same as the text of the License screen.

14. I also find /usr/share/doc/ghc/docbook-cheat-sheet which could be left out 
without doing much harm, as far as I can tell.

15. I didn't run the testsuite for the Intel Mac installer.

Then we are getting to the source distribution 
(ghc-6.10.1.20090314-src-extralibs.tar.bz2, ghc-6.10.1.20090314-src.tar.bz2 
and also the testsuite-6.10.1.20090314.tar.gz). I tried that on a FreeBSD and 
also a PPC Mac OS X. First comes

> $ uname -a
> FreeBSD tn12.thorkilnaur.dk 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 
10:40:27 UTC 2007     
root at dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
> $ ghc --version 
> The Glorious Glasgow Haskell Compilation System, version 6.10.1 

16. The build, using ./configure + make, went fine. Running the tests ran into 
the issue described as http://hackage.haskell.org/trac/ghc/ticket/3106. Using 
the proposed fix provided by kgardas (my own proposed fix wasn't ready until 
later), the testsuite (make stage=2) ended with this summary:

> OVERALL SUMMARY for test run started at Tue Mar 17 14:03:34 CET 2009
>     2334 total tests, which gave rise to
>    12487 test cases, of which
>        0 caused framework failures
>     2460 were skipped
>
>     9680 expected passes
>      262 expected failures
>       15 unexpected passes
>       70 unexpected failures
>
> Unexpected passes:
>    galois_raytrace(hpc,optasm,profasm,threaded2,profthreaded)
>    getEnvironment01
(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>
> Unexpected failures:
>    apirecomp001(normal)
>    barton-mangler-bug(hpc,profc)
>    
bits(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    break017(ghci)
>    cabal01(normal)
>    concprog001(ghci)
>    derefnull(profc,profthreaded)
>    divbyzero(profc,profthreaded)
>    
genUpTo(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    hpc_raytrace(profc)
>    joao-circular(profc)
>    length001(optc,hpc,optasm,profc,profasm,threaded2,profthreaded)
>    num009
(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    num012
(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    process007
(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    seward-space-leak(ghci)

Details may be found at:

thorkilnaur.dk/~tn/test/GHC/release/GHC-6.10.2-rc1/ghc-6.10.1.20090314-freebsd.tar.gz

Second comes

> $ uname -a
> Darwin thorkil-naurs-mac-mini.local 9.6.0 Darwin Kernel Version 9.6.0: Mon 
Nov 24 17:39:01 PST 2008; root:xnu-1228.9.59~1/RELEASE_PPC Power Macintosh
> $ ghc --version 
> The Glorious Glasgow Haskell Compilation System, version 6.6.1

17. Again, building with ./configure + make went fine. Test summary (make 
stage=2):

> OVERALL SUMMARY for test run started at Tue Mar 17 08:48:51 CET 2009
>     2334 total tests, which gave rise to
>    12487 test cases, of which
>        0 caused framework failures
>     2453 were skipped
>
>     9726 expected passes
>      254 expected failures
>        0 unexpected passes
>       54 unexpected failures
>
> Unexpected failures:
>    2469(ghci)
>    apirecomp001(normal)
>    barton-mangler-bug(profc)
>    
bits(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    break017(ghci)
>    derefnull(profc,profthreaded)
>    
divbyzero(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    ffi009(ghci)
>    galois_raytrace(optc,profc)
>    
genUpTo(normal,optc,hpc,optasm,profc,profasm,ghci,threaded1,threaded2,profthreaded)
>    hpc_raytrace(profc)
>    joao-circular(profc)
>    length001(optc,hpc,optasm,profc,profasm,threaded2,profthreaded)
>    seward-space-leak(ghci)
>    signals002(ghci)
>    signals004(ghci,threaded1,threaded2,profthreaded)

Details at:

thorkilnaur.dk/~tn/test/GHC/release/GHC-6.10.2-rc1/ghc-6.10.1.20090314-ppc-macosx.tar.gz

Best regards
Thorkil


More information about the Glasgow-haskell-users mailing list