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

Simon Marlow marlowsd
Wed Oct 2 19:42:54 UTC 2013


Great to hear that we're getting some payoff for the switch to dynamic 
linking in GHCi.  Thanks for testing!

Cheers
Simon

On 02/10/2013 07:23, Paul Liu wrote:
> Thanks. I've just built GHC HEAD on Mac OS X Lion, and tested by
> installing libraries with --enable-shared and loading a GLFW program
> into GHCi. Using ghci -fno-ghci-sandbox, everything works great
> including closing and restarting GL window multiple times. Can't wait
> for the  official release of GHC 7.8!
>
> On Tue, Oct 1, 2013 at 12:09 PM, Carter Schonwald
> <carter.schonwald at gmail.com> wrote:
>> 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
>>
>>
>
>
>




More information about the Haskell-Cafe mailing list