[Haskell-cafe] Ease of Haskell development on OS X?

Don Stewart dons at galois.com
Fri Mar 20 16:06:54 EDT 2009


Good to hear you're shipping graphical Haskell apps, Jefferson. Well done.

We do have tools for packaging for various distros:

    * Mac OSX:
    http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mkbndl

    * Windows
    http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bamse

    * Linux
    http://hackage.haskell.org/packages/archive/pkg-list.html#cat:distribution
        * cabal-rpm
        * cabal2arch
        * cabalmdvrpm
        * hackport
        * hslackbuilder

I'm not sure that anyone's attempted to write a tutorial on taking an
arbitrary cabalized application, and generating shippable installers
for the major systems, but we're close.

bamse is used by Galois, afaik, for some of our windows applications.

-- Don
    

jefferson.r.heard:
> As this continues to build, I guess the issue for me, and I'm willing
> to help with it, is trying to figure out how to redistribute programs
> written with gtk2hs.  on Windows, people can just install the gtk2hs
> libraries via the installer -- although this does bork a little
> because it assumes you have a haskell compiler on the machine.
> Ignoring the errors, however, works.  I don't see a similar situation
> on Mac OS.
> 
> If I wanted to package an application, which I often do, because
> firefighters, police officers, and emergency managers (my research
> currently targets these people, and we're actually beginning to really
> deploy our apps) don't have the time nor inclination to compile
> programs on their machines, I can basically just hope they're running
> windows. It'd be nice if there was a binary "redistributable" on
> windows that doesn't generate errors because of no haskell compiler
> installed and a similar package on OS X that includes the X11 Gtk
> binaries and precompiled Gtk2Hs binaries.
> 
> I guess I just don't know yet how to package things for OS X or find
> everything I'd need to find to build a redistributable image in the
> first place.  I haven't yet drunk the coolade on the whole Mac
> development process, having sidestepped the normal process by being a
> Haskell developer.  I'm sure they have standard procedures for finding
> and packaging libraries.
> 
> -- Jeff
> 
> On Fri, Mar 20, 2009 at 3:06 PM, Ross Mellgren <rmm-haskell at z.odi.ac> wrote:
> > Ah, true. Sorry, my mistake -- I forgot that wasn't supported with the
> > framework version.
> >
> > -Ross
> >
> > On Mar 20, 2009, at 2:56 PM, Jeff Heard wrote:
> >
> >> That one doesn't work with OpenGL, however and won't in the forseeable
> >> future.    Incidentally, just now doing a ports install gtk2hs gives
> >> me the following error on my brand new MacBook:
> >>
> >> $ sudo port install gtk2hs
> >>
> >> ... stuff happens normally ... then:
> >>
> >> opt/local/bin/ghc +RTS -RTS -c tools/hierarchyGen/TypeGen.hs -o
> >> tools/hierarchyGen/TypeGen.o -O -itools/hierarchyGen -package-conf
> >> package.conf.inplace -hide-all-packages -package base
> >> package.conf.inplace: openBinaryFile: does not exist (No such file or
> >> directory)
> >> /opt/local/bin/ghc +RTS -RTS -c tools/callbackGen/HookGenerator.hs -o
> >> tools/callbackGen/HookGenerator.o -O -I. -itools/callbackGen
> >> -package-conf package.conf.inplace -hide-all-packages -package base
> >> package.conf.inplace: openBinaryFile: does not exist (No such file or
> >> directory)
> >> rm -rf glib/System/Glib.o glib/System/Glib_split/; mkdir -p
> >> glib/System/Glib_split
> >> /opt/local/bin/ghc +RTS -RTS -split-objs -c glib/System/Glib.hs -o
> >> glib/System/Glib.o -O -fffi -iglib -package-conf package.conf.inplace
> >> -hide-all-packages -ignore-package glib -package base -package-name
> >> glib-0.9.13 '-#include<glib-object.h>' -I/opt/local/include/glib-2.0
> >> -I/opt/local/lib/glib-2.0/include -I/opt/local/include
> >>
> >> on the commandline:
> >>   Warning: -fffi is deprecated: use -XForeignFunctionInterface or
> >> pragma {-# LANGUAGE ForeignFunctionInterface#-} instead
> >> package.conf.inplace: openBinaryFile: does not exist (No such file or
> >> directory)
> >> make[1]: *** [glib/System/Glib.o] Error 1
> >> make: *** [all] Error 2
> >>
> >>
> >> On Fri, Mar 20, 2009 at 2:27 PM, Ross Mellgren <rmm-haskell at z.odi.ac>
> >> wrote:
> >>>
> >>> While there is not a .dmg for Gtk2Hs, you can use a .dmg installed GHC
> >>> with
> >>> a .dmg installed Gtk, and then build gtk2hs straight on top of that,
> >>> without
> >>> having to deal with the dual-GHC macports mess..
> >>>
> >>> http://www.haskell.org/haskellwiki/Gtk2hs#Using_the_GTK.2B_OS_X_Framework
> >>>
> >>> -Ross
> >>>
> >>> On Mar 20, 2009, at 2:10 PM, Jeff Heard wrote:
> >>>
> >>>> cabal-install works for me.  The one thing that would be REALLY REALLY
> >>>> nice (and I'm cc-ing Duncan on this) is a .dmg for Gtk2Hs on Mac OS X.
> >>>> There exists a ports build for it, but it won't use the GHC that is
> >>>> installed via .dmg to build it - it insists instead on installing ghc
> >>>> again via ports, which I find both odd and undesirable.  It really
> >>>> comes down to the fact that gtk2hs is the only thing in the
> >>>> haskellverse that requires ports to get compiled in an intuitive way.
> >>>>
> >>>> On Fri, Mar 20, 2009 at 1:51 PM, Don Stewart <dons at galois.com> wrote:
> >>>>>
> >>>>> tom.davie:
> >>>>>>
> >>>>>> On 20 Mar 2009, at 18:46, Don Stewart wrote:
> >>>>>>
> >>>>>>> tom.davie:
> >>>>>>>>
> >>>>>>>> On 20 Mar 2009, at 18:08, Don Stewart wrote:
> >>>>>>>>
> >>>>>>>>> tom.davie:
> >>>>>>>>>>
> >>>>>>>>>> Other than chose the graphics card carefully, an iMac will do you
> >>>>>>>>>> very well.
> >>>>>>>>>>
> >>>>>>>>>> Hope that helps.
> >>>>>>>>>
> >>>>>>>>> This is very useful.
> >>>>>>>>>
> >>>>>>>>> Could the Mac users add information (and screenshots?) to the OSX
> >>>>>>>>> wiki
> >>>>>>>>> page,
> >>>>>>>>>
> >>>>>>>>>  http://haskell.org/haskellwiki/OSX
> >>>>>>>>
> >>>>>>>> I'm not really sure there's much to add.  It mostly just works™.
> >>>>>>>>
> >>>>>>>> Is there something that can be extracted from this discussion to add
> >>>>>>>> to
> >>>>>>>> it?
> >>>>>>>
> >>>>>>> Imagine you're new to Haskell, or the Mac. What do you need to know
> >>>>>>> to
> >>>>>>> get started developing new Haskell software? Is that information on
> >>>>>>> the
> >>>>>>> page?
> >>>>>>
> >>>>>> Thankfully, yes, all you need to know are either (a) go to haskell.org
> >>>>>> and download it, or (b) download macports, and port install ghc... Now
> >>>>>> you've got a Haskell environment like any other.
> >>>>>>
> >>>>>> I guess I could add a chunk of text about good editors, but I'm not
> >>>>>> sure
> >>>>>> if that's suitable, is it?
> >>>>>
> >>>>> Yes, anything that is relevant to the development experience on this
> >>>>> platform. Remember: it is more than just getting ghc. How do they get
> >>>>> hold of new libraries and apps? Is cabal-install available?
> >>>>> _______________________________________________
> >>>>> Haskell-Cafe mailing list
> >>>>> Haskell-Cafe at haskell.org
> >>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
> >>>>>
> >>>> _______________________________________________
> >>>> Haskell-Cafe mailing list
> >>>> Haskell-Cafe at haskell.org
> >>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
> >>>
> >>>
> >
> >
> 


More information about the Haskell-Cafe mailing list