<div dir="ltr">Hi guys,<div><br></div><div style>I have been willing to have a nice GUI DSEL with good aesthetics for a while. I think the hardest part wouldn't be the API, but really what library we use underneath so that it's cross-platform and easy to install for everyone. But I would love for something like that to happen and am very interested in this.</div>
<div style><br></div><div style>Note that people from #haskell-game are experimenting a bit (I think it's mostly Jake McArthur's work for now), see the brainstorming (ideas) and graphics (partial impl) repositories at [1].</div>
<div style><br></div><div style> [1]: <a href="https://github.com/haskell-game">https://github.com/haskell-game</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 3, 2013 at 12:28 AM, Conal Elliott <span dir="ltr"><<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Interesting. How are the aesthetics? Can you point me to screen shots?<br></div><div><br>It'd be a lot of work, but one cool project would be to create *beautiful* GUI elements using OpenGL programmable shaders. Given the speed of GPUs, we could afford to put a lot into visual details.<br>
<br>A complementary project is designing a semantically precise and elegant ("denotative"/"genuinely functional" to use Peter Landin's terms) GUI DSEL that would be simpler and more powerful than the conventional OO-inspired libraries we have so much trouble getting to work in Haskell. I've thought about this sort of thing on and off for a very long time and would be happy to be involved if others are interested also.<br>
<br></div>Together, these two efforts would yield an approach to GUIs that is beautiful inside and out.<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888">-- Conal</font></span><div>
<div class="h5"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 2, 2013 at 1:21 PM, Paul Liu <span dir="ltr"><<a href="mailto:ninegua@gmail.com" target="_blank">ninegua@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">No. GLFW does not give you any UI elements, just basic windowing and<br>
input handling.<br>
<br>
Euterpea has a UI layer on top of GLFW that provides text boxes and<br>
sliders, etc, entirely written in Haskell.<br>
<div><div><br>
On Wed, Oct 2, 2013 at 8:40 AM, Conal Elliott <<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>> wrote:<br>
> Hi Paul. Is there a way to use GLFW with GUI elements other than OpenGL<br>
> display windows, e.g., text boxes and sliders? -- Conal<br>
><br>
><br>
> On Tue, Oct 1, 2013 at 11:23 PM, Paul Liu <<a href="mailto:ninegua@gmail.com" target="_blank">ninegua@gmail.com</a>> wrote:<br>
>><br>
>> Thanks. I've just built GHC HEAD on Mac OS X Lion, and tested by<br>
>> installing libraries with --enable-shared and loading a GLFW program<br>
>> into GHCi. Using ghci -fno-ghci-sandbox, everything works great<br>
>> including closing and restarting GL window multiple times. Can't wait<br>
>> for the official release of GHC 7.8!<br>
>><br>
>> On Tue, Oct 1, 2013 at 12:09 PM, Carter Schonwald<br>
>> <<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>> wrote:<br>
>> > thats the linker bug.<br>
>> ><br>
>> > the glfw stuff has been tested on ghc HEAD / 7.7 by folks on<br>
>> > #haskell-game<br>
>> > in recent memory. GHCI + foreign libs should work fine now (modulo<br>
>> > thread<br>
>> > local storage related thing).<br>
>> ><br>
>> > the historical element doesn't matter any more.<br>
>> ><br>
>> > To the best of my knowledge, all such issues should be gone. Anyone who<br>
>> > cares about making sure GHCI+ gui libs play nice, PLEASE test with HEAD.<br>
>> ><br>
>> > the better this issue is properly tested (which i believe it has been),<br>
>> > the<br>
>> > more we can actually prevent it from happening. This requires people to<br>
>> > test<br>
>> > with HEAD GHCi now, rather than doing archaeology.<br>
>> ><br>
>> > anyone who cares, please play with GHCI in HEAD. If your lib doesn't<br>
>> > work<br>
>> > with ghci, please report a bug. It would be a new bug because it wont'<br>
>> > be<br>
>> > the previous reasons it hasnt' worked.<br>
>> ><br>
>> ><br>
>> > tl;dr to the best of my knowledge this issue is resolved in HEAD. Test<br>
>> > HEAD.<br>
>> > Help us make sure it stays resolved by testing HEAD.<br>
>> ><br>
>> > thanks<br>
>> > -Carter<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > On Tue, Oct 1, 2013 at 1:20 PM, Paul Liu <<a href="mailto:ninegua@gmail.com" target="_blank">ninegua@gmail.com</a>> wrote:<br>
>> >><br>
>> >> I reported a problem with statically linked GLFW library on Mac OS X<br>
>> >> Lion in this thread:<br>
>> >><br>
>> >> <a href="http://www.haskell.org/pipermail/haskell-cafe/2012-January/097355.html" target="_blank">http://www.haskell.org/pipermail/haskell-cafe/2012-January/097355.html</a><br>
>> >><br>
>> >> I do not know why this is broken on Mac OS X Lion, but not on Linux or<br>
>> >> Windows. There was an EnableGUI hack for GHC 7.2 (and previous<br>
>> >> versions) and OS X version before Lion, but it no longer works. So I'm<br>
>> >> not sure if it is OS X Lion, or GLFW, or GHC, or a combination of them<br>
>> >> that caused this problem.<br>
>> >><br>
>> >> Regards,<br>
>> >> Paul Liu<br>
>> >><br>
>> >> On Tue, Oct 1, 2013 at 7:04 AM, Carter Schonwald<br>
>> >> <<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>> wrote:<br>
>> >> > Hey simon, the two issues that have recurrently bit ghci interaction<br>
>> >> > with<br>
>> >> > foreign GUI libs are<br>
>> >> > 1) the ghci linker. This is fixed in head by now having ghci use the<br>
>> >> > system<br>
>> >> > linker<br>
>> >> > 2) some GUI libs require thread local state, and ghci has a flag for<br>
>> >> > that<br>
>> >> > 3) I'm not aware of anyone reporting newly broken libs wrt GUI<br>
>> >> > bindings<br>
>> >> > when 7.6 rolled out. The only fix that's relevant to 7.8 is the<br>
>> >> > dylinker<br>
>> >> > bit, but that would have been a problem historically too.<br>
>> >> ><br>
>> >> > I believe a number of folks in #haskell-game have recently tested<br>
>> >> > point<br>
>> >> > one.<br>
>> >> > (Though I should ask to double check)<br>
>> >> ><br>
>> >> > At the very least, I'm not aware of hearing of such a 7.6 specific<br>
>> >> > ghci<br>
>> >> > breakage before.<br>
>> >> ><br>
>> >> ><br>
>> >> > On Tuesday, October 1, 2013, Simon Peyton-Jones wrote:<br>
>> >> >><br>
>> >> >> Dear GHC devs<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> See below (in red). I do not know the details of this, but it<br>
>> >> >> sounds<br>
>> >> >> like<br>
>> >> >> a pretty serious problem, and it used to work. Is whatever-it-is<br>
>> >> >> confirmed<br>
>> >> >> fixed in 7.8? Do we have a test that’ll trip if it breaks again?<br>
>> >> >> (I’m<br>
>> >> >> guessing that the latter might be hard.)<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> Thanks<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> Simon<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> -----Original Message-----<br>
>> >> >> From: Haskell-Cafe [mailto:<a href="mailto:haskell-cafe-bounces@haskell.org" target="_blank">haskell-cafe-bounces@haskell.org</a>] On<br>
>> >> >> Behalf<br>
>> >> >> Of<br>
>> >> >> Paul Liu<br>
>> >> >> Sent: 30 September 2013 07:18<br>
>> >> >> To: Conal Elliott<br>
>> >> >> Cc: Haskell Cafe<br>
>> >> >> Subject: Re: [Haskell-cafe] Poll & plea: State of GUI & graphics<br>
>> >> >> libraries<br>
>> >> >> in Haskell<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> Hi Conal,<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> I wasn't able to make it to last Saturday's FARM track, but I think<br>
>> >> >><br>
>> >> >> there was a good chance that Paul would have demonstrated his<br>
>> >> >> Euterpea<br>
>> >> >><br>
>> >> >> music library, which includes a GUI interface (called MUI) written<br>
>> >> >> on<br>
>> >> >><br>
>> >> >> top of GLFW. I wrote its initial implementation (around 2009?) with<br>
>> >> >> a<br>
>> >> >><br>
>> >> >> monadic interface that let you wire together UI components with<br>
>> >> >><br>
>> >> >> signals (I believe Dan later wrote an arrow interface, but I could<br>
>> >> >> be<br>
>> >> >><br>
>> >> >> wrong). It was actually inspired by the ideas behind your Phooey UI<br>
>> >> >><br>
>> >> >> library. It should be very easy to extract this part out as a<br>
>> >> >><br>
>> >> >> standalone package if there is enough interest.<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> The only issue with it (and all other UI libraries) is that it<br>
>> >> >> doesn't<br>
>> >> >><br>
>> >> >> play nicely in GHCi. It used to work pretty well with GHC 7.2 and<br>
>> >> >> 7.4<br>
>> >> >><br>
>> >> >> on almost all platforms (Mac needs an extra hack), but GHC 7.6 broke<br>
>> >> >><br>
>> >> >> Mac (and perhaps Windows too). GHC 7.8 supposedly should fix this<br>
>> >> >><br>
>> >> >> problem.<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> BTW, as also the author of the GLFW library on HackageDB, I've done<br>
>> >> >><br>
>> >> >> barely minimal to keep this Haskell binding afloat. I'm actually<br>
>> >> >><br>
>> >> >> leaning towards GLFW-b library, which is better maintained, and<br>
>> >> >><br>
>> >> >> provides similar binding for GLFW C library but with a saner<br>
>> >> >> interface<br>
>> >> >><br>
>> >> >> (no dependency on the OpenGL library, for example). If you don't<br>
>> >> >> need<br>
>> >> >><br>
>> >> >> the two extra things that GLFW does (choice of either dynamic or<br>
>> >> >><br>
>> >> >> static linking to GLFW C, and an embedded bitmap font), I suggest<br>
>> >> >> you<br>
>> >> >><br>
>> >> >> try out GLFW-b if you are only looking for a think graphics layer<br>
>> >> >> with<br>
>> >> >><br>
>> >> >> input+window+OpenGL.<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> The only thing keeping GLFW-b from becoming a good foundation for a<br>
>> >> >><br>
>> >> >> pure Haskell UI lib is IMHO the lack of a light-weight,<br>
>> >> >><br>
>> >> >> cross-platform, and full-featured font rendering solution. I believe<br>
>> >> >><br>
>> >> >> many other libraries (including Diagram) are having the same<br>
>> >> >> problem.<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> On Thu, Sep 26, 2013 at 8:32 PM, Conal Elliott <<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>><br>
>> >> >> wrote:<br>
>> >> >><br>
>> >> >> > I'm polling to see whether there are will and expertise to reboot<br>
>> >> >> > graphics<br>
>> >> >><br>
>> >> >> > and GUIs work in Haskell. I miss working on functional graphics<br>
>> >> >> > and<br>
>> >> >> > GUIs<br>
>> >> >> > in<br>
>> >> >><br>
>> >> >> > Haskell, as I've been blocked for several years (eight?) due to<br>
>> >> >> > the<br>
>> >> >> > absence<br>
>> >> >><br>
>> >> >> > of low-level foundation libraries having the following properties:<br>
>> >> >><br>
>> >> >> ><br>
>> >> >><br>
>> >> >> > * cross-platform,<br>
>> >> >><br>
>> >> >> > * easily buildable,<br>
>> >> >><br>
>> >> >> > * GHCi-friendly, and<br>
>> >> >><br>
>> >> >> > * OpenGL-compatible.<br>
>> >> >><br>
>> >> >> ><br>
>> >> >><br>
>> >> >> > The last several times I tried Gtk2hs, I was unable to compile it<br>
>> >> >> > on<br>
>> >> >> > my<br>
>> >> >> > Mac.<br>
>> >> >><br>
>> >> >> > Years ago when I was able to compile, the GUIs looked and<br>
>> >> >> > interacted<br>
>> >> >> > like a<br>
>> >> >><br>
>> >> >> > Linux app, which made them awkward and upleasant to use. wxHaskell<br>
>> >> >> > (whose<br>
>> >> >><br>
>> >> >> > API and visual appearance I prefered) has for years been<br>
>> >> >> > incompatible<br>
>> >> >> > with<br>
>> >> >><br>
>> >> >> > GHCi, in that the second time I open a top-level window, the host<br>
>> >> >> > process<br>
>> >> >><br>
>> >> >> > (GHCi) dies abruptly. Since my GUI & graphics programs are often<br>
>> >> >> > one-liners,<br>
>> >> >><br>
>> >> >> > and I tend to experiment a lot, using a full compilation greatly<br>
>> >> >> > thwarts<br>
>> >> >> > my<br>
>> >> >><br>
>> >> >> > flow. For many years, I've thought that the situation would<br>
>> >> >> > eventually<br>
>> >> >><br>
>> >> >> > improve, since I'm far from the only person who wants GUIs or<br>
>> >> >> > graphics<br>
>> >> >> > from<br>
>> >> >><br>
>> >> >> > Haskell.<br>
>> >> >><br>
>> >> >> ><br>
>> >> >><br>
>> >> >> > About three years ago, I built a modern replacement of my old Pan<br>
>> >> >> > and<br>
>> >> >><br>
>> >> >> > V<br>
>> >> ><br>
>> >> ><br>
>> >> > _______________________________________________<br>
>> >> > ghc-devs mailing list<br>
>> >> > <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>> >> > <a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
>> >> ><br>
>> >><br>
>> >><br>
>> >><br>
>> >> --<br>
>> >> Regards,<br>
>> >> Paul Liu<br>
>> ><br>
>> ><br>
>><br>
>><br>
>><br>
>> --<br>
>> Regards,<br>
>> Paul Liu<br>
>> _______________________________________________<br>
>> ghc-devs mailing list<br>
>> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>> <a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
><br>
><br>
<br>
<br>
<br>
</div></div><span><font color="#888888">--<br>
Regards,<br>
Paul Liu<br>
</font></span></blockquote></div><br></div></div></div></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Alp Mestanogullari
</div>