On Fri, Mar 16, 2012 at 7:29 PM, Andrej Mitrovic <andrej.mitrov...@gmail.com > wrote:
> On 2/11/12, Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote: > > The D classes > > are not yet generated until I get wxc done, but wxc is 95% of the > > source of difficulty. Generating wxd should be easy after that. > > Sorry for the long wait. Turns out I was *extremely* wrong about this. > Generating the D side turned out to be a hell of a lot more work then > I initially thought (mostly due to C++ and D type incompatibilities > and scoping issues). > > I could have tried to generate SWIG interfaces, however I wasn't > impressed with wxPython which used thousands of lines of hand-crafted > interfaces. I'm also really not sure just how stable SWIG is for D, > especially for a large library like wxD. And then I saw that the new > wxPython codebase (the Phoenix project) uses over 11000 lines of > manually edited files that help the SIP generator do its work. I find > maintaining 11K lines of code to be a huge burden, so I stayed away > from that codebase alltogether. I want as much code to be > autogenerated as possible. Note that I didn't base my codgenerator on > wxPhp either, that codebase is very specific to php and so I've had to > go from scratch. I've initially used wxPhp just to figure out which > xml info I had to extract (I'm extracting a lot more info now compared > to wxPhp). > > I've recently had a major refactoring of the autogenerator to make it > easier to generate wxd. However I have to re-edit the wxc generator > due to this new refactor (it shouldn't be too much work). On the > upside of things the autogenerator can now generate around 85000 lines > of compileable D code (that's the actual wxD library). That's around > 300 files and 643 classes that compile. This is not linkable yet, > since wxc has to be recreated again. Another cool statistic is that > generating all of this takes about 4 seconds. (I can regenerate > individual files as well which only takes a split second). The xml > parser is a bit slow right now and takes some ~24 seconds to parse > around 1500 XML files. This can be optimized later. But it too can > re-parse single classes/headers which takes only a split second to do. > > So now I'm starting to work on wxc generation again. Once that's done, > I have to test linking between wxd and wxc. Then, I have to fix any > runtime segfaults I might run into (there's bound to be a few codegen > issues). Once I have a few wxD samples working on the major platforms, > I'll release an alpha of wxD (+ the codegenerator) and then we can > start testing the library more thoroughly before any official release. > > So, stay tight! Good times ahead. :) > As a heavy user of wxWidgets (in C++) I'm very excited about this. I'll definitely be one of your alpha testers when it comes out. Could the wxc generator be be used as a base for building bindings for other libraries? How about the XML D generator? Regards, Brad Anderson