
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.10.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: * Some new language features have been implemented: * Record syntax: wild-card patterns, punning, and field disambiguation * Generalised quasi-quotes * Generalised list comprehensions * View patterns * Type families have been completely re-implemented * Now comes with Haddock 2, which supports all GHC extensions * Parallel garbage collection * Base provides extensible exceptions * The GHC API is easier to use * External core (output only) now works again * Data Parallel Haskell (DPH) comes as part of GHC The full release notes are here: http://haskell.org/ghc/docs/6.10.1/html/users_guide/release-6-10-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

Hello fellow GHC users, Ian Lynagh wrote:
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.10.1 ==============================================================
[snip]
How to get it ~~~~~~~~~~~~~
The easy way is to go to the web page, which should be self-explanatory:
Gentoo Linux users can get it from the gentoo-haskell overlay[1]. If you're not familiar with this overlay (a gold mine for haskell hackers using gentoo), you can easily use layman[2] to get access. Make sure you have darcs installed, as it is a requirement for our overlay. Once layman is set up, add the overlay with: $ layman -a haskell Note that ghc-6.10.1 still is masked by keyword, and you need to unmask it first. If you're not familiar with how to do this, here's a quick guide: # make sure /etc/portage exists $ [[ -d /etc/portage ]] || mkdir /etc/portage # accept ghc being ~arch $ echo "dev-lang/ghc" >> /etc/portage/package.keywords # ghc requires the very latest libedit package $ echo "dev-libs/libedit" >> /etc/portage/package.keywords You may then install ghc-6.10.1 by saying: # this requires that you already have an older ghc version installed $ USE="ghcbootstrap -binary" emerge ghc The USE flags are required as we don't just yet provide the required binaries to bootstrap ghc. The command above requires that you already have a ghc version installed to bootstrap with. This version will be replaced with ghc-6.10.1 once the installation finishes. GHC binaries will follow shortly, which will shorten the procedure to: $ emerge ghc The packages from extralibs will also be available from the overlay. If you run into trouble, reply to the ml, or find us in #gentoo-haskell at freenode. Cheers, Lennart Kolmodin -- using his Gentoo Linux Developer hat [1] http://code.haskell.org/gentoo/gentoo-haskell/ [2] http://www.gentoo.org/proj/en/overlays/userguide.xml

On Tue, Nov 4, 2008 at 10:11 AM, Ian Lynagh
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.
I'm on OSX and I currently have ghc-6.6.1 and ghc-6.8.3 (installed from a pkg). I would like to add ghc-6.10.1 to my system. I tried to do this with RC1 of 6.10, but I found that it uninstalled my ghc-6.8.3. What will I need to do to get both 6.8.3 and 6.10.1? Thank you! Jason

Jason Dagit:
On Tue, Nov 4, 2008 at 10:11 AM, Ian Lynagh
wrote: 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.
I'm on OSX and I currently have ghc-6.6.1 and ghc-6.8.3 (installed from a pkg). I would like to add ghc-6.10.1 to my system. I tried to do this with RC1 of 6.10, but I found that it uninstalled my ghc-6.8.3.
What will I need to do to get both 6.8.3 and 6.10.1?
Are you sure it does deinstall the 6.8 compiler? Or does it just overwrite the symbolic links in /usr/bin? To check, have a look at /Library/Frameworks/GHC.framework/Versions After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour. And while we are at it...a BIG FAT WARNING: If you installed the 6.10.200081007 pre-release installer package, uninstall that *before* installing the 6.10.1 package. For reasons, I don't understand, the installer otherwise half removes the old package, but doesn't seem to install the new one. Can a Mac expert shed any light on that behaviour? If you tried installing 6.10.1 before reading that, just remove the partial installation you are left with, and install again. Manuel

On Wed, Nov 05, 2008 at 11:26:20AM +1100, Manuel M T Chakravarty wrote:
Jason Dagit:
What will I need to do to get both 6.8.3 and 6.10.1?
Are you sure it does deinstall the 6.8 compiler?
It definitely deinstalls it for me; I've just confirmed it. Here's what I saw with a 6.9 OS X installer a while ago: If I start off with 6.8.3 installed: $ ls -l /Library/Frameworks/GHC.framework/Versions/ total 8 drwxrwxr-x 4 root admin 136 Jun 18 03:10 608 lrwxr-xr-x 1 root admin 3 Aug 29 12:57 Current -> 608 then while my GHC-6.9.20080828-i386.pkg is installing I see: $ ls -l /Library/Frameworks/GHC.framework/Versions/ total 8 drwxrwxr-x 4 root admin 136 Aug 29 12:58 609 lrwxr-xr-x 1 root admin 3 Aug 29 12:57 Current -> 608 (i.e. 608 has disappeared, but it isn't the whole GHC.framework that's been removed because the Current link is still there) and then when the installer has finished: $ ls -l /Library/Frameworks/GHC.framework/Versions/ total 8 drwxrwxr-x 4 root admin 136 Aug 29 12:58 609 lrwxr-xr-x 1 root admin 3 Aug 29 12:57 Current -> 608 Thanks IAn

On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
Jason Dagit:
On Tue, Nov 4, 2008 at 10:11 AM, Ian Lynagh
wrote: 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.
I'm on OSX and I currently have ghc-6.6.1 and ghc-6.8.3 (installed from a pkg). I would like to add ghc-6.10.1 to my system. I tried to do this with RC1 of 6.10, but I found that it uninstalled my ghc-6.8.3.
What will I need to do to get both 6.8.3 and 6.10.1?
Are you sure it does deinstall the 6.8 compiler? Or does it just overwrite the symbolic links in /usr/bin? To check, have a look at
/Library/Frameworks/GHC.framework/Versions
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I haven't tried the 6.10.1 install, but after using the 6.8.3 pkg followed by the 6.10 RC1 pkg, followed by the 6.8.3 pkg, I have just 608 in the directory you mention. I guess I should try the 6.10.1 install. If I have to reinstall 6.8.3 again, not the end of the world for me.
And while we are at it...a BIG FAT WARNING:
If you installed the 6.10.200081007 pre-release installer package, uninstall that *before* installing the 6.10.1 package.
Okay thanks. Although, I don't think that will be a problem for me given the directories I can see. Thanks, Jason

On 2008 Nov 4, at 20:26, Jason Dagit wrote:
On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: Jason Dagit:
I'm on OSX and I currently have ghc-6.6.1 and ghc-6.8.3 (installed from a pkg). I would like to add ghc-6.10.1 to my system. I tried to do this with RC1 of 6.10, but I found that it uninstalled my ghc-6.8.3.
What will I need to do to get both 6.8.3 and 6.10.1?
Are you sure it does deinstall the 6.8 compiler? Or does it just overwrite the symbolic links in /usr/bin? To check, have a look at
/Library/Frameworks/GHC.framework/Versions
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I haven't tried the 6.10.1 install, but after using the 6.8.3 pkg followed by the 6.10 RC1 pkg, followed by the 6.8.3 pkg, I have just 608 in the directory you mention.
I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
On 2008 Nov 4, at 20:26, Jason Dagit wrote:
On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: Are you sure it does deinstall the 6.8 compiler?
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom Wouldn't removing it make uninstall impossible? In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once. Thanks Ian

Ian Lynagh:
On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
On 2008 Nov 4, at 20:26, Jason Dagit wrote:
On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: Are you sure it does deinstall the 6.8 compiler?
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/ org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
Wouldn't removing it make uninstall impossible?
In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once.
A current limitation of the MacOS package system is that it does not support uninstalling of packages; cf http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD... /apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29 This is not a big drama on MacOS, as MacOS encourages the distribution of software packages as "bundles": http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles... This essentially means that instead of sprinkling files all over the file system (as is common in other OSes), MacOS applications and frameworks (Mac-speak for libraries) are kept in a single directory. Uninstalling then means doing an rm -rf on that directory. Unfortunately, some applications (including GHC and Apple's Xcode IDE) can't be entirely contained in a single directory. In the case of GHC, we want symlinks in /usr/bin. The established way of uninstalling such applications is by supplying an Uninstaller script, just as I did for GHC. (Apple does the same for Xcode.) The purpose of the Uninstaller script is too completely remove GHC.framework from a machine - not just to remove one version. In fact, if more than one version of GHC is installed, the Uninstaller will refuse to run and require the manual removal of all versions, but the current (easily achieved by a "rm -rf /Library/Frameworks/ GHC.framework/Versions/<version>"). The main feature of the Uninstaller script is to get rid of all symlinks pointing into GHC.framework. The framework itself is just deleted by a "rm -rf" as expected. (It also removes the above mentioned receipt file.) So, to directly answer the above questions: * The package manger (which uses the receipts) can't uninstall and the uninstaller script doesn't need the receipt. So, even after deleteing the receibt, you can still uninstall. * The Uninstaller can uninstall any version (at least as long as no symlinks are put into new directories outside of the bundle that the Uninstaller doesn't know about). Manuel

On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty wrote: Ian Lynagh: On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote: On 2008 Nov 4, at 20:26, Jason Dagit wrote: On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
Are you sure it does deinstall the 6.8 compiler? After installing 6.10, there should be a 608/ and a 610/
directory. This
certainly happens on my Mac and I am not aware of an option to
change that
behaviour. I expect if you used the OSX installer then /Library/Receipts is
screwing you (it wipes the old files listed in the .bom file). Try
finding and removing the receipt directory and bom file before
installing. The only file I can see that looks relevant is
/Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom Wouldn't removing it make uninstall impossible? In fact, if you did manage to get 2 versions installed, how would
/Library/Frameworks/GHC.framework/Tools/Uninstaller
know which version to uninstall? Wouldn't it only know how to uninstall
the version it came with? I'd suggest that the overlapping file
"Uninstaller" could be why the older version gets removed, but that
wouldn't explain why Manuel can install both at once. A current limitation of the MacOS package system is that it does not
support uninstalling of packages; cf http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD...
/apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29 This is not a big drama on MacOS, as MacOS encourages the distribution of
software packages as "bundles": http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles... This essentially means that instead of sprinkling files all over the file
system (as is common in other OSes), MacOS applications and frameworks
(Mac-speak for libraries) are kept in a single directory. Uninstalling then
means doing an rm -rf on that directory. Unfortunately, some applications (including GHC and Apple's Xcode IDE)
can't be entirely contained in a single directory. In the case of GHC, we
want symlinks in /usr/bin. The established way of uninstalling such
applications is by supplying an Uninstaller script, just as I did for GHC.
(Apple does the same for Xcode.) The purpose of the Uninstaller script is too completely remove
GHC.framework from a machine - not just to remove one version. In fact, if
more than one version of GHC is installed, the Uninstaller will refuse to
run and require the manual removal of all versions, but the current (easily
achieved by a "rm -rf
/Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of
the Uninstaller script is to get rid of all symlinks pointing into
GHC.framework. The framework itself is just deleted by a "rm -rf" as
expected. (It also removes the above mentioned receipt file.) So, to directly answer the above questions:
* The package manger (which uses the receipts) can't uninstall and the
uninstaller script doesn't need the receipt. So, even after deleteing the
receibt, you can still uninstall.
* The Uninstaller can uninstall any version (at least as long as no
symlinks are put into new directories outside of the bundle that the
Uninstaller doesn't know about). Is there an update on this thread? I would still like to have my cake and
eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the
installer hasn't been updated and if I try again I will lose my copy of
6.8.3.
Thanks,
Jason

Jason Dagit:
On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty
wrote: Ian Lynagh:
On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote: On 2008 Nov 4, at 20:26, Jason Dagit wrote: On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: Are you sure it does deinstall the 6.8 compiler?
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/ org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
Wouldn't removing it make uninstall impossible?
In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once.
A current limitation of the MacOS package system is that it does not support uninstalling of packages; cf
http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD... /apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29
This is not a big drama on MacOS, as MacOS encourages the distribution of software packages as "bundles":
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles...
This essentially means that instead of sprinkling files all over the file system (as is common in other OSes), MacOS applications and frameworks (Mac-speak for libraries) are kept in a single directory. Uninstalling then means doing an rm -rf on that directory.
Unfortunately, some applications (including GHC and Apple's Xcode IDE) can't be entirely contained in a single directory. In the case of GHC, we want symlinks in /usr/bin. The established way of uninstalling such applications is by supplying an Uninstaller script, just as I did for GHC. (Apple does the same for Xcode.)
The purpose of the Uninstaller script is too completely remove GHC.framework from a machine - not just to remove one version. In fact, if more than one version of GHC is installed, the Uninstaller will refuse to run and require the manual removal of all versions, but the current (easily achieved by a "rm -rf /Library/Frameworks/ GHC.framework/Versions/<version>"). The main feature of the Uninstaller script is to get rid of all symlinks pointing into GHC.framework. The framework itself is just deleted by a "rm -rf" as expected. (It also removes the above mentioned receipt file.)
So, to directly answer the above questions: * The package manger (which uses the receipts) can't uninstall and the uninstaller script doesn't need the receipt. So, even after deleteing the receibt, you can still uninstall. * The Uninstaller can uninstall any version (at least as long as no symlinks are put into new directories outside of the bundle that the Uninstaller doesn't know about).
Is there an update on this thread? I would still like to have my cake and eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the installer hasn't been updated and if I try again I will lose my copy of 6.8.3.
Sorry, but for the moment, my (rather limited knowledge) of the MacOS packaging system is exhausted, and currently I don't have the time to search the web or experiment to try to learn more. It would be helpful to have the input of somebody who has more experience with MacOS packages. Manuel

On Wed, Nov 19, 2008 at 1:28 AM, Manuel M T Chakravarty
Jason Dagit:
On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty
wrote: Ian Lynagh:
On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
On 2008 Nov 4, at 20:26, Jason Dagit wrote:
On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: Are you sure it does deinstall the 6.8 compiler?
After installing 6.10, there should be a 608/ and a 610/ directory. This certainly happens on my Mac and I am not aware of an option to change that behaviour.
I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
Wouldn't removing it make uninstall impossible?
In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once.
A current limitation of the MacOS package system is that it does not support uninstalling of packages; cf
http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD...
This is not a big drama on MacOS, as MacOS encourages the distribution of software packages as "bundles":
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles...
This essentially means that instead of sprinkling files all over the file system (as is common in other OSes), MacOS applications and frameworks (Mac-speak for libraries) are kept in a single directory. Uninstalling then means doing an rm -rf on that directory.
Unfortunately, some applications (including GHC and Apple's Xcode IDE) can't be entirely contained in a single directory. In the case of GHC, we want symlinks in /usr/bin. The established way of uninstalling such applications is by supplying an Uninstaller script, just as I did for GHC. (Apple does the same for Xcode.)
The purpose of the Uninstaller script is too completely remove GHC.framework from a machine - not just to remove one version. In fact, if more than one version of GHC is installed, the Uninstaller will refuse to run and require the manual removal of all versions, but the current (easily achieved by a "rm -rf /Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of the Uninstaller script is to get rid of all symlinks pointing into GHC.framework. The framework itself is just deleted by a "rm -rf" as expected. (It also removes the above mentioned receipt file.)
So, to directly answer the above questions: * The package manger (which uses the receipts) can't uninstall and the uninstaller script doesn't need the receipt. So, even after deleteing the receibt, you can still uninstall. * The Uninstaller can uninstall any version (at least as long as no symlinks are put into new directories outside of the bundle that the Uninstaller doesn't know about).
Is there an update on this thread? I would still like to have my cake and eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the installer hasn't been updated and if I try again I will lose my copy of 6.8.3.
Sorry, but for the moment, my (rather limited knowledge) of the MacOS packaging system is exhausted, and currently I don't have the time to search the web or experiment to try to learn more. It would be helpful to have the input of somebody who has more experience with MacOS packages. Manuel
Okay. That's fine, the OSX installer system sounds odd. I don't want to fight with it myself. I just want to upgrade ghc and I was getting pressure to do so and I tried the .tar.bz version, but I had some annoying experiences that I can share. So, the page here: http://www.haskell.org/ghc/download_ghc_6_10_1.html#macosxintel Has only this as installation instructions: This is a binary distribution for Mac OS X 10.5 (Leopard), prepared by Christian Maeder. It needs libedit.2.dylib, libncurses.5.dylib and libgmp.3.dylib under /opt/local/lib/. I had no idea how to do the install or how to satisfy the requirements. By pestering others I learned that you install libraries into /opt/local using MacPorts. The next challenge was learning what to do with the .tar.bz file once it was downloaded. I found an INSTALL file inside the tarball with some instructions thankfully. I wish the download page said something about this. It was quite a mystery. I only looked in the tarball because I was frustrated. I don't like downloading and untarring things if i don't know what to expect inside them. But, I still think I did something wrong because the first thing I tried to build with 6.10 complained that -lgmp was not found. I have checked, it's installed and I saw the ./configure script for the 6.10 installation find it. Quite baffling. I guess I'm stuck on 6.8.3 for a while longer. Jason

Jason Dagit wrote:
But, I still think I did something wrong because the first thing I tried to build with 6.10 complained that -lgmp was not found. I have checked, it's installed and I saw the ./configure script for the 6.10 installation find it.
Actually I have the same problem. I need to set export LIBRARY_PATH=/opt/local/lib when linking, because I've created the binary-dist with this setting. Ideally, /opt/local/lib should also be listed under "library-dirs:" for ghc-pkg describe rts Alternatively, you can copy /opt/local/lib/libgmp.a into ghc's libdir <prefiy>/lib/ghc-6.10.1/, with the additional "benefit" that gmp is statically linked into your binary (for platforms without /opt/local/lib/libgmp.dylib) Cheers Christian

Also note that gmp.h will not be found without: export CPATH=/opt/local/include This directory should be part of the "include-dirs:" for the rts package. And again the file /opt/local/include/gmp.h could be simply copied to <prefix>/lib/ghc-6.10.1/include/ Sorry for the trouble Christian Christian Maeder wrote:
Jason Dagit wrote:
But, I still think I did something wrong because the first thing I tried to build with 6.10 complained that -lgmp was not found. I have checked, it's installed and I saw the ./configure script for the 6.10 installation find it.
Actually I have the same problem. I need to set
export LIBRARY_PATH=/opt/local/lib
when linking, because I've created the binary-dist with this setting.
Ideally, /opt/local/lib should also be listed under "library-dirs:" for
ghc-pkg describe rts
Alternatively, you can copy /opt/local/lib/libgmp.a into ghc's libdir <prefiy>/lib/ghc-6.10.1/, with the additional "benefit" that gmp is statically linked into your binary (for platforms without /opt/local/lib/libgmp.dylib)
Cheers Christian

On Fri, Nov 21, 2008 at 6:10 AM, Christian Maeder
Also note that gmp.h will not be found without:
export CPATH=/opt/local/include
This directory should be part of the "include-dirs:" for the rts package. And again the file /opt/local/include/gmp.h could be simply copied to <prefix>/lib/ghc-6.10.1/include/
Hmm...Okay, so how do I add a path to include-dirs? In my case <prefix>=$HOME, so I looked under ~/lib/ghc-6.10.1 and I didn't see any files I could modify to change it. Was it an option I missed when I was doing the configure for the install? Thanks for making this package. I hope we can make the install easier to understand and less error prone (fewer things to tweak locally). Thanks, Jason

Jason Dagit wrote:
On Fri, Nov 21, 2008 at 6:10 AM, Christian Maeder
wrote: Also note that gmp.h will not be found without:
export CPATH=/opt/local/include
This directory should be part of the "include-dirs:" for the rts package. And again the file /opt/local/include/gmp.h could be simply copied to <prefix>/lib/ghc-6.10.1/include/
Hmm...Okay, so how do I add a path to include-dirs? In my case <prefix>=$HOME, so I looked under ~/lib/ghc-6.10.1 and I didn't see any files I could modify to change it.
I would suggest to only copy libgmp.a and gmp.h, because the file to edit it <prefix>/lib/ghc-6.10.1/package.conf. Search for (package) "rts" and the fields "libraryDirs" and "includeDirs". But if you mess up this file, all may be lost (so back it up first).
Was it an option I missed when I was doing the configure for the install?
I'm not sure what configure options to pass (before my building or your installing)
Thanks for making this package. I hope we can make the install easier to understand and less error prone (fewer things to tweak locally).
Thanks, Jason
Thanks, too Christian

On Fri, Nov 21, 2008 at 7:04 AM, Christian Maeder
Jason Dagit wrote:
On Fri, Nov 21, 2008 at 6:10 AM, Christian Maeder
wrote: Also note that gmp.h will not be found without:
export CPATH=/opt/local/include
This directory should be part of the "include-dirs:" for the rts package. And again the file /opt/local/include/gmp.h could be simply copied to <prefix>/lib/ghc-6.10.1/include/
Hmm...Okay, so how do I add a path to include-dirs? In my case <prefix>=$HOME, so I looked under ~/lib/ghc-6.10.1 and I didn't see any files I could modify to change it.
I would suggest to only copy libgmp.a and gmp.h, because the file to edit it <prefix>/lib/ghc-6.10.1/package.conf. Search for (package) "rts" and the fields "libraryDirs" and "includeDirs". But if you mess up this file, all may be lost (so back it up first).
I created a backup, then made the edits you suggested and the build failure I was seeing went away. Thanks!
Was it an option I missed when I was doing the configure for the install?
I'm not sure what configure options to pass (before my building or your installing)
Hopefully someone like Ian can comment here. Thanks, Jason

Hi Jason, On Nov 21, 2008, at 8:09 AM, Jason Dagit wrote:
On Wed, Nov 19, 2008 at 1:28 AM, Manuel M T Chakravarty
wrote: Jason Dagit:
On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty
wrote: Ian Lynagh:
On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
On 2008 Nov 4, at 20:26, Jason Dagit wrote:
On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
wrote: > > Are you sure it does deinstall the 6.8 compiler? > > After installing 6.10, there should be a 608/ and a 610/ > directory. This > certainly happens on my Mac and I am not aware of an option to > change that > behaviour. I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/ org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
Wouldn't removing it make uninstall impossible?
In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once.
A current limitation of the MacOS package system is that it does not support uninstalling of packages; cf
http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD... /apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29
This is not a big drama on MacOS, as MacOS encourages the distribution of software packages as "bundles":
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles...
This essentially means that instead of sprinkling files all over the file system (as is common in other OSes), MacOS applications and frameworks (Mac-speak for libraries) are kept in a single directory. Uninstalling then means doing an rm -rf on that directory.
Unfortunately, some applications (including GHC and Apple's Xcode IDE) can't be entirely contained in a single directory. In the case of GHC, we want symlinks in /usr/bin. The established way of uninstalling such applications is by supplying an Uninstaller script, just as I did for GHC. (Apple does the same for Xcode.)
The purpose of the Uninstaller script is too completely remove GHC.framework from a machine - not just to remove one version. In fact, if more than one version of GHC is installed, the Uninstaller will refuse to run and require the manual removal of all versions, but the current (easily achieved by a "rm -rf /Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of the Uninstaller script is to get rid of all symlinks pointing into GHC.framework. The framework itself is just deleted by a "rm -rf" as expected. (It also removes the above mentioned receipt file.)
So, to directly answer the above questions: * The package manger (which uses the receipts) can't uninstall and the uninstaller script doesn't need the receipt. So, even after deleteing the receibt, you can still uninstall. * The Uninstaller can uninstall any version (at least as long as no symlinks are put into new directories outside of the bundle that the Uninstaller doesn't know about).
Is there an update on this thread? I would still like to have my cake and eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the installer hasn't been updated and if I try again I will lose my copy of 6.8.3.
Sorry, but for the moment, my (rather limited knowledge) of the MacOS packaging system is exhausted, and currently I don't have the time to search the web or experiment to try to learn more. It would be helpful to have the input of somebody who has more experience with MacOS packages. Manuel
Okay. That's fine, the OSX installer system sounds odd. I don't want to fight with it myself. I just want to upgrade ghc and I was getting pressure to do so and I tried the .tar.bz version, but I had some annoying experiences that I can share.
So, the page here: http://www.haskell.org/ghc/download_ghc_6_10_1.html#macosxintel
Has only this as installation instructions: This is a binary distribution for Mac OS X 10.5 (Leopard), prepared by Christian Maeder. It needs libedit.2.dylib, libncurses.5.dylib and libgmp.3.dylib under /opt/local/lib/.
I had no idea how to do the install or how to satisfy the requirements. By pestering others I learned that you install libraries into /opt/local using MacPorts. The next challenge was learning what to do with the .tar.bz file once it was downloaded. I found an INSTALL file inside the tarball with some instructions thankfully. I wish the download page said something about this. It was quite a mystery. I only looked in the tarball because I was frustrated. I don't like downloading and untarring things if i don't know what to expect inside them.
But, I still think I did something wrong because the first thing I tried to build with 6.10 complained that -lgmp was not found. I have checked, it's installed and I saw the ./configure script for the 6.10 installation find it.
Quite baffling.
I guess I'm stuck on 6.8.3 for a while longer.
Jason
The latest MacPorts ghc 6.10.1 fixes a number of build bugs and might work for you. It builds on ppc/Tiger, i386/Leopard and i386/Tiger. ppc/ Leopard still fails, but I now have an account on a machine that I can use to test and debug. If you could send a detailed log of the failure to find "-lgmp" I would appreciate it. I've fixed two different bugs involving the library path that caused this symptom. It would be good to know if your failure is covered by the existing patches. I'll send the patches upstream along with bug tickets in the next few days. Best Wishes, Greg

On Fri, Nov 21, 2008 at 6:56 AM, Gregory Wright
Hi Jason,
On Nov 21, 2008, at 8:09 AM, Jason Dagit wrote:
On Wed, Nov 19, 2008 at 1:28 AM, Manuel M T Chakravarty
wrote: Jason Dagit:
On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty
wrote: Ian Lynagh:
On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
On 2008 Nov 4, at 20:26, Jason Dagit wrote: > > On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty >
wrote: >> >> Are you sure it does deinstall the 6.8 compiler? >> >> After installing 6.10, there should be a 608/ and a 610/ >> directory. This >> certainly happens on my Mac and I am not aware of an option to >> change that >> behaviour. I expect if you used the OSX installer then /Library/Receipts is screwing you (it wipes the old files listed in the .bom file). Try finding and removing the receipt directory and bom file before installing.
The only file I can see that looks relevant is /Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
Wouldn't removing it make uninstall impossible?
In fact, if you did manage to get 2 versions installed, how would /Library/Frameworks/GHC.framework/Tools/Uninstaller know which version to uninstall? Wouldn't it only know how to uninstall the version it came with? I'd suggest that the overlapping file "Uninstaller" could be why the older version gets removed, but that wouldn't explain why Manuel can install both at once.
A current limitation of the MacOS package system is that it does not support uninstalling of packages; cf
http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareD...
This is not a big drama on MacOS, as MacOS encourages the distribution of software packages as "bundles":
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles...
This essentially means that instead of sprinkling files all over the file system (as is common in other OSes), MacOS applications and frameworks (Mac-speak for libraries) are kept in a single directory. Uninstalling then means doing an rm -rf on that directory.
Unfortunately, some applications (including GHC and Apple's Xcode IDE) can't be entirely contained in a single directory. In the case of GHC, we want symlinks in /usr/bin. The established way of uninstalling such applications is by supplying an Uninstaller script, just as I did for GHC. (Apple does the same for Xcode.)
The purpose of the Uninstaller script is too completely remove GHC.framework from a machine - not just to remove one version. In fact, if more than one version of GHC is installed, the Uninstaller will refuse to run and require the manual removal of all versions, but the current (easily achieved by a "rm -rf /Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of the Uninstaller script is to get rid of all symlinks pointing into GHC.framework. The framework itself is just deleted by a "rm -rf" as expected. (It also removes the above mentioned receipt file.)
So, to directly answer the above questions: * The package manger (which uses the receipts) can't uninstall and the uninstaller script doesn't need the receipt. So, even after deleteing the receibt, you can still uninstall. * The Uninstaller can uninstall any version (at least as long as no symlinks are put into new directories outside of the bundle that the Uninstaller doesn't know about).
Is there an update on this thread? I would still like to have my cake and eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the installer hasn't been updated and if I try again I will lose my copy of 6.8.3.
Sorry, but for the moment, my (rather limited knowledge) of the MacOS packaging system is exhausted, and currently I don't have the time to search the web or experiment to try to learn more. It would be helpful to have the input of somebody who has more experience with MacOS packages. Manuel
Okay. That's fine, the OSX installer system sounds odd. I don't want to fight with it myself. I just want to upgrade ghc and I was getting pressure to do so and I tried the .tar.bz version, but I had some annoying experiences that I can share.
So, the page here: http://www.haskell.org/ghc/download_ghc_6_10_1.html#macosxintel
Has only this as installation instructions: This is a binary distribution for Mac OS X 10.5 (Leopard), prepared by Christian Maeder. It needs libedit.2.dylib, libncurses.5.dylib and libgmp.3.dylib under /opt/local/lib/.
I had no idea how to do the install or how to satisfy the requirements. By pestering others I learned that you install libraries into /opt/local using MacPorts. The next challenge was learning what to do with the .tar.bz file once it was downloaded. I found an INSTALL file inside the tarball with some instructions thankfully. I wish the download page said something about this. It was quite a mystery. I only looked in the tarball because I was frustrated. I don't like downloading and untarring things if i don't know what to expect inside them.
But, I still think I did something wrong because the first thing I tried to build with 6.10 complained that -lgmp was not found. I have checked, it's installed and I saw the ./configure script for the 6.10 installation find it.
Quite baffling.
I guess I'm stuck on 6.8.3 for a while longer.
Jason
The latest MacPorts ghc 6.10.1 fixes a number of build bugs and might work for you. It builds on ppc/Tiger, i386/Leopard and i386/Tiger. ppc/Leopard still fails, but I now have an account on a machine that I can use to test and debug.
I've had a history of bad experiences with MacPorts and I remain fully skeptical of its use. In particular, I've seen too many darcs users get bitten by macport builds when a build from source "just works", every copy of emacs that I've built from macports has started segfaulting when Apple send their next update, and ghc builds can take a day (6-10 hours realistically). Other more minor problems I'd had include it wasting space without a good clean up option, confusing me and one other problem that someone showed me how to fix today so maybe I won't mention it. I also do not like the MacPort philosophy of requiring the end user to build the requested package along with recursively building/installing all the dependencies. In this regard, I would prefer Fink except that software in fink tends to ridiculously old.
If you could send a detailed log of the failure to find "-lgmp" I would appreciate it. I've fixed two different bugs involving the library path that caused this symptom. It would be good to know if your failure is covered by the existing patches.
I'll send the patches upstream along with bug tickets in the next few days.
The error was rather simple and I don't expect you'll be interested in it as it was the result of a cabal-install when using the Christian Maeder's ghc build. But, here it is just in case I'm wrong: $ cabal install "zlib >= 0.5" Resolving dependencies... 'zlib-0.5.0.0' is cached. Configuring zlib-0.5.0.0... Preprocessing library zlib-0.5.0.0... ld: library not found for -lgmp collect2: ld returned 1 exit status linking dist/build/Codec/Compression/Zlib/Stream_hsc_make.o failed command was: /usr/bin/gcc -lz -L/Users/dagit/lib/ghc-6.10.1/bytestring-0.9.1.4 -L/Users/dagit/lib/ghc-6.10.1/base-3.0.3.0 -L/Users/dagit/lib/ghc-6.10.1/syb-0.1.0.0 -L/Users/dagit/lib/ghc-6.10.1/base-4.0.0.0 -L/Users/dagit/lib/ghc-6.10.1/integer-0.1.0.0 -L/Users/dagit/lib/ghc-6.10.1/ghc-prim-0.1.0.0 -L/Users/dagit/lib/ghc-6.10.1 -lm -lffi -lgmp -ldl dist/build/Codec/Compression/Zlib/Stream_hsc_make.o -o dist/build/Codec/Compression/Zlib/Stream_hsc_make cabal: Error: some packages failed to install: zlib-0.5.0.0 failed during the building phase. The exception was: exit: ExitFailure 1 Thanks, Jason

Hello Greg, On Friday 21 November 2008 15:56, Gregory Wright wrote:
... ppc/ Leopard still fails, but I now have an account on a machine that I can use to test and debug.
And if you need such an access (now or in the future), please just say the word and you can get access to my PPC Mac OS X 10.5 Leopard machine.
...
Best regards Thorkil

Hi Thorkil, On Nov 21, 2008, at 11:03 AM, Thorkil Naur wrote:
Hello Greg,
On Friday 21 November 2008 15:56, Gregory Wright wrote:
... ppc/ Leopard still fails, but I now have an account on a machine that I can use to test and debug.
And if you need such an access (now or in the future), please just say the word and you can get access to my PPC Mac OS X 10.5 Leopard machine.
...
Best regards Thorkil
Thank you for your kind offer. I will likely take you up on it in the future. Best Wishes, Greg

Hi, It is a few days after the release. But why the darcs repos of 6.10 is still changing? Ian Lynagh wrote:
============================================================== The (Interactive) Glasgow Haskell Compiler -- version 6.10.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:
* Some new language features have been implemented: * Record syntax: wild-card patterns, punning, and field disambiguation * Generalised quasi-quotes * Generalised list comprehensions * View patterns
* Type families have been completely re-implemented
* Now comes with Haddock 2, which supports all GHC extensions
* Parallel garbage collection
* Base provides extensible exceptions
* The GHC API is easier to use
* External core (output only) now works again
* Data Parallel Haskell (DPH) comes as part of GHC
The full release notes are here:
http://haskell.org/ghc/docs/6.10.1/html/users_guide/release-6-10-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
participants (10)
-
Brandon S. Allbery KF8NH
-
Christian Maeder
-
Gregory Wright
-
Ian Lynagh
-
Jason Dagit
-
Lennart Kolmodin
-
Magicloud
-
Manuel M T Chakravarty
-
Simon Marlow
-
Thorkil Naur