Personal tools

Mac OS X Strike Force

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (OS X Trac Tickcets)
(Take care of the Haskell Platform installer: 2011.4.0.0 is no longer the latest version of the Haskell Platform)
 
(23 intermediate revisions by 9 users 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 ==
   
== Wiki ==
+
=== Take care of the Haskell Platform installer ===
   
You are reading the wiki. Other pages on the wiki are
+
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 11:
 
* [[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 23:
 
* 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 37:
 
Libraries needed for other packages? gtk?
 
Libraries needed for other packages? gtk?
   
== OS X Trac Tickcets ==
+
=== OS X code integration ===
 
[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 Operating System == Mac OS X] tickets on Trac
 
 
== OS X code integration ==
 
   
 
Write Haskell in XCode?
 
Write Haskell in XCode?
Line 44: Line 45:
 
FFI for Objective C from Haskell?
 
FFI for Objective C from Haskell?
   
== GHC is not 64 bit ==
+
=== Improvements? ===
 
* [[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
 
 
== 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]]

Latest revision as of 12:25, 26 September 2012

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

[edit] 1 Goals

[edit] 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

[edit] 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

[edit] 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.

[edit] 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.

[edit] 1.3 Make GHC 64 bit

Mac OS X GHC Trac tickets:

  • [2965] is the main ticket, with lots of CC: people
  • [4163] gives some cross-compiling hope

[edit] 1.4 Reduce the number of GHC tickets

[edit] 2 Information

[edit] 2.1 Wiki

[edit] 2.2 Installing Haskell

[edit] 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 ?)

[edit] 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.

[edit] 2.2.3 Dynamic Linking

working in GHC HEAD, not in any released version.


[edit] 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?

[edit] 2.3 OS X code integration

Write Haskell in XCode?

Write ObjectiveC against GHC.Framework?

FFI for Objective C from Haskell?

[edit] 2.4 Improvements?

A cabal2pkg that maintains proper dependency tracking?

Discussion forum for all this?

You can discuss it on Haskellers at [1]