Difference between revisions of "Mac OS X"

From HaskellWiki
Jump to navigation Jump to search
(Added notes about putting .cabal/bin in your PATH)
Line 1: Line 1:
 
== GHC ==
 
== GHC ==
  +
  +
==== Important notes ====
  +
  +
To get the most out of your GHC environment, you should '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.
  +
  +
In you ~/.profile, add the line:
  +
  +
<code>export PATH="~/.cabal/bin:$PATH";</code>
  +
   
 
=== Mac OS X 10.5 (Leopard) ===
 
=== Mac OS X 10.5 (Leopard) ===

Revision as of 14:25, 9 January 2010

GHC

Important notes

To get the most out of your GHC environment, you should '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.

In you ~/.profile, add the line:

export PATH="~/.cabal/bin:$PATH";


Mac OS X 10.5 (Leopard)

To install GHC on Mac OS X 10.5 (Leopard), there are the following options:

Mac OS X 10.6 (Snow Leopard)

Mac OS X 10.6.x (Snow Leopard) works with GHC, after you apply a simple patch. The problem is that GHC generates 32bit code, but gcc on Snow Leopard defaults to 64bit code on machines with processors that support it. The patch simply tells GHC to tell gcc to work in 32bit:

  • Install the Haskell Platform
  • Open /Library/Frameworks/GHC.framework/Versions/Current/usr/bin/ghc-6.10.4 in a text editor
  • Insert -optc-m32 -opta-m32 -optl-m32 just before the last parameter.


The last line in that file is rather long, and should now end like -dynload wrapped -optc-m32 -opta-m32 -optl-m32 ${1+"$@"}


Don't be tempted to just put an edited local copy of the script in ~/bin/ghc, or edit all the various GHC files in /usr/bin. There is a maze of twisty symlinks that all eventually lead to the above script, and fixing just it is far simpler.

See also Haskell on Snow Leopard.

Many packages need hsc2hs. To make it work correctly you need similar hackery:

  • Open /usr/bin/hsc2hs
  • Insert --cflag="-m32" --lflag="-m32" before $tflag

Affected packages include things like zlib and mmap. Building them on Snow Leopard without the above trick leads to nasty bugs in packages depending on them (including darcs). For darcs built on an affected system symptoms include messages like "incompatible zlib version" and "memory allocation failed".

To uninstall ghc call:

sudo /Library/Frameworks/GHC.framework/Tools/Uninstaller

HUGS

Editors with Haskell support

Open Source

  • AquaMacs, a graphical Emacs version
  • Eclipse with the EclipseFP plugin
  • Emacs, is installed on every Mac
  • Leksah
  • MacVim, a graphical Vim version
  • Vim, is installed on every Mac
  • Yi (written in Haskell itself!), is available through cabal-install

Commercial

SubEthaEdit:

SubEthaEdit.png

TextMate:

TextMate.png

and Smultron:

Smultron.png

TextEdit is Mac's default text editor, a very basic editor that works fine for most uses, you must however be careful to put it into plain text mode using the Format menu.

Shipping Installable Haskell Applications

  • mkbndl builds installable Mac OSX applications from your Haskell project.

Links