Mac OS X Strike Force
From HaskellWiki
(Create Strike Force) |
(→Take care of the Haskell Platform installer: 2011.4.0.0 is no longer the latest version of the Haskell Platform) |
||
| (26 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein. | The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein. | ||
| + | == Goals == | ||
| - | == | + | === Take care of the Haskell Platform installer === |
| - | + | The Haskell Platform installer is now maintained by [[User:MtnViewMark|Mark Lentczner]]. The build is now a Makefile that is part of the Haskell Platform [http://code.haskell.org/haskell-platform/ source tree]. | |
| + | |||
| + | * what are the most pressing things on the todo list? | ||
| + | ** script a reliable uninstaller for prior versions | ||
| + | ** work out how to suport: { 10.5 | 10.6 | 10.7 } × { 32bit | 64bit } × { Xcode 3.2 | Xcode 4.1 } with as few versions as possible. | ||
| + | |||
| + | This is done in version 2011.4.0.0 of the [http://hackage.haskell.org/platform/mac.html Haskell Platform] | ||
| + | |||
| + | === Make GUI-bindings easy to install === | ||
| + | |||
| + | Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install. | ||
| + | What's the state of HQK and qtHaskell? | ||
| + | |||
| + | * We should provide at least one easy way to install one set of GUI bindings | ||
| + | |||
| + | ==== wxHaskell ==== | ||
| + | |||
| + | wxHaskell got a lot easier to install in April 2012, with the 0.90 | ||
| + | release. See [[WxHaskell/Mac]] for details. Should be just a matter | ||
| + | of a little homebrew and cabal install wx. | ||
| + | |||
| + | Note that using MacPorts is problematic because of iconv-related | ||
| + | issues that various people have reported on the mailing list. | ||
| + | I doubt qtHaskell is immune from this. | ||
| + | |||
| + | IMHO, it could be worthwhile to point people to a standard wxWidgets | ||
| + | pkg. | ||
| + | |||
| + | ==== qtHaskell ==== | ||
| + | |||
| + | qtHaskell with i386 ghc can be compiled with the following steps: | ||
| + | |||
| + | * Install Qt via MacPorts with the universal option set. | ||
| + | * Install Perl 5.12 via MacPorts. | ||
| + | * qmake will default to building x86_64 binaries, which does not work with 32-bit ghc. Modify ''/opt/local/libexec/qt4-mac/mkspecs/macx-g++/qmake.conf'', adding the following lines: | ||
| + | <pre> | ||
| + | QMAKE_CXXFLAGS = -arch i386 | ||
| + | QMAKE_CFLAGS = -arch i386 | ||
| + | QMAKE_LFLAGS = -arch i386 | ||
| + | </pre> | ||
| + | * You could also create your own spec (''macx-g++-i386''?), and modify ''build.pl'' in the qtHaskell top-level directory to use this spec. | ||
| + | * Build qtHaskell by executing the ''build'' script in the top-level directory. | ||
| + | |||
| + | === Make GHC 64 bit === | ||
| + | |||
| + | Mac OS X GHC Trac tickets: | ||
| + | * [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people | ||
| + | * [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope | ||
| + | |||
| + | === Reduce the number of GHC tickets === | ||
| + | |||
| + | * All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets] | ||
| + | |||
| + | == Information == | ||
| + | |||
| + | === Wiki === | ||
* [[Mac OS X]] | * [[Mac OS X]] | ||
| Line 10: | Line 66: | ||
* [[Using Haskell in an Xcode Cocoa project]] | * [[Using Haskell in an Xcode Cocoa project]] | ||
| - | == Installing Haskell == | + | === Installing Haskell === |
| - | === How Haskell is on OS X today === | + | ==== How Haskell is on OS X today ==== |
The simplest methods are currently: | The simplest methods are currently: | ||
| Line 22: | Line 78: | ||
* Homebrew (symlinked into /usr/local ?) | * Homebrew (symlinked into /usr/local ?) | ||
| - | === Manually compiled == | + | ==== Manually compiled ==== |
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate. | [[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate. | ||
| - | === Difficult libraries on OS X === | + | ==== Dynamic Linking ==== |
| + | |||
| + | working in GHC HEAD, not in any released version. | ||
| + | |||
| + | |||
| + | ==== Difficult libraries on OS X ==== | ||
Libraries needed for ghc | Libraries needed for ghc | ||
| Line 36: | Line 97: | ||
Libraries needed for other packages? gtk? | Libraries needed for other packages? gtk? | ||
| - | == OS X code integration == | + | === OS X code integration === |
Write Haskell in XCode? | Write Haskell in XCode? | ||
| Line 44: | Line 105: | ||
FFI for Objective C from Haskell? | FFI for Objective C from Haskell? | ||
| - | = | + | === Improvements? === |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | == Improvements? == | + | |
A cabal2pkg that maintains proper dependency tracking? | A cabal2pkg that maintains proper dependency tracking? | ||
Discussion forum for all this? | Discussion forum for all this? | ||
| + | |||
| + | You can discuss it on Haskellers at [http://www.haskellers.com/teams/2/] | ||
| + | |||
| + | |||
| + | [[Category:wxHaskell]] | ||
Current revision
The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' post on reddit and the comments therein.
Contents |
1 Goals
1.1 Take care of the Haskell Platform installer
The Haskell Platform installer is now maintained by Mark Lentczner. The build is now a Makefile that is part of the Haskell Platform source tree.
- what are the most pressing things on the todo list?
- script a reliable uninstaller for prior versions
- work out how to suport: { 10.5 | 10.6 | 10.7 } × { 32bit | 64bit } × { Xcode 3.2 | Xcode 4.1 } with as few versions as possible.
This is done in version 2011.4.0.0 of the Haskell Platform
1.2 Make GUI-bindings easy to install
Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install. What's the state of HQK and qtHaskell?
- We should provide at least one easy way to install one set of GUI bindings
1.2.1 wxHaskell
wxHaskell got a lot easier to install in April 2012, with the 0.90 release. See WxHaskell/Mac for details. Should be just a matter of a little homebrew and cabal install wx.
Note that using MacPorts is problematic because of iconv-related issues that various people have reported on the mailing list. I doubt qtHaskell is immune from this.
IMHO, it could be worthwhile to point people to a standard wxWidgets pkg.
1.2.2 qtHaskell
qtHaskell with i386 ghc can be compiled with the following steps:
- Install Qt via MacPorts with the universal option set.
- Install Perl 5.12 via MacPorts.
- qmake will default to building x86_64 binaries, which does not work with 32-bit ghc. Modify /opt/local/libexec/qt4-mac/mkspecs/macx-g++/qmake.conf, adding the following lines:
QMAKE_CXXFLAGS = -arch i386 QMAKE_CFLAGS = -arch i386 QMAKE_LFLAGS = -arch i386
- You could also create your own spec (macx-g++-i386?), and modify build.pl in the qtHaskell top-level directory to use this spec.
- Build qtHaskell by executing the build script in the top-level directory.
1.3 Make GHC 64 bit
Mac OS X GHC Trac tickets:
1.4 Reduce the number of GHC tickets
2 Information
2.1 Wiki
2.2 Installing Haskell
2.2.1 How Haskell is on OS X today
The simplest methods are currently:
- Binary GHC framework (/Library/Framework)
- Binary Haskell platform framework (/Library/Framework)
- MacPorts (/opt/local)
- Fink (/sw)
- Homebrew (symlinked into /usr/local ?)
2.2.2 Manually compiled
ChrisKuklewicz 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.
2.2.3 Dynamic Linking
working in GHC HEAD, not in any released version.
2.2.4 Difficult libraries on OS X
Libraries needed for ghc
- iconv (older version in /usr is incompatible with new version from MacPorts)
- readline (faked in /usr, provided by framework or MacPorts)
- gmp (framework or MacPorts)
Libraries needed for other packages? gtk?
2.3 OS X code integration
Write Haskell in XCode?
Write ObjectiveC against GHC.Framework?
FFI for Objective C from Haskell?
2.4 Improvements?
A cabal2pkg that maintains proper dependency tracking?
Discussion forum for all this?
You can discuss it on Haskellers at [1]
