ANNOUNCE: GHC version 6.12.1

============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ============================================================== The GHC Team is pleased to announce a new major release of GHC. There have been a number of significant changes since the last major release, including: * Considerably improved support for parallel execution. GHC 6.10 would execute parallel Haskell programs, but performance was often not very good. Simon Marlow has done lots of performance tuning in 6.12, removing many of the accidental (and largely invisible) gotchas that made parallel programs run slowly. * As part of this parallel-performance tuning, Satnam Singh and Simon Marlow have developed ThreadScope, a GUI that lets you see what is going on inside your parallel program. It's a huge step forward from "It takes 4 seconds with 1 processor, and 3 seconds with 8 processors; now what?". ThreadScope will be released separately from GHC, but at more or less the same time as GHC 6.12. * Dynamic linking is now supported on Linux, and support for other platforms will follow. Thanks for this most recently go to the Industrial Haskell Group who pushed it into a fully-working state; dynamic linking is the culmination of the work of several people over recent years. One effect of dynamic linking is that binaries shrink dramatically, because the run-time system and libraries are shared. Perhaps more importantly, it is possible to make dynamic plugins from Haskell code that can be used from other applications. * The I/O libraries are now Unicode-aware, so your Haskell programs should now handle text files containing non-ascii characters, without special effort. * The package system has been made more robust, by associating each installed package with a unique identifier based on its exposed ABI. Now, cases where the user re-installs a package without recompiling packages that depend on it will be detected, and the packages with broken dependencies will be disabled. Previously, this would lead to obscure compilation errors, or worse, segfaulting programs. This change involved a lot of internal restructuring, but it paves the way for future improvements to the way packages are handled. For instance, in the future we expect to track profiled packages independently of non-profiled ones, and we hope to make it possible to upgrade a package in an ABI-compatible way, without recompiling the packages that depend on it. This latter facility will be especially important as we move towards using more shared libraries. * There are a variety of small language changes, including * Some improvements to data types: record punning, declaring constructors with class constraints, GADT syntax for type families etc. * You can omit the "$" in a top-level Template Haskell splice, which makes the TH call look more like an ordinary top-level declaration with a new keyword. * We're are deprecating mdo for recursive do-notation, in favour of the more expressive rec statement. * We've concluded that the implementation of impredicative polymorphism is unsustainably complicated, so we are re-trenching. It'll be deprecated in 6.12 (but will still work), and will be either removed or replaced with something simpler in 6.14. The full release notes are here: http://haskell.org/ghc/docs/6.12.1/html/users_guide/release-6-12-1.html How to get it ~~~~~~~~~~~~~ The easy way is to go to the web page, which should be self-explanatory: http://www.haskell.org/ghc/ We supply binary builds in the native package format for many platforms, and the source distribution is available from the same place. Packages will appear as they are built - if the package for your system isn't available yet, please try again later. Background ~~~~~~~~~~ Haskell is a standard lazy functional programming language; the current language version is Haskell 98, agreed in December 1998 and revised December 2002. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, whatever). GHC is distributed under a BSD-style open source license. A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interpreters, references, contact information, links to research groups) are available from the Haskell home page (see below). On-line GHC-related resources ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Relevant URLs on the World-Wide Web: GHC home page http://www.haskell.org/ghc/ GHC developers' home page http://hackage.haskell.org/trac/ghc/ Haskell home page http://www.haskell.org/ Supported Platforms ~~~~~~~~~~~~~~~~~~~ The list of platforms we support, and the people responsible for them, is here: http://hackage.haskell.org/trac/ghc/wiki/Contributors Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform: http://hackage.haskell.org/trac/ghc/wiki/Building Developers ~~~~~~~~~~ We welcome new contributors. Instructions on accessing our source code repository, and getting started with hacking on GHC, are available from the GHC's developer's site run by Trac: http://hackage.haskell.org/trac/ghc/ Mailing lists ~~~~~~~~~~~~~ We run mailing lists for GHC users and bug reports; to subscribe, use the web interfaces at http://www.haskell.org/mailman/listinfo/glasgow-haskell-users http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs There are several other haskell and ghc-related mailing lists on www.haskell.org; for the full list, see http://www.haskell.org/mailman/listinfo/ Some GHC developers hang out on #haskell on IRC, too: http://www.haskell.org/haskellwiki/IRC_channel Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here: http://www.haskell.org/ghc/reportabug

I have been using GHC 6.12.1 from http://www.haskell.org/ghc/dist/6.12.1-pre/ (which doesn't exist any more). Do I need to upgrade, or is it exactly the same? Do I need to recompile packages? -- Robin

On Sun, Dec 13, 2009 at 06:06:26PM +0000, Robin Green wrote:
I have been using GHC 6.12.1 from http://www.haskell.org/ghc/dist/6.12.1-pre/ (which doesn't exist any more). Do I need to upgrade, or is it exactly the same? Do I need to recompile packages?
I wouldn't recommend using unannounced binaries from the website, but in this case it's exactly the same as the 6.12.1 release. Thanks Ian

I've the 6.10.4 version installed on my MacOS X 10.6 OS. Have I to uninstall this version of GHC before installing the Mac .pkg for the 6.12.1? Luca.
Date: Mon, 14 Dec 2009 13:36:14 +0000 From: igloo@earth.li To: glasgow-haskell-users@haskell.org; haskell@haskell.org CC: Subject: ANNOUNCE: GHC version 6.12.1
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ==============================================================
The GHC Team is pleased to announce a new major release of GHC. There have been a number of significant changes since the last major release, including:
* Considerably improved support for parallel execution. GHC 6.10 would execute parallel Haskell programs, but performance was often not very good. Simon Marlow has done lots of performance tuning in 6.12, removing many of the accidental (and largely invisible) gotchas that made parallel programs run slowly.
* As part of this parallel-performance tuning, Satnam Singh and Simon Marlow have developed ThreadScope, a GUI that lets you see what is going on inside your parallel program. It's a huge step forward from "It takes 4 seconds with 1 processor, and 3 seconds with 8 processors; now what?". ThreadScope will be released separately from GHC, but at more or less the same time as GHC 6.12.
* Dynamic linking is now supported on Linux, and support for other platforms will follow. Thanks for this most recently go to the Industrial Haskell Group who pushed it into a fully-working state; dynamic linking is the culmination of the work of several people over recent years. One effect of dynamic linking is that binaries shrink dramatically, because the run-time system and libraries are shared. Perhaps more importantly, it is possible to make dynamic plugins from Haskell code that can be used from other applications.
* The I/O libraries are now Unicode-aware, so your Haskell programs should now handle text files containing non-ascii characters, without special effort.
* The package system has been made more robust, by associating each installed package with a unique identifier based on its exposed ABI. Now, cases where the user re-installs a package without recompiling packages that depend on it will be detected, and the packages with broken dependencies will be disabled. Previously, this would lead to obscure compilation errors, or worse, segfaulting programs.
This change involved a lot of internal restructuring, but it paves the way for future improvements to the way packages are handled. For instance, in the future we expect to track profiled packages independently of non-profiled ones, and we hope to make it possible to upgrade a package in an ABI-compatible way, without recompiling the packages that depend on it. This latter facility will be especially important as we move towards using more shared libraries.
* There are a variety of small language changes, including * Some improvements to data types: record punning, declaring constructors with class constraints, GADT syntax for type families etc. * You can omit the "$" in a top-level Template Haskell splice, which makes the TH call look more like an ordinary top-level declaration with a new keyword. * We're are deprecating mdo for recursive do-notation, in favour of the more expressive rec statement. * We've concluded that the implementation of impredicative polymorphism is unsustainably complicated, so we are re-trenching. It'll be deprecated in 6.12 (but will still work), and will be either removed or replaced with something simpler in 6.14.
The full release notes are here:
http://haskell.org/ghc/docs/6.12.1/html/users_guide/release-6-12-1.html
How to get it ~~~~~~~~~~~~~
The easy way is to go to the web page, which should be self-explanatory:
We supply binary builds in the native package format for many platforms, and the source distribution is available from the same place.
Packages will appear as they are built - if the package for your system isn't available yet, please try again later.
Background ~~~~~~~~~~
Haskell is a standard lazy functional programming language; the current language version is Haskell 98, agreed in December 1998 and revised December 2002.
GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, whatever). GHC is distributed under a BSD-style open source license.
A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interpreters, references, contact information, links to research groups) are available from the Haskell home page (see below).
On-line GHC-related resources ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Relevant URLs on the World-Wide Web:
GHC home page http://www.haskell.org/ghc/ GHC developers' home page http://hackage.haskell.org/trac/ghc/ Haskell home page http://www.haskell.org/
Supported Platforms ~~~~~~~~~~~~~~~~~~~
The list of platforms we support, and the people responsible for them, is here:
http://hackage.haskell.org/trac/ghc/wiki/Contributors
Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform:
http://hackage.haskell.org/trac/ghc/wiki/Building
Developers ~~~~~~~~~~
We welcome new contributors. Instructions on accessing our source code repository, and getting started with hacking on GHC, are available from the GHC's developer's site run by Trac:
http://hackage.haskell.org/trac/ghc/
Mailing lists ~~~~~~~~~~~~~
We run mailing lists for GHC users and bug reports; to subscribe, use the web interfaces at
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
There are several other haskell and ghc-related mailing lists on www.haskell.org; for the full list, see
http://www.haskell.org/mailman/listinfo/
Some GHC developers hang out on #haskell on IRC, too:
http://www.haskell.org/haskellwiki/IRC_channel
Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here:
http://www.haskell.org/ghc/reportabug
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_________________________________________________________________ Got more than one Hotmail account? Save time by linking them together http://clk.atdmt.com/UKM/go/186394591/direct/01/

I've the 6.10.4 version installed on my MacOS X 10.6 OS. Have I to uninstall this version of GHC before installing the Mac .pkg for the 6.12.1? Luca.
Date: Mon, 14 Dec 2009 13:36:14 +0000 From: igloo@earth.li To: glasgow-haskell-users@haskell.org; haskell@haskell.org CC: Subject: ANNOUNCE: GHC version 6.12.1
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ==============================================================
The GHC Team is pleased to announce a new major release of GHC. There have been a number of significant changes since the last major release, including:
* Considerably improved support for parallel execution. GHC 6.10 would execute parallel Haskell programs, but performance was often not very good. Simon Marlow has done lots of performance tuning in 6.12, removing many of the accidental (and largely invisible) gotchas that made parallel programs run slowly.
* As part of this parallel-performance tuning, Satnam Singh and Simon Marlow have developed ThreadScope, a GUI that lets you see what is going on inside your parallel program. It's a huge step forward from "It takes 4 seconds with 1 processor, and 3 seconds with 8 processors; now what?". ThreadScope will be released separately from GHC, but at more or less the same time as GHC 6.12.
* Dynamic linking is now supported on Linux, and support for other platforms will follow. Thanks for this most recently go to the Industrial Haskell Group who pushed it into a fully-working state; dynamic linking is the culmination of the work of several people over recent years. One effect of dynamic linking is that binaries shrink dramatically, because the run-time system and libraries are shared. Perhaps more importantly, it is possible to make dynamic plugins from Haskell code that can be used from other applications.
* The I/O libraries are now Unicode-aware, so your Haskell programs should now handle text files containing non-ascii characters, without special effort.
* The package system has been made more robust, by associating each installed package with a unique identifier based on its exposed ABI. Now, cases where the user re-installs a package without recompiling packages that depend on it will be detected, and the packages with broken dependencies will be disabled. Previously, this would lead to obscure compilation errors, or worse, segfaulting programs.
This change involved a lot of internal restructuring, but it paves the way for future improvements to the way packages are handled. For instance, in the future we expect to track profiled packages independently of non-profiled ones, and we hope to make it possible to upgrade a package in an ABI-compatible way, without recompiling the packages that depend on it. This latter facility will be especially important as we move towards using more shared libraries.
* There are a variety of small language changes, including * Some improvements to data types: record punning, declaring constructors with class constraints, GADT syntax for type families etc. * You can omit the "$" in a top-level Template Haskell splice, which makes the TH call look more like an ordinary top-level declaration with a new keyword. * We're are deprecating mdo for recursive do-notation, in favour of the more expressive rec statement. * We've concluded that the implementation of impredicative polymorphism is unsustainably complicated, so we are re-trenching. It'll be deprecated in 6.12 (but will still work), and will be either removed or replaced with something simpler in 6.14.
The full release notes are here:
http://haskell.org/ghc/docs/6.12.1/html/users_guide/release-6-12-1.html
How to get it ~~~~~~~~~~~~~
The easy way is to go to the web page, which should be self-explanatory:
We supply binary builds in the native package format for many platforms, and the source distribution is available from the same place.
Packages will appear as they are built - if the package for your system isn't available yet, please try again later.
Background ~~~~~~~~~~
Haskell is a standard lazy functional programming language; the current language version is Haskell 98, agreed in December 1998 and revised December 2002.
GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, whatever). GHC is distributed under a BSD-style open source license.
A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interpreters, references, contact information, links to research groups) are available from the Haskell home page (see below).
On-line GHC-related resources ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Relevant URLs on the World-Wide Web:
GHC home page http://www.haskell.org/ghc/ GHC developers' home page http://hackage.haskell.org/trac/ghc/ Haskell home page http://www.haskell.org/
Supported Platforms ~~~~~~~~~~~~~~~~~~~
The list of platforms we support, and the people responsible for them, is here:
http://hackage.haskell.org/trac/ghc/wiki/Contributors
Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform:
http://hackage.haskell.org/trac/ghc/wiki/Building
Developers ~~~~~~~~~~
We welcome new contributors. Instructions on accessing our source code repository, and getting started with hacking on GHC, are available from the GHC's developer's site run by Trac:
http://hackage.haskell.org/trac/ghc/
Mailing lists ~~~~~~~~~~~~~
We run mailing lists for GHC users and bug reports; to subscribe, use the web interfaces at
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
There are several other haskell and ghc-related mailing lists on www.haskell.org; for the full list, see
http://www.haskell.org/mailman/listinfo/
Some GHC developers hang out on #haskell on IRC, too:
http://www.haskell.org/haskellwiki/IRC_channel
Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here:
http://www.haskell.org/ghc/reportabug
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
New! Receive and respond to mail from other email accounts from within Hotmail Find out how. _________________________________________________________________ Have more than one Hotmail account? Link them together to easily access both http://clk.atdmt.com/UKM/go/186394591/direct/01/

I've the 6.10.4 version installed on my MacOS X 10.6 OS. Have I to uninstall this version of GHC before installing the Mac .pkg for the 6.12.1?
Most installer packages (_except_ for MacOS) allow you to have multiple previous versions of ghc - they are simply left in place (but must now be accessed as e.g. ghc-6.10.4 rather than plan ghc, which now points to the new version). However, there is an unfortunate feature/bug of the MacOS installer packages that they forceably delete any previous versions of ghc that you had on your machine. This is undesirable for many reasons, but as far as I know, it has not yet been fixed. Regards, Malcolm

Excerpts from Luca Ciciriello's message of Mon Dec 14 15:12:45 +0100 2009:
I've the 6.10.4 version installed on my MacOS X 10.6 OS. Have I to uninstall this version of GHC before installing the Mac .pkg for the 6.12.1?
Hi Luca, You should be able to get some hints by looking at where ghc is installed. By default ghc puts its libraries into directory which contains the ghc release name. So libs can be installed at the same time. There are also ghc(i)-pkg-$GHC_VERSION executables. So it should be possible. However I don't know about Mac details. But maybe someone else can give you a more accurate answer. Sincerly Marc Weber

Installed 6.12.1 on MacOS X 10.6Now I'm unable to load in GHCi of that modules containing "import Control.Parallel"I'm missing something? Luca
From: marco-oweber@gmx.de To: glasgow-haskell-users@haskell.org Date: Mon, 14 Dec 2009 15:24:48 +0100 Subject: RE: ANNOUNCE: GHC version 6.12.1
Excerpts from Luca Ciciriello's message of Mon Dec 14 15:12:45 +0100 2009:
I've the 6.10.4 version installed on my MacOS X 10.6 OS. Have I to uninstall this version of GHC before installing the Mac .pkg for the 6.12.1?
Hi Luca,
You should be able to get some hints by looking at where ghc is installed.
By default ghc puts its libraries into directory which contains the ghc release name. So libs can be installed at the same time. There are also ghc(i)-pkg-$GHC_VERSION executables. So it should be possible. However I don't know about Mac details.
But maybe someone else can give you a more accurate answer.
Sincerly Marc Weber _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_________________________________________________________________ Use Hotmail to send and receive mail from your different email accounts http://clk.atdmt.com/UKM/go/186394592/direct/01/

On Dec 14, 2009, at 6:24 AM, Marc Weber wrote:
You should be able to get some hints by looking at where ghc is installed.
For any install of this sort, I like to record where the changes were made. Before an install, I execute the shell command echo >timestamp Then I install, then I execute the shell command (OS X 10.6; adapt for other Unix) sudo find -x / -newer timestamp -print >snapshot.txt If I leave scripts "before-snapshot.sh" and "after-snapshot.sh" near my install source, of the form #!/bin/bash # cd to directory of this script cd "`echo $0 | sed 's/[^/]*$//'`" sudo find -x / -newer timestamp -print >snapshot.txt then in OS X 10.6 I can drag each script in turn to a terminal window, with the results automatically ending up in their directory. Editing out the noise, I recorded the following on OS X 10.6 for GHC 6.12.1: /Library/Frameworks/GHC.framework /Library/Frameworks/GHC.framework/Resources /Library/Frameworks/GHC.framework/Tools /Library/Frameworks/GHC.framework/Versions /Library/Frameworks/GHC.framework/Versions/612/usr/bin /Library/Frameworks/GHC.framework/Versions/612/usr/bin/ghc /Library/Frameworks/GHC.framework/Versions/612/usr/bin/ghc-pkg /Library/Frameworks/GHC.framework/Versions/612/usr/bin/ghci /Library/Frameworks/GHC.framework/Versions/612/usr/bin/runhaskell /Library/Frameworks/GHC.framework/Versions/Current /private/var/db/receipts/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom /private/var/db/receipts/org.haskell.glasgowHaskellCompiler.ghc.pkg.plist /usr/bin /usr/bin/ghc /usr/bin/ghc-6.12.1 /usr/bin/ghc-pkg /usr/bin/ghc-pkg-6.12.1 /usr/bin/ghci /usr/bin/ghci-6.12.1 /usr/bin/haddock /usr/bin/hp2ps /usr/bin/hpc /usr/bin/hsc2hs /usr/bin/runghc /usr/bin/runhaskell /usr/share/doc /usr/share/doc/ghc /usr/share/man/man1 /usr/share/man/man1/ghc.1

I wrote the barest possible python script this morning as a poor-man's replacement for "cabal install". Here is the script "cabal-install.py" and a sample use, "GLUT-2.2.2.0-install.sh" : http://hpaste.org/fastcgi/hpaste.fcgi/view?id=14367 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=14368 I copy "cabal-install.py" to "/usr/local/bin/cabal-install", and set the environment variable $CABAL to a directory of package sources which I manually download and maintain. For example, on my Mac OS X 10.6, % echo $CABAL; cd $CABAL; ls -l GLUT-2.2.2.0 /Global/Code/Haskell/__Cabal/Packages/ total 1296 drwxr-xr-x 11 dave admin 374 Dec 17 12:47 GLUT-2.2.2.0 -rwxr-xr-x@ 1 dave admin 165 Dec 17 12:20 GLUT-2.2.2.0-install.sh -rw-r--r-- 1 dave admin 650235 Oct 26 14:12 GLUT-2.2.2.0.tar.gz -rw-r--r--@ 1 dave admin 92 Dec 17 13:33 HackageDB- GLUT-2.2.2.0.webloc "cabal-install.py" looks for package directories by exact name, including version numbers. It skips packages that are already installed, and stops on any error. My typical workflow is to edit the corresponding "install.sh" until I get the list and order of dependent packages right. This is an alpha version; the code itself is clearer than my documentation here. If you thought about writing this and didn't yet, and can read my code, then you may want to experiment with this script. It surely got me unstuck on getting my projects to run under GHC 6.12.1. Any comments are welcome, as are suggestions for how to better share this script. ==== Background: I never got "cabal install" to work on OS X 10.5 with GHC 6.10.4, basically because zlib wouldn't work. Odd, because a perfectly good version of gunzip already exists on most platforms, and the code doesn't fall back to this version if needed. Back when a bunch of libraries came with GHC, I didn't mind manually adding the few extra libraries I needed. Nevertheless, I tried to get "cabal install" working with OS X 10.6 and GHC 6.10.4, and again hit the zlib issue. Realizing I was a bad boy for not reporting the bug, I set up some Apple Software Restore images so I could quickly create sandbox development startup volumes, in hopes of isolating the problem. Meanwhile, GHC 6.12.1 was released. Far fewer standard libraries made "cabal install" more critical, yet a compatible version hadn't been released. I darc'd the development head, but ran into other troubles. There's clearly something wrong with this picture. A Rorschach blot test as to what's wrong, but I see people overreaching, if I have to wait weeks for a simple install tool, then months for the Haskell Platform to be ready. So I wrote something simpler. Not automatic, but a lot faster than installing by hand. Now I've made my peace with the GHC team's decision to get out of the library business.

I put up a web page with better directions, after some good experiences testing this script for my own use: http://www.math.columbia.edu/~bayer/Haskell/cabal-install/ On Dec 17, 2009, at 2:00 PM, Dave Bayer wrote:
I wrote the barest possible python script this morning as a poor-man's replacement for "cabal install".

Dave Bayer wrote:
There's clearly something wrong with this picture. A Rorschach blot test as to what's wrong, but I see people overreaching, if I have to wait weeks for a simple install tool, then months for the Haskell Platform to be ready.
Hopefully future GHC releases will go more smoothly as far as having cabal-install ready is concerned. But generally I think it's right to have a gap between a GHC major release and the corresponding HP release, in which to plan and manage any migration required. In that gap only library authors and users who don't mind some breakage would be expected to use the new GHC. Cheers, Ganesh =============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ===============================================================================

On Thu, Dec 17, 2009 at 4:00 PM, Dave Bayer
Background: I never got "cabal install" to work on OS X 10.5 with GHC 6.10.4, basically because zlib wouldn't work. Odd, because a perfectly good version of gunzip already exists on most platforms, and the code doesn't fall back to this version if needed.
Do you have any more information about this failure? It seems like it would be easier to get zlib to work than to replicate cabal-install. My painful story of getting zlib to work on 10.6 is chronicled here: http://www.haskell.org/pipermail/glasgow-haskell-users/2009-November/018068.... But my problem should only have been an issue on OS X 10.6, not any version lower. Antoine

On Dec 18, 2009, at 5:27 AM, Antoine Latter wrote:
Do you have any more information about this failure? It seems like it would be easier to get zlib to work than to replicate cabal-install.
From http://www.reddit.com/r/haskell/comments/afz6n/cabalinstallpy/ : dcoutts BTW, the reason you could not get cabal-install working on your OSX 10.6 is because you did not have a fully working GHC installation and zlib (a dep of cabal-install) was the first thing to trip over this. Since GHC-6.10.4 does not work "out of the box" on OSX 10.6 you followed some hints to modify the ghc wrapper script to pass the gcc flags -m32. The bit you missed is that you need to do the same for hsc2hs. Otherwise hsc2hs generates code that assumes you're targeting the 64bit ABI. That's why the zlib initialisation check fails, because the code calling zlib has been compiled for the wrong size of everything. Syzygies Bingo, that sounds right, it's a relief to know what happened. There's plenty of advice on the web to just modify the ghc script itself for GHC-6.10.4 on OSX 10.6. I knew to modify more scripts, but I missed hsc2hs. I had gotten as far as figuring out that zlib itself was broken, and I had set up some "sandbox" clean development volume images for testing, when I noticed that GHC-6.12.1 was out. And that cabal-install wasn't ready yet.

On Thu, 2009-12-17 at 14:00 -0800, Dave Bayer wrote:
Background: I never got "cabal install" to work on OS X 10.5 with GHC 6.10.4, basically because zlib wouldn't work. Odd, because a perfectly good version of gunzip already exists on most platforms, and the code doesn't fall back to this version if needed.
Do you mean OSX 10.5 or 10.6. I've never heard of major problems on 10.5 and lots of problems on 10.6. The latter are all fixable. The issue on 10.6 was that gcc defaults to compiling 64bit, but ghc expects 32bit. The hack for ghc-6.10.4 was to change the wrapper script to pass -optc-m32 -optl-m32. That's enough to get ghc working, but for other packages that bind to foreign libs you also need to apply the same trick to hsc2hs. That's why so many people bumped into zlib not working, it was because their hsc2hs was thinking it should be using 64bit when everything else was expecting 32bit. That manifested in a zlib initialisation error (because the structure size check fails). So in short, the problems are not with cabal or zlib, you just need a fully working ghc installation. Duncan

There's a broken link to the Haskell Platform in: http://haskell.org/ghc/docs/6.12.1/html/users_guide/release-6-12-1.html#id28... Bas

On Mon, Dec 14, 2009 at 03:24:05PM +0100, Bas van Dijk wrote:
There's a broken link to the Haskell Platform in:
http://haskell.org/ghc/docs/6.12.1/html/users_guide/release-6-12-1.html#id28...
Thanks; fixed with a redirect. Thanks Ian

Am Montag 14 Dezember 2009 14:36:14 schrieb Ian Lynagh:
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ==============================================================
Hooray! Built from source on $ uname -a Linux linux-mkk1 2.6.27.39-0.2-pae #1 SMP 2009-11-23 12:57:38 +0100 i686 i686 i386 GNU/Linux (openSuse 11.1) Running the testsuit gave OVERALL SUMMARY for test run started at Mo 14. Dez 18:06:00 CET 2009 2352 total tests, which gave rise to 13034 test cases, of which 0 caused framework failures 2760 were skipped 9471 expected passes 328 expected failures 0 unexpected passes 475 unexpected failures Is that good or bad? Almost all unexpected failures are with threaded1, the vast majority of them due to /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:96:0: undefined reference to `inflateInit_' /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:103:0: undefined reference to `inflate' /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:106:0: undefined reference to `inflateReset' /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:108:0: undefined reference to `inflateEnd' collect2: ld returned 1 exit status *** unexpected failure for fileStatus(threaded1) Missing -lz option for the linker? Unexpected failures: 10queens(threaded1) 1185(threaded1) 1548(threaded1) 1679(threaded1) 1744(threaded1) 1852(threaded1) 1861(threaded1) 1980(threaded1) 2047(threaded1) 2080(threaded1) 2122(threaded1) 2469(threaded1) 2594(threaded1) 2783(threaded1) 2838(threaded1) 2910(threaded1) 2917a(threaded1) 3207(threaded1) 3236(threaded1) 3279(threaded1) 3424(threaded1) 3429(threaded1) 3561(threaded1) 3677(threaded1) CPUTime001(threaded1) IOError001(threaded1) IOError002(threaded1) OldException001(threaded1) T1624(threaded1) T1735(threaded1) T246(threaded1) T2529(threaded1) T3087(threaded1) T3126(threaded1) T3382(threaded1) ThreadDelay001(threaded1) addr001(threaded1) andre_monad(threaded1) andy_cherry(threaded1) annrun01(threaded1,dyn) arith001(threaded1) arith002(threaded1) arith003(threaded1) arith004(threaded1) arith005(threaded1) arith006(threaded1) arith007(threaded1) arith008(threaded1) arith009(threaded1) arith010(threaded1) arith011(threaded1) arith012(threaded1) arith013(threaded1) arith014(threaded1) arith015(threaded1) arith016(threaded1) arith017(threaded1) arith018(threaded1) arith019(threaded1) arr001(threaded1) arr002(threaded1) arr003(threaded1) arr004(threaded1) arr005(threaded1) arr006(threaded1) arr007(threaded1) arr008(threaded1) arr009(threaded1) arr010(threaded1) arr011(threaded1) arr012(threaded1) arr013(threaded1) arr014(threaded1) arr015(threaded1) arr016(threaded1) arr017(threaded1) arr018(threaded1) arr019(threaded1) arrowrun001(threaded1) arrowrun002(threaded1) arrowrun003(threaded1) arrowrun004(threaded1) barton-mangler-bug(profc,threaded1) break024(ghci) bug1010(threaded1) bytestring002(threaded1) bytestring003(threaded1) bytestring006(threaded1) cg001(threaded1) cg002(threaded1) cg003(threaded1) cg004(threaded1) cg005(threaded1) cg006(threaded1) cg007(threaded1) cg008(threaded1) cg009(threaded1) cg010(threaded1) cg011(threaded1) cg012(threaded1) cg013(threaded1) cg014(threaded1) cg015(threaded1) cg016(threaded1) cg017(threaded1) cg018(threaded1) cg019(threaded1) cg020(threaded1) cg021(threaded1) cg022(threaded1) cg024(threaded1) cg026(threaded1) cg027(threaded1) cg028(threaded1) cg031(threaded1) cg032(threaded1) cg033(threaded1) cg034(threaded1) cg035(threaded1) cg036(threaded1) cg037(threaded1) cg038(threaded1) cg039(threaded1) cg040(threaded1) cg043(threaded1) cg044(threaded1) cg045(threaded1) cg046(threaded1) cg047(threaded1) cg048(threaded1) cg049(threaded1) cg050(threaded1) cg051(threaded1) cg053(threaded1) cg054(threaded1) cg055(threaded1) cg056(threaded1) cg058(threaded1) cg059(threaded1) cg060(threaded1) cg061(threaded1) cg062(threaded1) cg063(threaded1) char001(threaded1) char002(threaded1) cholewo-eval(threaded1) church(threaded1) conc001(threaded1) conc002(threaded1) conc003(threaded1) conc004(threaded1) conc006(threaded1) conc007(threaded1) conc008(threaded1) conc009(threaded1) conc010(threaded1) conc012(ghci,threaded1) conc013(threaded1) conc014(threaded1) conc015(threaded1) conc016(threaded1) conc017(threaded1) conc018(threaded1) conc019(threaded1) conc020(threaded1) conc021(threaded1) conc022(threaded1) conc023(threaded1) conc024(threaded1) conc025(threaded1) conc026(threaded1) conc027(threaded1) conc028(threaded1) conc029(threaded1) conc030(threaded1) conc031(threaded1) conc032(threaded1) conc033(threaded1) conc034(threaded1) conc035(threaded1) conc036(threaded1) conc037(threaded1) conc038(threaded1) conc040(threaded1) conc041(threaded1) conc042(threaded1) conc043(threaded1) conc044(threaded1) conc045(threaded1) conc051(threaded1) conc058(threaded1) conc059(threaded1) conc064(threaded1) conc065(threaded1) conc066(threaded1) conc067(threaded1) conc068(threaded1) conc069(threaded1) conc070(threaded1) concio002(threaded1) concprog001(ghci,threaded1) countReaders001(threaded1) cvh_unboxing(threaded1) decodingerror001(threaded1) derefnull(threaded1) divbyzero(threaded1) drvrun-foldable1(threaded1) drvrun-functor1(threaded1) drvrun001(threaded1) drvrun002(threaded1) drvrun003(threaded1) drvrun004(threaded1) drvrun005(threaded1) drvrun006(threaded1) drvrun007(threaded1) drvrun008(threaded1) drvrun009(threaded1) drvrun010(threaded1) drvrun011(threaded1) drvrun012(threaded1) drvrun013(threaded1) drvrun014(threaded1) drvrun015(threaded1) drvrun016(threaded1) drvrun017(threaded1) drvrun018(threaded1) drvrun019(threaded1) drvrun020(threaded1) drvrun021(threaded1) drvrun022(threaded1) dsrun001(threaded1) dsrun002(threaded1) dsrun003(threaded1) dsrun004(threaded1) dsrun005(threaded1) dsrun006(threaded1) dsrun007(threaded1) dsrun008(threaded1) dsrun009(threaded1) dsrun010(threaded1) dsrun011(threaded1) dsrun012(threaded1) dsrun013(threaded1) dsrun014(threaded1) dsrun016(threaded1) dsrun017(threaded1) dsrun018(threaded1) dsrun019(threaded1) dsrun020(threaded1) dsrun021(threaded1) dsrun022(threaded1) dsrun023(threaded1) dynamic001(threaded1) echo001(threaded1) encoding001(threaded1) enum01(threaded1) enum02(threaded1) enum03(threaded1) exceptions001(threaded1,threaded1) exceptions002(threaded1) exitWith001(threaded1) expfloat(threaded1) fast2haskell(threaded1) fdReadBuf001(threaded1) fed001(threaded1) ffi001(threaded1) ffi002(threaded1) ffi003(threaded1) ffi006(threaded1) ffi007(threaded1) ffi008(threaded1) ffi010(threaded1) ffi011(threaded1) ffi013(threaded1) ffi014(threaded1) ffi015(threaded1) ffi016(threaded1) ffi017(threaded1) ffi018(threaded1) ffi019(threaded1) ffi020(threaded1) ffi021(threaded1) fileStatus(threaded1) fileexist01(threaded1) finalization001(threaded1) forkprocess01(threaded1) fptr01(threaded1) fptrfail01(threaded1) fun_insts(threaded1) genericNegative001(threaded1) getArgs001(threaded1) getEnv001(threaded1) getEnvironment01(threaded1) hClose001(threaded1) hClose002(threaded1) hClose003(threaded1) hDuplicateTo001(threaded1) hFileSize001(threaded1) hFileSize002(threaded1) hFlush001(threaded1) hGetBuf001(threaded1) hGetBuf002(threaded1) hGetBuf003(threaded1) hGetBuffering001(threaded1) hGetChar001(threaded1) hGetLine001(threaded1) hGetLine002(threaded1) hGetLine003(threaded1) hGetPosn001(threaded1) hIsEOF001(threaded1) hIsEOF002(threaded1) hPutBuf001(threaded1) hPutBuf002(threaded1) hReady001(threaded1) hSeek001(threaded1) hSeek002(threaded1) hSeek003(threaded1) hSeek004(threaded1) hSetBuffering002(threaded1) hSetBuffering003(threaded1) hSetBuffering004(threaded1) hSetEncoding001(threaded1) hTell001(threaded1) hTell002(threaded1) hash001(threaded1) integerBits(threaded1) integerConversions(threaded1) ioeGetErrorString001(threaded1) ioeGetFileName001(threaded1) ioeGetHandle001(threaded1) ioref001(threaded1) isEOF001(threaded1) ix001(threaded1) jl_defaults(threaded1) joao-circular(threaded1) jq_readsPrec(threaded1) jtod_circint(threaded1) jules_xref(threaded1) jules_xref2(threaded1) launchbury(threaded1) lennart_range(threaded1) lex(threaded1) lexNum(threaded1) life_space_leak(threaded1) list001(threaded1) list002(threaded1) list003(threaded1) memo001(threaded1) memo002(threaded1) misc001(threaded1) newline001(threaded1) north_array(threaded1) num001(threaded1) num002(threaded1) num003(threaded1) num004(threaded1) num005(threaded1) num006(threaded1) num007(threaded1) num008(threaded1) num009(threaded1,threaded1) num010(threaded1,threaded1) num011(threaded1) num012(threaded1) num013(threaded1) num014(threaded1) openFile001(threaded1) openFile002(threaded1) openFile003(threaded1) openFile004(threaded1) openFile005(threaded1) openFile006(threaded1) openFile007(threaded1) openFile008(threaded1) performGC001(threaded1) putStr001(threaded1) queryfdoption01(threaded1) rand001(threaded1) ratio001(threaded1) read001(threaded1,threaded1) read002(threaded1) read003(threaded1) read004(threaded1) readFile001(threaded1) readLitChar(threaded1) readwrite001(threaded1) readwrite002(threaded1) readwrite003(threaded1) record_upd(threaded1) resourceLimit(threaded1) rittri(threaded1) rtsflags001(normal) sanders_array(threaded1) seward-space-leak(threaded1) show001(threaded1) showDouble(threaded1) signals001(threaded1) signals002(threaded1,threaded2,profthreaded) signals004(threaded1) stableptr001(threaded1) stableptr003(threaded1) stableptr004(threaded1) stableptr005(threaded1) stack001(threaded1) stack002(threaded1) strict_anns(threaded1) system001(threaded1) take001(threaded1) tcrun001(threaded1) tcrun002(threaded1) tcrun003(threaded1) tcrun004(threaded1) tcrun005(threaded1) tcrun006(threaded1) tcrun007(threaded1) tcrun008(threaded1) tcrun009(threaded1) tcrun010(threaded1) tcrun011(threaded1) tcrun012(threaded1) tcrun013(threaded1) tcrun014(threaded1) tcrun015(threaded1) tcrun016(threaded1) tcrun017(threaded1) tcrun018(threaded1) tcrun019(threaded1) tcrun020(threaded1) tcrun021(threaded1) tcrun022(threaded1) tcrun023(threaded1) tcrun024(threaded1) tcrun025(threaded1) tcrun027(threaded1) tcrun028(threaded1) tcrun029(threaded1) tcrun030(threaded1) tcrun031(threaded1) tcrun032(threaded1) tcrun033(threaded1) tcrun034(threaded1) tcrun035(threaded1) tcrun036(threaded1) tcrun037(threaded1) tcrun038(threaded1) tcrun039(threaded1) tcrun040(threaded1) tcrun041(threaded1) tcrun042(threaded1) testblockalloc(threaded1) testeq2(threaded1) testwsdeque(threaded1) text001(threaded1) thurston-modular-arith(threaded1) time002(threaded1) time003(threaded1) time004(threaded1) trace001(threaded1) tup001(threaded1) typecheck.testeq1(threaded1) unicode001(threaded1,threaded1) unicode002(threaded1) user001(threaded1) weak001(threaded1)

On 14/12/09 21:16, Daniel Fischer wrote:
Am Montag 14 Dezember 2009 14:36:14 schrieb Ian Lynagh:
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ==============================================================
Hooray! Built from source on $ uname -a Linux linux-mkk1 2.6.27.39-0.2-pae #1 SMP 2009-11-23 12:57:38 +0100 i686 i686 i386 GNU/Linux (openSuse 11.1)
Running the testsuit gave
OVERALL SUMMARY for test run started at Mo 14. Dez 18:06:00 CET 2009 2352 total tests, which gave rise to 13034 test cases, of which 0 caused framework failures 2760 were skipped
9471 expected passes 328 expected failures 0 unexpected passes 475 unexpected failures
Is that good or bad? Almost all unexpected failures are with threaded1, the vast majority of them due to
/usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:96:0: undefined reference to `inflateInit_'
Please submit a bug report. Presumably we need a configure test for -lz somewhere. Cheers, Simon

Am Dienstag 15 Dezember 2009 10:43:10 schrieb Simon Marlow:
Please submit a bug report. Presumably we need a configure test for -lz somewhere.
http://hackage.haskell.org/trac/ghc/ticket/3756 Yes, passing -optl-lz to all tests gave only 3 unexpected failures for threaded1.
Cheers, Simon
Thanks, Daniel

Oh great, that's not what I expected: $ cabal install cabal-install cabal: This version of the cabal program is too old to work with ghc-6.12+. You will need to install the 'cabal-install' package version 0.8 or higher. If you still have an older ghc installed (eg 6.10.4), run: $ cabal install -w ghc-6.10.4 'cabal-install >= 0.8' $ cabal install -w ghc-6.10.3 'cabal-install >= 0.8' Resolving dependencies... cabal: There is no available version of cabal-install that satisfies >=0.8 Oops, nothing higher than 0.6.4 on Hackage, even darcs.haskell.org/cabal-install is only version 0.7.5. That seems to work, though, but I needed to manually install network, mtl and parsec before bootstrap.sh ran.

On Mon, 2009-12-14 at 22:49 +0100, Daniel Fischer wrote:
Oh great, that's not what I expected:
$ cabal install cabal-install cabal: This version of the cabal program is too old to work with ghc-6.12+. You will need to install the 'cabal-install' package version 0.8 or higher. If you still have an older ghc installed (eg 6.10.4), run: $ cabal install -w ghc-6.10.4 'cabal-install >= 0.8' $ cabal install -w ghc-6.10.3 'cabal-install >= 0.8' Resolving dependencies... cabal: There is no available version of cabal-install that satisfies >=0.8
Oops, nothing higher than 0.6.4 on Hackage, even darcs.haskell.org/cabal-install is only version 0.7.5.
Right, the cabal-install 0.8.x release will appear in due course. It shouldn't be too long since I've already been using it for Hackage regression testing of ghc-6.12.
That seems to work, though, but I needed to manually install network, mtl and parsec before bootstrap.sh ran.
Yes, the bootstrap needs updating to take account of the fact that those packages are no longer shipped with ghc-6.12. Duncan

On Mon, Dec 14, 2009 at 01:36:14PM +0000, Ian Lynagh wrote:
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.12.1 ==============================================================
Cheers. It's not a small diff from 6.10.4. Bigger than what I'd like to eye through myself. As the ghc package maintainer in Debian, I'd feel better about pushing it forward if I could see some authentication about the tar ball's contents. Could you please provide a GPG signature for the release? Linux kernels customarily sign their tarballs. As an example. Thank you.
participants (13)
-
Antoine Latter
-
Bas van Dijk
-
Daniel Fischer
-
Dave Bayer
-
Duncan Coutts
-
Ian Lynagh
-
Kari Pahula
-
Luca Ciciriello
-
Malcolm Wallace
-
Marc Weber
-
Robin Green
-
Simon Marlow
-
Sittampalam, Ganesh