[Haskell-cafe] Poll & plea: State of GUI & graphics libraries in Haskell

Carter Schonwald carter.schonwald
Tue Oct 1 19:09:07 UTC 2013


thats the linker bug.

the glfw stuff has been tested on ghc HEAD / 7.7 by folks on #haskell-game
in recent memory. GHCI + foreign libs should work fine now (modulo thread
local storage related thing).

the historical element doesn't matter any more.

To the best of my knowledge, all such issues should be gone. Anyone who
cares about making sure GHCI+ gui libs play nice, PLEASE test with HEAD.

the better this issue is properly tested (which i believe it has been), the
more we can actually prevent it from happening. This requires people to
test with HEAD GHCi now, rather than doing archaeology.

anyone who cares, please play with GHCI in HEAD. If your lib doesn't work
with ghci, please report a bug. It would be a new bug because it wont' be
the previous reasons it hasnt' worked.


tl;dr to the best of my knowledge this issue is resolved in HEAD. Test
HEAD. Help us make sure it stays resolved by testing HEAD.

thanks
-Carter




On Tue, Oct 1, 2013 at 1:20 PM, Paul Liu <ninegua at gmail.com> wrote:

> I reported a problem with statically linked GLFW library on Mac OS X
> Lion in this thread:
>
> http://www.haskell.org/pipermail/haskell-cafe/2012-January/097355.html
>
> I do not know why this is broken on Mac OS X Lion, but not on Linux or
> Windows. There was an EnableGUI hack for GHC 7.2 (and previous
> versions) and OS X version before Lion, but it no longer works. So I'm
> not sure if it is OS X Lion, or GLFW, or GHC, or a combination of them
> that caused this problem.
>
> Regards,
> Paul Liu
>
> On Tue, Oct 1, 2013 at 7:04 AM, Carter Schonwald
> <carter.schonwald at gmail.com> wrote:
> > Hey simon, the two issues that have recurrently bit ghci interaction with
> > foreign GUI libs are
> > 1) the ghci linker.  This is fixed in head by now having ghci use the
> system
> > linker
> > 2) some GUI libs require thread local state, and ghci has a flag for that
> > 3)  I'm not aware of anyone reporting newly broken libs wrt GUI bindings
> > when 7.6 rolled out.  The only fix that's relevant to 7.8 is the dylinker
> > bit, but that would have been a problem historically too.
> >
> > I believe a number of folks in #haskell-game have recently tested point
> one.
> > (Though I should ask to double check)
> >
> > At the very least, I'm not aware of hearing of such a 7.6 specific ghci
> > breakage before.
> >
> >
> > On Tuesday, October 1, 2013, Simon Peyton-Jones wrote:
> >>
> >> Dear GHC devs
> >>
> >>
> >>
> >> See below (in red).  I do not know the details of this, but it sounds
> like
> >> a pretty serious problem, and it used to work.  Is whatever-it-is
> confirmed
> >> fixed in 7.8?  Do we have a test that?ll trip if it breaks again?  (I?m
> >> guessing that the latter might be hard.)
> >>
> >>
> >>
> >> Thanks
> >>
> >>
> >>
> >> Simon
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Haskell-Cafe [mailto:haskell-cafe-bounces at haskell.org] On Behalf
> Of
> >> Paul Liu
> >> Sent: 30 September 2013 07:18
> >> To: Conal Elliott
> >> Cc: Haskell Cafe
> >> Subject: Re: [Haskell-cafe] Poll & plea: State of GUI & graphics
> libraries
> >> in Haskell
> >>
> >>
> >>
> >> Hi Conal,
> >>
> >>
> >>
> >> I wasn't able to make it to last Saturday's FARM track, but I think
> >>
> >> there was a good chance that Paul would have demonstrated his Euterpea
> >>
> >> music library, which includes a GUI interface (called MUI) written on
> >>
> >> top of GLFW. I wrote its initial implementation (around 2009?) with a
> >>
> >> monadic interface that let you wire together UI components with
> >>
> >> signals (I believe Dan later wrote an arrow interface, but I could be
> >>
> >> wrong). It was actually inspired by the ideas behind your Phooey UI
> >>
> >> library. It should be very easy to extract this part out as a
> >>
> >> standalone package if there is enough interest.
> >>
> >>
> >>
> >> The only issue with it (and all other UI libraries) is that it doesn't
> >>
> >> play nicely in GHCi. It used to work pretty well with GHC 7.2 and 7.4
> >>
> >> on almost all platforms (Mac needs an extra hack), but GHC 7.6 broke
> >>
> >> Mac (and perhaps Windows too). GHC 7.8 supposedly should fix this
> >>
> >> problem.
> >>
> >>
> >>
> >> BTW, as also the author of the GLFW library on HackageDB, I've done
> >>
> >> barely minimal to keep this Haskell binding afloat. I'm actually
> >>
> >> leaning towards GLFW-b library, which is better maintained, and
> >>
> >> provides similar binding for GLFW C library but with a saner interface
> >>
> >> (no dependency on the OpenGL library, for example). If you don't need
> >>
> >> the two extra things that GLFW does (choice of either dynamic or
> >>
> >> static linking to GLFW C, and an embedded bitmap font), I suggest you
> >>
> >> try out GLFW-b if you are only looking for a think graphics layer with
> >>
> >> input+window+OpenGL.
> >>
> >>
> >>
> >> The only thing keeping GLFW-b from becoming a good foundation for a
> >>
> >> pure Haskell UI lib is IMHO the lack of a light-weight,
> >>
> >> cross-platform, and full-featured font rendering solution. I believe
> >>
> >> many other libraries (including Diagram) are having the same problem.
> >>
> >>
> >>
> >>
> >>
> >> On Thu, Sep 26, 2013 at 8:32 PM, Conal Elliott <conal at conal.net> wrote:
> >>
> >> > I'm polling to see whether there are will and expertise to reboot
> >> > graphics
> >>
> >> > and GUIs work in Haskell. I miss working on functional graphics and
> GUIs
> >> > in
> >>
> >> > Haskell, as I've been blocked for several years (eight?) due to the
> >> > absence
> >>
> >> > of low-level foundation libraries having the following properties:
> >>
> >> >
> >>
> >> > * cross-platform,
> >>
> >> > * easily buildable,
> >>
> >> > * GHCi-friendly, and
> >>
> >> > * OpenGL-compatible.
> >>
> >> >
> >>
> >> > The last several times I tried Gtk2hs, I was unable to compile it on
> my
> >> > Mac.
> >>
> >> > Years ago when I was able to compile, the GUIs looked and interacted
> >> > like a
> >>
> >> > Linux app, which made them awkward and upleasant to use. wxHaskell
> >> > (whose
> >>
> >> > API and visual appearance I prefered) has for years been incompatible
> >> > with
> >>
> >> > GHCi, in that the second time I open a top-level window, the host
> >> > process
> >>
> >> > (GHCi) dies abruptly. Since my GUI & graphics programs are often
> >> > one-liners,
> >>
> >> > and I tend to experiment a lot, using a full compilation greatly
> thwarts
> >> > my
> >>
> >> > flow. For many years, I've thought that the situation would eventually
> >>
> >> > improve, since I'm far from the only person who wants GUIs or graphics
> >> > from
> >>
> >> > Haskell.
> >>
> >> >
> >>
> >> > About three years ago, I built a modern replacement of my old Pan and
> >>
> >> > V
> >
> >
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://www.haskell.org/mailman/listinfo/ghc-devs
> >
>
>
>
> --
> Regards,
> Paul Liu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131001/09411bc9/attachment-0001.html>



More information about the ghc-devs mailing list