From: José R. M. <j.r...@gm...> - 2012-02-08 10:58:44
|
Hello. It would be nice to have a text introducing how gtk2hs is structured. It would give newcomers a starting for contributing to the project. Would anyone write it? Romildo |
From: <wag...@se...> - 2012-02-12 01:55:55
|
Quoting José Romildo Malaquias <j.r...@gm...>: > It would be nice to have a text introducing how gtk2hs is structured. It > would give newcomers a starting for contributing to the project. Hm. Not sure I have the time to outline the whole project -- gtk2hs is large, and there's plenty of parts I don't even know about -- but if you have specific questions we can certainly dig a bit together to see how some particular thing happens. Generally, the Haskell bindings are structured quite similarly to the gtk+ libraries themselves. There is a separate package for each library (as you'll see by just looking at the directory structure of the repository). Perhaps the most perplexing packages to me are the low-level ones, that deal with interfacing Gtk's object system with GHC's garbage collector and Gtk's type hierarchy with Haskell's somewhat different typeclass mechanism. A lot of the code to do that is actually hidden in the "tools" directory in the repository, so if that's the kind of thing you want to know about, I strongly recommend starting there, specifically the *gen subdirectories. Other than that, the only really new thing to learn (once you know Haskell ;-) is about c2hs. There's some good documentation online for c2hs that outlines what it does, though there are a few details different from gtk2hs' fork of the tool. Definitely keep us in the loop about what you're hacking on! =) ~d |
From: Axel S. <Axe...@in...> - 2012-02-12 14:02:16
|
On 12.02.2012, at 02:55, wag...@se... wrote: > Quoting José Romildo Malaquias <j.r...@gm...>: > >> It would be nice to have a text introducing how gtk2hs is structured. It >> would give newcomers a starting for contributing to the project. > > Hm. Not sure I have the time to outline the whole project -- gtk2hs is > large, and there's plenty of parts I don't even know about -- but if > you have specific questions we can certainly dig a bit together to see > how some particular thing happens. > > Generally, the Haskell bindings are structured quite similarly to the > gtk+ libraries themselves. There is a separate package for each > library (as you'll see by just looking at the directory structure of > the repository). Perhaps the most perplexing packages to me are the > low-level ones, that deal with interfacing Gtk's object system with > GHC's garbage collector and Gtk's type hierarchy with Haskell's > somewhat different typeclass mechanism. A lot of the code to do that > is actually hidden in the "tools" directory in the repository, so if > that's the kind of thing you want to know about, I strongly recommend > starting there, specifically the *gen subdirectories. Other than that, > the only really new thing to learn (once you know Haskell ;-) is about > c2hs. There's some good documentation online for c2hs that outlines > what it does, though there are a few details different from gtk2hs' > fork of the tool. > > Definitely keep us in the loop about what you're hacking on! =) For end users, there's a tutorial to Gtk2Hs http://code.haskell.org/gtk2hs/docs/tutorial/Tutorial_Port/ and somebody has started a wiki on haskell.org: http://www.haskell.org/haskellwiki/GTK Both are incomplete, could be merged and should be extended. Cheers, Axel |