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

Simon Peyton-Jones simonpj
Tue Oct 1 08:10:29 UTC 2013

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.)



-----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


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


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<mailto: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

> Vertigo systems (optimized high-level functional graphics in 2D and 3D),

> generating screamingly fast GPU rendering code. I'd love to share it with

> the community, but I'm unable to use it even myself.


> Two questions:


> * Am I mistaken about the current status? I.e., is there a solution for

> Haskell GUI & graphics programming that satisfies the properties I'm looking

> for (cross-platform, easily buildable, GHCi-friendly, and

> OpenGL-compatible)?

> * Are there people willing and able to fix this situation? My own

> contributions would be to test and to share high-level composable and

> efficient GUI and graphics libraries on top of a working foundation.


> Looking forward to replies. Thanks,


> -- Conal


> _______________________________________________

> Haskell-Cafe mailing list

> Haskell-Cafe at haskell.org<mailto:Haskell-Cafe at haskell.org>

> http://www.haskell.org/mailman/listinfo/haskell-cafe




Paul Liu


Haskell-Cafe mailing list

Haskell-Cafe at haskell.org<mailto:Haskell-Cafe at haskell.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131001/265961c5/attachment-0001.html>

More information about the ghc-devs mailing list