www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - automated C++ binding generation.. Booost D, NO , Not us. SIMD is

reply bls <bizprac orange.fr> writes:
I have to say that I am very disappointed regarding the feedback I got 
from from my "wxWidgets good news" message.

Here is a historical chance to enhance D's spectrum in a way that has 
been pipe-dream just a few month ago and the community feedback is : ) 
we are busy with optimizing bla bla. well..

Gregor Richards (some will remember) has written BCDGen. BCDGen takes 
GCCXML output to generated D bindings from C++.
GCCXML is stalled, and far away from being perfect.


But now that even PHP guys are able to create full blown wxWidgets 
bindings based on Doxygen XML Output ..I have to say that is a pity that 
we are not able to do the same.

Whats.necessary to use D in order to create C++ bindings ?
1) Let's give up to create a reasonable XML library in D. Instead I 
would like to suggest that we wrap libxml2. (pure C) Finally this is 
like using the curl lib. And in order to prarse the XML output we have 
necessary XPATH support.

2) Let's re-use Gregor's BCDGen, based on a Doxygen's XML output,instead 
of GCCXML.

3) Let's create a visual tool (a minimalitic IDE), string templates, 
etc. which enable us to create fine tuned D code.

This is indeed NOT  a weekend job. But keep in mind that every C++ 
library  which is doxygen wise commented, is available for automated D2 
binding generation.
Isn't that more important than ...
My2cents
Bjoern
Jan 25 2012
next sibling parent reply Trass3r <un known.com> writes:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep
Jan 25 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ? Don't get me wrong Jacob. In case that dstep is working perfect for C++ hallelujah. (I am nevertheless convinced that porting from XML output has several advantages. Multi pass code generation. Bjoern --------------------------------------------------------------------- Slightly Off Topic DWT (Keinfarbton) f.i. was born on a idea of mine. Frank and I have discussed the idea of using Java2XML (ANTLR based) to generate D code )
Jan 25 2012
next sibling parent reply Zachary Lund <admin computerquip.com> writes:
On 01/25/2012 11:41 AM, bls wrote:
 On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ? Don't get me wrong Jacob. In case that dstep is working perfect for C++ hallelujah. (I am nevertheless convinced that porting from XML output has several advantages. Multi pass code generation. Bjoern --------------------------------------------------------------------- Slightly Off Topic DWT (Keinfarbton) f.i. was born on a idea of mine. Frank and I have discussed the idea of using Java2XML (ANTLR based) to generate D code )

I'm going to be rather straight forward on my opinion and, possibly, my ignorance. I think C (or any language with no symbol mangling) is an ideal language to create a library which is usable globally in almost any language. I think C++ libraries are an ideal language to create a library which is going to be used only within the C++ community because of it's ill symbol mangling system. There is no "right" way to work with C++ in D and although there are ways to interface with C++, I do not think that is the ideal situation. That being said, libraries like wxWidgets are very large and have been acquired over several years of hardwork by a very large group. I do not think that a GUI toolkit library should have to bother with networking, sound, and so on. Also given the "standard" library D has, I think the GUI library D can provide should use Phobos extensively rather than its own mechanisms. I think the ideal situation is to have a native D library. Creating binds to a C++ library is only a temporary solution and is not ideal both in implementation and in usage. I do not mind using a C library in D because of how straight forward it is. But simply mentioning C++ in D seems to add unneeded complexity which should be avoided. I think the answer to a question such as "What's the alternative to Qt in D?" should not be "Qt bindings" but maybe a library which imitates the implementation and/or interface of Qt UI widgets in native D. Another problem this causes is the seemingly unneccessary time needed to develop such libraries. I kinda regret saying this but using a C library in an OOP wrapper can be optimal and easy to work with. Perhaps adding to GTK+ as a C library for functionality that we want would be more ideal than trying to mess with C++. I personally think the SIMD feature is much more important than trying to mess with C++.
Jan 25 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 01/25/2012 10:01 AM, Zachary Lund wrote:
 On 01/25/2012 11:41 AM, bls wrote:
 On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ? Don't get me wrong Jacob. In case that dstep is working perfect for C++ hallelujah. (I am nevertheless convinced that porting from XML output has several advantages. Multi pass code generation. Bjoern --------------------------------------------------------------------- Slightly Off Topic DWT (Keinfarbton) f.i. was born on a idea of mine. Frank and I have discussed the idea of using Java2XML (ANTLR based) to generate D code )

I'm going to be rather straight forward on my opinion and, possibly, my ignorance. I think C (or any language with no symbol mangling) is an ideal language to create a library which is usable globally in almost any language. I think C++ libraries are an ideal language to create a library which is going to be used only within the C++ community because of it's ill symbol mangling system. There is no "right" way to work with C++ in D and although there are ways to interface with C++, I do not think that is the ideal situation. That being said, libraries like wxWidgets are very large and have been acquired over several years of hardwork by a very large group. I do not think that a GUI toolkit library should have to bother with networking, sound, and so on. Also given the "standard" library D has, I think the GUI library D can provide should use Phobos extensively rather than its own mechanisms. I think the ideal situation is to have a native D library. Creating binds to a C++ library is only a temporary solution and is not ideal both in implementation and in usage. I do not mind using a C library in D because of how straight forward it is. But simply mentioning C++ in D seems to add unneeded complexity which should be avoided. I think the answer to a question such as "What's the alternative to Qt in D?" should not be "Qt bindings" but maybe a library which imitates the implementation and/or interface of Qt UI widgets in native D. Another problem this causes is the seemingly unneccessary time needed to develop such libraries. I kinda regret saying this but using a C library in an OOP wrapper can be optimal and easy to work with. Perhaps adding to GTK+ as a C library for functionality that we want would be more ideal than trying to mess with C++. I personally think the SIMD feature is much more important than trying to mess with C++.

Thanks for the feedback. well, I think we have very different views. Unfortunately I am not a student anymore instead I am a unhappy tax payer. To fulfill my Job I need GUI,RIA(WEB), Database and XML(SOAP) support. To say the least. So pretty much everything D is not able to deliver atm. We are buying 3 party add ons in a few kilo bucks region and unfortunately we have to work with a Tool chain which is far away from being perfect. In other words the D language is already offering more than we need,could be an option, but the library situation is a disaster. wxWidgets. Do you really care about wrapped vs native library ? Do you think that the D community will ever be able to create a wxWidgets comparable native D lib. while not being able to spend some time in creating a binding generator ? I would be glad to have such bindings ! My 2 cents.
Jan 25 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 01/25/2012 11:06 AM, Gour wrote:
 After researching a lot, I believe that wxWidgets is the best solution
 for multi-platform development and I'll try to help as much as possible
 those people trying to make it happen.


 Sinvcerely,
 Gour

Indeed. wxWidgets in 2.9.3 has closed the gap to QT. (webkit, f.i.) The documentation is also very close to what QT has to offer thanks to Doxygen. We should not forget that wxWidget is offering support for the RibboBar. (not that I like it too much) I wonder how much sense it would make to port the PHP parser/codegenerator source (wxPHP) into python. At least it should result in : More readable code, xml instead of shitty json intermediate output for the D codegerator. Despite that , developing a GUI tool to browse/modify the xml files is a piece of cake in wxPython. Of couse I would be nice to use D. But the XML files are simply to big to do DOM parsing. XPATH is required. Last thing. BCDGEN is using libxml2 to generate D code. and BCDGen was the tool to created the libxml2 wrapper. Eat your own Dog food. Good! http://dsource.org/projects/bcd Bjoern
Jan 25 2012
parent reply bls <bizprac orange.fr> writes:
On 01/25/2012 01:38 PM, Andrej Mitrovic wrote:
 The Json parsing I've initially attempted was a mistake. I've assumed
 the XML parsing would be harder than necessary, but I ended up
 fighting wxPhp's arbitrary Json output (arrays holding objects of
 different types.. which is no good for D, or my sanity).

 Yesterday I've started working on xml parsing instead (using Vladimir
 Panteelev's xml library) and now I have a full script that parses wx
 doxygen files in pretty much the same way as the wxPhp script
 (although the syntax is much nicer to work with).

 I'm now in the process of testing the entire output to verify that
 I've parsed the xml files correctly and loaded all the info in the
 same way as wxPhp's xml script (basically I'm going to do some printf
 diffs).

 Once that is done I can begin working on porting the source_maker
 script (obviously I can skip the Json part altogether since I have the
 structures in memory already).

Andrej, I can't await your SUCCESS message. For me your upcoming code is the most important stuff since years. A few questions : where do I find Vladimir Panteelev's XML library ? Does this library support XPATH ? Maybe it's too early but what do you think about replacing wxEvent with a D solution ? I think about something similar to DGUI's event framework. Same is valid for the wxWidgets sizer framework. Enough now... Just want to say: Thanks man !
Jan 26 2012
next sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Thursday, January 26, 2012 19:44:18 Jesse Phillips wrote:
 On Thursday, 26 January 2012 at 15:13:57 UTC, bls wrote:
 Andrej,
 I can't await your SUCCESS message. For me your upcoming code
 is the most important stuff since years.
 A few questions : where do I find Vladimir Panteelev's XML
 library ? Does this library support XPATH ?

I don't know anything about Vladimir's parser, I've just been using xmlp, which has xpath though I have have not used. Xmlp has gone through some breaking changes recently as I've been submitting bugs. http://www.dsource.org/projects/xmlp/browser/trunk/std

xmlp is the one that Tomaz is working on to replace std.xml, correct? Any idea how close it is to actually being submitted for review? - Jonathan M Davis
Jan 26 2012
prev sibling next sibling parent "Jesse Phillips" <jessekphillips+D gmail.com> writes:
On Thursday, 26 January 2012 at 19:02:30 UTC, Jonathan M Davis 
wrote:
 xmlp is the one that Tomaz is working on to replace std.xml, 
 correct? Any idea how close it is to actually being submitted 
 for review?

 - Jonathan M Davis

Michael Rynn, no I don't know what Tomaz is up to. Maybe some form of contact information should be given on the ReviewQueue. I'll send an email to Michael about this discrepancy as I didn't notice this before. As for xmlp and its progress. I can't really say either. It seems he started using a custom hashmap implementation which probably doesn't jive with being included in Phobos. Organizational work would probably need to be done, it isn't flat which may or may not be good for Phobos.
Jan 26 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-01-27 08:48, Andrej Mitrovic wrote:
 On 1/27/12, equinox atw.hu<equinox atw.hu>  wrote:
 It is not clear what you do not use xml in tango library.

I'm using D2, not D1.

Tango is working find with D2: https://github.com/SiegeLord/Tango-D2 -- /Jacob Carlborg
Jan 27 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-01-27 12:21, Andrej Mitrovic wrote:
 On 1/27/12, Jacob Carlborg<doob me.com>  wrote:
 Tango is working find with D2: https://github.com/SiegeLord/Tango-D2

It wasn't the first place I went looking for an xml lib since this port is pretty new. But I did hear Tango's xml parser was blazing fast.

Most of Tango is ported. I've ported one of my projects to D2 using Tango and it's all working fine. -- /Jacob Carlborg
Jan 27 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-01-28 12:47, Gour wrote:
 On Sat, 28 Jan 2012 12:14:12 +0100
 equinox atw.hu wrote:

 I just wonder dwt(http://www.dsource.org/projects/dwt) is not good
 enough?

Well, I prefer wx over SWT and besides that, Jacob said he has other & higher priorities at the moment besides working on DWT.

That doesn't stop others to work on DWT :) -- /Jacob Carlborg
Jan 28 2012
parent bls <bizprac orange.fr> writes:
On 01/28/2012 07:12 AM, Jacob Carlborg wrote:
 That doesn't stop others to work on DWT :)

No offense Jacob! It is just that imo wxWidgets is the most flexible gui toolkiy in town. and reading what is planned for 3.0 yum iOS.. maybe Android But despite that, DWT requires Java like programming in D (well, a matter of taste) . But also , NO dockable planes receptive, windows... week grid support, etc.. and so on, and so on. NO we need a full blown GUI and wxWidgets is,at least, a very good one. a+ bjoern
Jan 27 2012
prev sibling next sibling parent bls <bizprac orange.fr> writes:
On 01/28/2012 03:47 AM, Gour wrote:
 On Sat, 28 Jan 2012 12:14:12 +0100
 equinox atw.hu wrote:

 I just wonder dwt(http://www.dsource.org/projects/dwt) is not good
 enough?

Well, I prefer wx over SWT and besides that, Jacob said he has other & higher priorities at the moment besides working on DWT. Sincerely, Gour

DWT is not playing in the same playground (feature wise-platform wise) . So to answer your question> Yes, DWT is not good enough. Let me quote Gour : " Let's not forget that today the language itself does not mean much without 'batteries included' and the whole ecosystem inckluding IDE/editors suppor, build systems etc. So, I would not minimize the fact to get stable/actively_developed/easily_maintained bindings for native multi-platform GUI toolkit. ;) " I have to agree. 100 percent Bjoern
Jan 27 2012
prev sibling next sibling parent bls <bizprac orange.fr> writes:
On 02/06/2012 03:06 AM, Andrej Mitrovic wrote:
 On 1/26/12, bls<bizprac orange.fr>  wrote:
 Hi Andrej,
 first of all : it is NOT my intention to pick on your nerves.
 I am just curious and , ahem, a bit impatience.

 Have you made some progress on the code generator ?
 Are you running into problems, hard to solve problems ?

 Well, it would be nice to get some feedback. I am really keen to see the code.
(cause I'll try,based on your code, to create bindings to the
wxShapeFramework... )
 Kind regards,
 Bjoern (bls)
 PS Have you noticed the wxPHP update.
 PPS Wouldn't make more sense to use the new Tango 2 'cause it has XPath
support ? Given XPath support is imited, but I think good enough for this task.

I'm working on this around the clock. If everything goes ok I might have the wxc wrapper done by the end of the week, but I'm not making any promises. I'm not having much difficulty, there are some edge-cases here and there but it's fine. PS: Yes, however I'm now basing the wxc generated code around the existing wxc binding, and not wxPhp. wxPhp uses some 3rd party library that has to do a lot of magic to interact with a C library, so it's code generators are not that useful to me. The existing wxc bindings already have memory management in place which I can reuse. PPS: I'm parsing the xml files fine, there's no need to use tango at this point. I'm not publishing any code yet since I don't want people to do duplicate work and make pulls, we'll end up stepping on each other's toes. And work can't be done in parallel since you need wxc before you can generate wxd wrappers. I'd ask for a little bit of patience! Thanks. :)

Very very good news. Thanks Andrej!!!!
Feb 06 2012
prev sibling next sibling parent reply bls <bizprac orange.fr> writes:
On 02/11/2012 11:45 AM, Andrej Mitrovic wrote:
 Just a small update:

 542 classes are successfully generated (and buildable). 132+ are left to go.

 I've ran into a few issues where the interface files (from which the
 xml is built) are not in sync with the code. So there might be missing
 types definitions, or wrong types in methods, etc. But these can be
 worked around by adding extra type definitions in the generator (IOW
 there's no need to manually touch the .cpp files by hand).

 So wxc won't be done by this week, but it's progressing pretty good so
 far. Stay tuned..

Chapeau Andrej ! Silly Question .. did you try to to use regen (or however it is named) script to re-create the doxygen xml files ? Another question regarding wxC. Will there be an option to generate a shared library so/dll ? Thanks (and please keep us informed.) Bjoern
Feb 10 2012
parent bls <bizprac orange.fr> writes:
On 02/12/2012 03:04 AM, Andrej Mitrovic wrote:
 For wxc I'll have to provide both static and shared library support.

Perfect!
 win32-only: I've tried statically linking 2.9.3 via optlink but it
 couldn't handle the vast amount of symbol names. Even if that was
 resolved (it won't be) I can't use optlink anymore since wxWidgets has
 basically dropped support for DMC, and I have to use either g++ or MSC
 to build wxWidgets. Remember that Optlink can't link to COFF. The
 alternatives that I know of are DMD+Unilink + static/dynamic library,
 DMD+Optlink + dynamic library, or GDC + static/dynamic library.
 There's also LDC but I haven't used it for D2 yet.

I think GDC is the tool of choice for wxd win32 and 64 development anyway. so i would use GDC. I meant _using_ wxD. Building wxD is most probably also more comfortable using GDC. Event-Handling. Yesterday I had a look at the old wxd source from Anders. wxevent.d looks already very promising. Thanks, Bjoern
Feb 10 2012
prev sibling next sibling parent bls <bizprac orange.fr> writes:
On 02/15/2012 06:53 AM, Andrej Mitrovic wrote:
 On 2/11/12, Andrej Mitrovic<andrej.mitrovich gmail.com>  wrote:
 132+ are left to go.

55 left. This is the harder part now since most of these left are interface mismatches and not codegenerator bugs. As you can see I've started filing reports with patches: http://trac.wxwidgets.org/query?reporter=drey&order=priority

Excellent. Most of your patches are already accepted and closed. Seems you are a bug fixing machine. Let me quote Vladimir Zeitilin.. "I was trying to close these reports as you find them but it looks like your speed has picked up so it's going to be more difficult for me to keep up now...." :) I have a couple of questions, but I think I have to wait until wxC is done. Thanks Andrej.
Feb 15 2012
prev sibling next sibling parent bls <bizprac orange.fr> writes:
On 03/16/2012 06:29 PM, Andrej Mitrovic wrote:
 So, stay tight! Good times ahead.:)

Incredible good news! Thanks. One of the very first wxD applications could be a GUI for the generator.
Mar 16 2012
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-03-17 04:34, Andrej Mitrovic wrote:
 On 3/17/12, Brad Anderson<eco gnuk.net>  wrote:
 Could the wxc generator be be used as a base for building bindings for
 other libraries?

I hope it will be. It's kind of crazy that the first thing I'm using it on is a huge library like wxD, this will likely be its biggest unittest, so to speak. :p Doxygen can be run on libraries with no documentation (there's a switch for that), so it can extract the needed data for the generator. Of course it depends how complex the library is, e.g. you can't run doxygen directly on wxWidgets include files because they're very complicated (it actually crashes doxygen), but this is why the wx devs have created a separate set of interface files for doxygen.

This is why a proper compiler is needed, this will not work in the long run. -- /Jacob Carlborg
Mar 17 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 03/17/2012 09:50 AM, Jacob Carlborg wrote:
 This is why a proper compiler is needed, this will not work in the long
 run.

Are you aware that doxgen's xml output is based on gcc-xml ? I think it is necessary to say that doxygen, respective gcc-xml, is working on stripped and annotated header files (so called interface files) f.i. http://svn.wxwidgets.org/viewvc/wx/wxWidgets/trunk/interface/wx/ So, stupid manual work is needed to create these interface files. Until you don't have a heavily templated c++ lib, using doygen's xml output is, IMHO, a reasonable way to create bindings. well, will see
Mar 17 2012
parent reply Jacob Carlborg <doob me.com> writes:
On 2012-03-17 18:36, bls wrote:
 On 03/17/2012 09:50 AM, Jacob Carlborg wrote:
 This is why a proper compiler is needed, this will not work in the long
 run.

Are you aware that doxgen's xml output is based on gcc-xml ?

No, I was not aware of that. What is the problem then, doxygen choking on the XML or GCC choking on the include files?
 I think it is necessary to say that doxygen, respective gcc-xml, is
 working on stripped and annotated header files (so called interface files)
 f.i. http://svn.wxwidgets.org/viewvc/wx/wxWidgets/trunk/interface/wx/

 So, stupid manual work is needed to create these interface files.

That sucks. -- /Jacob Carlborg
Mar 17 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 03/17/2012 10:44 AM, Jacob Carlborg wrote:
 On 2012-03-17 18:36, bls wrote:
 On 03/17/2012 09:50 AM, Jacob Carlborg wrote:
 This is why a proper compiler is needed, this will not work in the long
 run.

Are you aware that doxgen's xml output is based on gcc-xml ?

No, I was not aware of that. What is the problem then, doxygen choking on the XML or GCC choking on the include files?
 I think it is necessary to say that doxygen, respective gcc-xml, is
 working on stripped and annotated header files (so called interface
 files)
 f.i. http://svn.wxwidgets.org/viewvc/wx/wxWidgets/trunk/interface/wx/

 So, stupid manual work is needed to create these interface files.

That sucks.

private stuff (methods, decls, etc.) forward decls, and write some annotations.. like iOS-only from the header. I really hope to see a working wxD soon. I will try to create bindings for the wxShapeFramework than..
Mar 17 2012
parent bls <bizprac orange.fr> writes:
On 03/17/2012 10:51 AM, bls wrote:
 Are you aware that doxgen's xml output is based on gcc-xml ?


I should be more carefull :( It's another wxWidgets utility that is using gcc-xml.
Mar 17 2012
prev sibling parent bls <bizprac orange.fr> writes:
On 03/17/2012 10:44 AM, Jacob Carlborg wrote:
 What is the problem then, doxygen choking on the XML or GCC choking on
 the include files?

gcc-xml is stalled. Means newer C++ stuff is not supported. See news... http://www.gccxml.org/HTML/News.html
Mar 17 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-03-17 20:20, Andrej Mitrovic wrote:
 On 3/17/12, Jacob Carlborg<doob me.com>  wrote:
 This is why a proper compiler is needed, this will not work in the long run.

The generator doesn't really care which tool you use to extract the data. It should be possible to use a tool such as LLVM to fill the structs with all the information it needs to build the wrappers. So in essence it works in a similar way as your dstep project, although I don't really know how far you've gone in implementing dstep so I can't compare the two.

Not ready for a comparison yet. -- /Jacob Carlborg
Mar 17 2012
prev sibling parent Zachary Lund <admin computerquip.com> writes:
On 01/25/2012 12:44 PM, bls wrote:
 On 01/25/2012 10:01 AM, Zachary Lund wrote:
 On 01/25/2012 11:41 AM, bls wrote:
 On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ? Don't get me wrong Jacob. In case that dstep is working perfect for C++ hallelujah. (I am nevertheless convinced that porting from XML output has several advantages. Multi pass code generation. Bjoern --------------------------------------------------------------------- Slightly Off Topic DWT (Keinfarbton) f.i. was born on a idea of mine. Frank and I have discussed the idea of using Java2XML (ANTLR based) to generate D code )

I'm going to be rather straight forward on my opinion and, possibly, my ignorance. I think C (or any language with no symbol mangling) is an ideal language to create a library which is usable globally in almost any language. I think C++ libraries are an ideal language to create a library which is going to be used only within the C++ community because of it's ill symbol mangling system. There is no "right" way to work with C++ in D and although there are ways to interface with C++, I do not think that is the ideal situation. That being said, libraries like wxWidgets are very large and have been acquired over several years of hardwork by a very large group. I do not think that a GUI toolkit library should have to bother with networking, sound, and so on. Also given the "standard" library D has, I think the GUI library D can provide should use Phobos extensively rather than its own mechanisms. I think the ideal situation is to have a native D library. Creating binds to a C++ library is only a temporary solution and is not ideal both in implementation and in usage. I do not mind using a C library in D because of how straight forward it is. But simply mentioning C++ in D seems to add unneeded complexity which should be avoided. I think the answer to a question such as "What's the alternative to Qt in D?" should not be "Qt bindings" but maybe a library which imitates the implementation and/or interface of Qt UI widgets in native D. Another problem this causes is the seemingly unneccessary time needed to develop such libraries. I kinda regret saying this but using a C library in an OOP wrapper can be optimal and easy to work with. Perhaps adding to GTK+ as a C library for functionality that we want would be more ideal than trying to mess with C++. I personally think the SIMD feature is much more important than trying to mess with C++.

Thanks for the feedback. well, I think we have very different views. Unfortunately I am not a student anymore instead I am a unhappy tax payer. To fulfill my Job I need GUI,RIA(WEB), Database and XML(SOAP) support. To say the least. So pretty much everything D is not able to deliver atm. We are buying 3 party add ons in a few kilo bucks region and unfortunately we have to work with a Tool chain which is far away from being perfect. In other words the D language is already offering more than we need,could be an option, but the library situation is a disaster. wxWidgets. Do you really care about wrapped vs native library ? Do you think that the D community will ever be able to create a wxWidgets comparable native D lib. while not being able to spend some time in creating a binding generator ? I would be glad to have such bindings ! My 2 cents.

You misunderstood or did not read my entire post. I claimed messing with C++ was not productive. I did not claim we couldn't or shouldn't wrap over a library and even suggested we use a modified version of GTK+ for such a thing. I said writing a native D library was ideal. I did not say it was the most effecient method. I think working into playing with C++ libraries is asking for trouble and more man-time that it's worth. You seem to indicate that I meant otherwise.
Jan 25 2012
prev sibling parent Piotr Szturmaj <bncrbme jadamspam.pl> writes:
Kagamin wrote:
 On Wednesday, 25 January 2012 at 18:01:48 UTC, Zachary Lund wrote:
 I do not mind using a C library in D because of how straight forward
 it is. But simply mentioning C++ in D seems to add unneeded complexity
 which should be avoided. I think the answer to a question such as
 "What's the alternative to Qt in D?" should not be "Qt bindings" but
 maybe a library which imitates the implementation and/or interface of
 Qt UI widgets in native D.

http://www.ohloh.net/p/qt/estimated_cost some scary numbers

$300K for build scripts... and Mozilla paid almost 3 million for the same.
Jan 27 2012
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-01-25 18:41, bls wrote:
 On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ?

I had no plans on supporting C++ but we'll see what happens. I don't know when. I have much of the implementation already done but that was as a modification to Clang, not as a separate tool. I'm trying to reimplement the code as a separate tool in D using the Clang C bindings. So far it's not working out that well, there's not much documentation available.
 Don't get me wrong Jacob. In case that dstep is working perfect for C++
 hallelujah.

 (I am nevertheless convinced that porting from XML output has several
 advantages. Multi pass code generation.

 Bjoern
 ---------------------------------------------------------------------
 Slightly Off Topic DWT (Keinfarbton) f.i. was born on a idea of mine.
 Frank and I have discussed the idea of using Java2XML (ANTLR based) to
 generate D code )

-- /Jacob Carlborg
Jan 25 2012
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-01-25 20:13, Jacob Carlborg wrote:
 On 2012-01-25 18:41, bls wrote:
 On 01/25/2012 09:07 AM, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

Quote " DStep is a tool for converting C and Objective-C headers to D modules. " Well THAT'S nitty gritty :) C++ as well ? How ? And maybe the most imp[ortant point when ?

I had no plans on supporting C++ but we'll see what happens. I don't know when. I have much of the implementation already done but that was as a modification to Clang, not as a separate tool. I'm trying to reimplement the code as a separate tool in D using the Clang C bindings. So far it's not working out that well, there's not much documentation available.

BTW, this is what I've got so far, in a somewhat useable state: https://github.com/jacob-carlborg/clang -- /Jacob Carlborg
Jan 25 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-01-25 22:38, Trass3r wrote:
 I'm trying to reimplement the code as a separate tool in D using the
 Clang C bindings. So far it's not working out that well, there's not
 much documentation available.

Are the C bindings complete? I imagine they don't get that much attention.

It depends on what complete means. If you mean that you can do all the things you can do with the C++ API, then no. If you mean it's complete enough to implement this project, then I don't know. I think at least parts of the C bindings are added when someone needs it. -- /Jacob Carlborg
Jan 25 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-01-26 13:24, Trass3r wrote:
 Are the Clang C bindings complete? I imagine they don't get that much
 attention.

It depends on what complete means. If you mean that you can do all the things you can do with the C++ API, then no. If you mean it's complete enough to implement this project, then I don't know. I think at least parts of the C bindings are added when someone needs it.

Well I know from the llvm bindings that they aren't complete and it's not hard to guess they don't pay that much attention to them.

I think they pay quite much attention to the bindings. I mean Apple uses it in Xcode (at least I think it's the C bindings and not the C++ code) and the C bindings are much more API stable compared to the C++.
 Is it easy to use them? From what I've seen the llvm bindings don't
 quite follow the naming scheme of the C++ counterpart which makes it
 harder to find the appropriate functions.

It seems fairly straightforward, I've just started to use the bindings. I'm not sure how the LLVM bindings work but these bindings for Clang are more of a C library built on top of the C++ code than actual bindings. You don't even link with the same library. Instead of linking to libclangSema, libclangAST and so on you just link to libclang. -- /Jacob Carlborg
Jan 26 2012
prev sibling parent reply bls <bizprac orange.fr> writes:
Sorry for my ignorance but why should one use DStep instead of htod in 
order to port plain vanilla C headers ? I have to admit that I haven't 
tried DStep yet.
Did you try DStep on libxml2, respective libxslt ?

TIA,
Bjoern
Jan 26 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 01/26/2012 07:51 AM, Trass3r wrote:
 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

htod is Windows-only.

And it sucks. For example it drops const, runs the preprocessor instead of turning preprocessor directives into proper D equivalents, horribly messes up the comments (esp. comments for enum members),...

Ok,Thanks for clarification! Seems that DStep is a missing link in the D tool-chain and should be part of the DMD package I'll try DStep ASAP on libxml2 and libxslt. Will let you know how it works for me. Thanks, Bjoern
Jan 26 2012
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-01-26 17:18, Trass3r wrote:
 Ok,Thanks for clarification! Seems that DStep is a missing link in the
 D tool-chain and should be part of the DMD package
 I'll try DStep ASAP on libxml2 and libxslt. Will let you know how it
 works for me.

I don't think it's in a usable state yet. I guess SWIG could be useful currently.

No, it's not in very usable state currently. The Clang modifications are somewhat usable: https://github.com/jacob-carlborg/clang -- /Jacob Carlborg
Jan 26 2012
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-01-26 17:08, bls wrote:
 On 01/26/2012 07:51 AM, Trass3r wrote:
 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

htod is Windows-only.

And it sucks. For example it drops const, runs the preprocessor instead of turning preprocessor directives into proper D equivalents, horribly messes up the comments (esp. comments for enum members),...

Ok,Thanks for clarification! Seems that DStep is a missing link in the D tool-chain and should be part of the DMD package I'll try DStep ASAP on libxml2 and libxslt. Will let you know how it works for me. Thanks, Bjoern

DStep has nothing to do with XML. It uses the Clang C API to create D bindings. -- /Jacob Carlborg
Jan 26 2012
parent reply bls <bizprac orange.fr> writes:
On 01/26/2012 09:51 AM, Jacob Carlborg wrote:
 On 2012-01-26 17:08, bls wrote:
 On 01/26/2012 07:51 AM, Trass3r wrote:
 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

htod is Windows-only.

And it sucks. For example it drops const, runs the preprocessor instead of turning preprocessor directives into proper D equivalents, horribly messes up the comments (esp. comments for enum members),...

Ok,Thanks for clarification! Seems that DStep is a missing link in the D tool-chain and should be part of the DMD package I'll try DStep ASAP on libxml2 and libxslt. Will let you know how it works for me. Thanks, Bjoern

DStep has nothing to do with XML. It uses the Clang C API to create D bindings.

libxml2 is a plain c library http://xmlsoft.org/ libxslt dito. http://xmlsoft.org/XSLT/ ?? May you mix it up. In order to create *bindings* to C++ libs doxygens xml output seems to be perfect. To _port_ C headers DStep is probaly the right tool. But I just see that I have to build llvm and what the heck.. :( Now, in order to parse doxygens xml output std.xml is not good enough. In other words it would be nice to have libxml2 as D lib available.
Jan 26 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-01-26 19:08, bls wrote:
 On 01/26/2012 09:51 AM, Jacob Carlborg wrote:
 On 2012-01-26 17:08, bls wrote:
 On 01/26/2012 07:51 AM, Trass3r wrote:
 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

htod is Windows-only.

And it sucks. For example it drops const, runs the preprocessor instead of turning preprocessor directives into proper D equivalents, horribly messes up the comments (esp. comments for enum members),...

Ok,Thanks for clarification! Seems that DStep is a missing link in the D tool-chain and should be part of the DMD package I'll try DStep ASAP on libxml2 and libxslt. Will let you know how it works for me. Thanks, Bjoern

DStep has nothing to do with XML. It uses the Clang C API to create D bindings.

libxml2 is a plain c library http://xmlsoft.org/ libxslt dito. http://xmlsoft.org/XSLT/ ?? May you mix it up. In order to create *bindings* to C++ libs doxygens xml output seems to be perfect. To _port_ C headers DStep is probaly the right tool. But I just see that I have to build llvm and what the heck.. :( Now, in order to parse doxygens xml output std.xml is not good enough. In other words it would be nice to have libxml2 as D lib available.

Oh, you mean create bindings to libxml2? I don't see how doxygen xml output could be better to create bindings than a compiler. Tango has a pretty good and super fast XML module. Tango is now usable with D2: https://github.com/SiegeLord/Tango-D2 -- /Jacob Carlborg
Jan 26 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-01-26 16:41, Gour wrote:
 On Thu, 26 Jan 2012 07:19:27 -0800
 bls<bizprac orange.fr>  wrote:

 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

Excuse me for my ignorance about DStep, but htod is Windows-only.

Exactly, dstep could work on any platform supported by Clang and D. -- /Jacob Carlborg
Jan 26 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 I'm trying to reimplement the code as a separate tool in D using the  
 Clang C bindings. So far it's not working out that well, there's not  
 much documentation available.

Are the C bindings complete? I imagine they don't get that much attention.
Jan 25 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
The Json parsing I've initially attempted was a mistake. I've assumed
the XML parsing would be harder than necessary, but I ended up
fighting wxPhp's arbitrary Json output (arrays holding objects of
different types.. which is no good for D, or my sanity).

Yesterday I've started working on xml parsing instead (using Vladimir
Panteelev's xml library) and now I have a full script that parses wx
doxygen files in pretty much the same way as the wxPhp script
(although the syntax is much nicer to work with).

I'm now in the process of testing the entire output to verify that
I've parsed the xml files correctly and loaded all the info in the
same way as wxPhp's xml script (basically I'm going to do some printf
diffs).

Once that is done I can begin working on porting the source_maker
script (obviously I can skip the Json part altogether since I have the
structures in memory already).
Jan 25 2012
prev sibling next sibling parent "Trass3r" <un known.com> writes:
 Are the Clang C bindings complete? I imagine they don't get 
 that much attention.

It depends on what complete means. If you mean that you can do all the things you can do with the C++ API, then no. If you mean it's complete enough to implement this project, then I don't know. I think at least parts of the C bindings are added when someone needs it.

Well I know from the llvm bindings that they aren't complete and it's not hard to guess they don't pay that much attention to them. Is it easy to use them? From what I've seen the llvm bindings don't quite follow the naming scheme of the C++ counterpart which makes it harder to find the appropriate functions.
Jan 26 2012
prev sibling next sibling parent "Trass3r" <un known.com> writes:
 Sorry for my ignorance but why should one use DStep instead of 
 htod in order to port plain vanilla C headers ? I have to 
 admit that I haven't tried DStep yet.

htod is Windows-only.

And it sucks. For example it drops const, runs the preprocessor instead of turning preprocessor directives into proper D equivalents, horribly messes up the comments (esp. comments for enum members),...
Jan 26 2012
prev sibling next sibling parent "Trass3r" <un known.com> writes:
 Ok,Thanks for clarification! Seems that DStep is a missing link 
 in the D tool-chain and should be part of the DMD package
 I'll try DStep ASAP on libxml2 and libxslt. Will let you know 
 how it works for me.

I don't think it's in a usable state yet. I guess SWIG could be useful currently.
Jan 26 2012
prev sibling next sibling parent "Jesse Phillips" <jessekphillips+D gmail.com> writes:
On Thursday, 26 January 2012 at 15:13:57 UTC, bls wrote:

 Andrej,
 I can't await your SUCCESS message. For me your upcoming code 
 is the most important stuff since years.
 A few questions : where do I find Vladimir Panteelev's XML 
 library ? Does this library support XPATH ?

I don't know anything about Vladimir's parser, I've just been using xmlp, which has xpath though I have have not used. Xmlp has gone through some breaking changes recently as I've been submitting bugs. http://www.dsource.org/projects/xmlp/browser/trunk/std
Jan 26 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 1/26/12, bls <bizprac orange.fr> wrote:
 A few questions : where do I find Vladimir Panteelev's XML library ?

https://github.com/CyberShadow/ae/blob/master/utils/ (see xml.d)
 Does this library support XPATH ?

I'm not sure. It's a light-weight library, you're probably not going to see libxml2 features in there.
 Maybe it's too early but what do you think about replacing wxEvent with
 a D solution ?

I think it's too early for that, but I know it would be nice to have something D-like for events. We'll see later. Anyway, the XML parsing script is done and I've verified it has the same output as the php script. This thing parsed about 1400 xml files, so I don't see any issues with parsing doxygen xml files with a lightweight xml lib, at least not for wxWidgets. The next step is to port the generator scripts. I'll make updates as progress continues.
Jan 26 2012
prev sibling next sibling parent equinox atw.hu writes:
On Thu, 26 Jan 2012 23:18:10 +0100, Andrej Mitrovic  
<andrej.mitrovich gmail.com> wrote:

 On 1/26/12, bls <bizprac orange.fr> wrote:
 A few questions : where do I find Vladimir Panteelev's XML library ?

https://github.com/CyberShadow/ae/blob/master/utils/ (see xml.d)
 Does this library support XPATH ?

I'm not sure. It's a light-weight library, you're probably not going to see libxml2 features in there.
 Maybe it's too early but what do you think about replacing wxEvent with
 a D solution ?

I think it's too early for that, but I know it would be nice to have something D-like for events. We'll see later. Anyway, the XML parsing script is done and I've verified it has the same output as the php script. This thing parsed about 1400 xml files, so I don't see any issues with parsing doxygen xml files with a lightweight xml lib, at least not for wxWidgets. The next step is to port the generator scripts. I'll make updates as progress continues.

It is not clear what you do not use xml in tango library. Regards Marton Papp
Jan 26 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 1/27/12, equinox atw.hu <equinox atw.hu> wrote:
 It is not clear what you do not use xml in tango library.

I'm using D2, not D1.
Jan 26 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 1/27/12, Gour <gour atmarama.net> wrote:
 Andrej, you're the bearer of the best D-news these days. Congrats!!!

I appreciate the enthusiasm, but I think it should be toned down a bit. At this stage this work is pretty insignificant compared to all the work on e.g. improving DMD.
Jan 27 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 1/27/12, Jacob Carlborg <doob me.com> wrote:
 Tango is working find with D2: https://github.com/SiegeLord/Tango-D2

It wasn't the first place I went looking for an xml lib since this port is pretty new. But I did hear Tango's xml parser was blazing fast.
Jan 27 2012
prev sibling next sibling parent "Kagamin" <spam here.lot> writes:
On Wednesday, 25 January 2012 at 18:01:48 UTC, Zachary Lund wrote:
 I do not mind using a C library in D because of how straight 
 forward it is. But simply mentioning C++ in D seems to add 
 unneeded complexity which should be avoided. I think the answer 
 to a question such as "What's the alternative to Qt in D?" 
 should not be "Qt bindings" but maybe a library which imitates 
 the implementation and/or interface of Qt UI widgets in native 
 D.

http://www.ohloh.net/p/qt/estimated_cost some scary numbers
Jan 27 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 "What's the alternative to Qt in D?" should not be "Qt bindings" but  
 maybe a library which imitates the implementation and/or interface of  
 Qt UI widgets in native D.

http://www.ohloh.net/p/qt/estimated_cost some scary numbers

http://www.ohloh.net/p/qt5 dmd could really learn a thing or two from them: http://www.ohloh.net/p/qt5/factoids/15415862 ;)
Jan 27 2012
prev sibling next sibling parent equinox atw.hu writes:
 So, I would not minimize the fact to get
 stable/actively_developed/easily_maintained bindings for native
 multi-platform GUI toolkit. ;)


 Sincerely,
 Gour

I just wonder dwt(http://www.dsource.org/projects/dwt) is not good enough? Regards Marton Papp
Jan 28 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 1/26/12, bls <bizprac orange.fr> wrote:
 Hi Andrej,
 first of all : it is NOT my intention to pick on your nerves.
 I am just curious and , ahem, a bit impatience.

 Have you made some progress on the code generator ?
 Are you running into problems, hard to solve problems ?

 Well, it would be nice to get some feedback. I am really keen to see the code.
(cause I'll try,based on your code, to create bindings to the
wxShapeFramework... )
 Kind regards,
 Bjoern (bls)
 PS Have you noticed the wxPHP update.
 PPS Wouldn't make more sense to use the new Tango 2 'cause it has XPath
support ? Given XPath support is imited, but I think good enough for this task.

I'm working on this around the clock. If everything goes ok I might have the wxc wrapper done by the end of the week, but I'm not making any promises. I'm not having much difficulty, there are some edge-cases here and there but it's fine. PS: Yes, however I'm now basing the wxc generated code around the existing wxc binding, and not wxPhp. wxPhp uses some 3rd party library that has to do a lot of magic to interact with a C library, so it's code generators are not that useful to me. The existing wxc bindings already have memory management in place which I can reuse. PPS: I'm parsing the xml files fine, there's no need to use tango at this point. I'm not publishing any code yet since I don't want people to do duplicate work and make pulls, we'll end up stepping on each other's toes. And work can't be done in parallel since you need wxc before you can generate wxd wrappers. I'd ask for a little bit of patience! Thanks. :)
Feb 06 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 27 January 2012 18:38, Kagamin <spam here.lot> wrote:
 On Wednesday, 25 January 2012 at 18:01:48 UTC, Zachary Lund wrote:
 I do not mind using a C library in D because of how straight forward it
 is. But simply mentioning C++ in D seems to add unneeded complexity which
 should be avoided. I think the answer to a question such as "What's the
 alternative to Qt in D?" should not be "Qt bindings" but maybe a library
 which imitates the implementation and/or interface of Qt UI widgets in
 native D.

http://www.ohloh.net/p/qt/estimated_cost some scary numbers

To be taken with a pinch of salt. I raised an eyebrow or two when looking at the estimated cost for GDC. ;-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Feb 06 2012
prev sibling next sibling parent "Kagamin" <spam here.lot> writes:
On Monday, 6 February 2012 at 11:25:09 UTC, Iain Buclaw wrote:
 To be taken with a pinch of salt.  I raised an eyebrow or two 
 when
 looking at the estimated cost for GDC. ;-)

A C++ to D autoporter? That's an interesting idea.
Feb 06 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Just a small update:

542 classes are successfully generated (and buildable). 132+ are left to go.

I've ran into a few issues where the interface files (from which the
xml is built) are not in sync with the code. So there might be missing
types definitions, or wrong types in methods, etc. But these can be
worked around by adding extra type definitions in the generator (IOW
there's no need to manually touch the .cpp files by hand).

So wxc won't be done by this week, but it's progressing pretty good so
far. Stay tuned..
Feb 11 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/11/12, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:
 542 classes

Sorry, when I said "classes" I meant wxc class wrappers. 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.
Feb 11 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/11/12, bls <bizprac orange.fr> wrote:
 Silly Question .. did you try to  to use regen (or however it is named)
 script to re-create the doxygen xml files ?

That's what I do, yes. The wxPhp xml files were a little outdated anyway.
 Another question regarding wxC. Will there be an option to generate a
 shared library so/dll ?

For wxc I'll have to provide both static and shared library support. win32-only: I've tried statically linking 2.9.3 via optlink but it couldn't handle the vast amount of symbol names. Even if that was resolved (it won't be) I can't use optlink anymore since wxWidgets has basically dropped support for DMC, and I have to use either g++ or MSC to build wxWidgets. Remember that Optlink can't link to COFF. The alternatives that I know of are DMD+Unilink + static/dynamic library, DMD+Optlink + dynamic library, or GDC + static/dynamic library. There's also LDC but I haven't used it for D2 yet.
Feb 12 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/12/12, Gour <gour atmarama.net> wrote:
 I saw your messages in wx-dev and wonder what will be the way to keep
 those files in sync or, at least, detect there are inconsistencies?

They have a tool called ifacecheck which compares the xml files generated by doxygen to the ones generated by using gccxml. I've used gccxml before. I haven't used ifacecheck yet but I'll give it a run.
Feb 12 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/11/12, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:
 132+ are left to go.

55 left. This is the harder part now since most of these left are interface mismatches and not codegenerator bugs. As you can see I've started filing reports with patches: http://trac.wxwidgets.org/query?reporter=drey&order=priority
Feb 15 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/11/12, Andrej Mitrovic <andrej.mitrovich 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. :)
Mar 16 2012
prev sibling next sibling parent Brad Anderson <eco gnuk.net> writes:
--e89a8f22c535fcb51504bb66ea0a
Content-Type: text/plain; charset=ISO-8859-1

On Fri, Mar 16, 2012 at 7:29 PM, Andrej Mitrovic <andrej.mitrovich gmail.com
 wrote:

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

I hope it will be. It's kind of crazy that the first thing I'm using it on is a huge library like wxD, this will likely be its biggest unittest, so to speak. :p Doxygen can be run on libraries with no documentation (there's a switch for that), so it can extract the needed data for the generator. Of course it depends how complex the library is, e.g. you can't run doxygen directly on wxWidgets include files because they're very complicated (it actually crashes doxygen), but this is why the wx devs have created a separate set of interface files for doxygen.
 How about the XML D generator?

Sorry for not being clear, that part is not an xml D generator but an xml extractor used for doxygen xml files. The process is the following: 1. Extract as much information as possible from the doxygen xml files and store them to various structs (I have header/class/typedef/enum/etc structs). 2. Serialize the structs to json for the generator (this is a simple toJson() call). I do this step so I don't have to re-run the xml extractor every time I run the generator. 3. Run the generator, it deserializes the json files and gets all those structs with information like classes, typedefs, enums, parameter types, default values, etc. Then it generates the D code. The xml extractor is about 1500 lines of code, and the D generator about 2000 lines (with a few string-processing helper functions in other modules), but this will be compacted later when I get rid of various code duplication.
Mar 16 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/17/12, Jacob Carlborg <doob me.com> wrote:
 This is why a proper compiler is needed, this will not work in the long run.

The generator doesn't really care which tool you use to extract the data. It should be possible to use a tool such as LLVM to fill the structs with all the information it needs to build the wrappers. So in essence it works in a similar way as your dstep project, although I don't really know how far you've gone in implementing dstep so I can't compare the two.
Mar 17 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 5/21/12, Gour <gour atmarama.net> wrote:
 just wonder if there are any news in regard to wxD bindings project?

I was busy doing another rewrite of my codebase since it was getting rather large and too specific for wxwidgets (lots and lots of doxygen workarounds). Doxygen files for handwritten interfaces are full of missing information so this wasn't going anywhere (I've made about 65 fixes myself but this was already getting tiring http://trac.wxwidgets.org/query?reporter=drey&order=priority). So right now I'm writing a generic C++ wrapper generator, not specific to wxwidgets. I can still extract type info from doxygen xml (as long as the xml was generated from actual header files unlike in wxwidgets), but I've also added support for gccxml (the cvs version is mostly up-to-date and it actually works for wxWidgets). I should be able to add support for clang later on, by outputting its typeinfo to xml. Right now I'm finishing work on adding support for C++ POD types, which includes a feature to work around Issue 5570 (http://d.puremagic.com/issues/show_bug.cgi?id=5570) and another feature that works around field-alignment mismatches between languages. I've recently implemented a simple virtual-method cross-language override mechanism that should probably be faster than what swig provides, but I haven't done any performance testing yet (there's no runtime checks at class construction, no extra boolean fields and runtime checks or function pointers involved, which is what swig uses with its "directors" feature). Since I've made the codegen generic enough it should be possible to output swig interface files instead of directly generating code. I'll experiment with this once I'm done with my own codegen feature. Anyway I really have no idea whether I'll have wxWidgets bindings any time soon but I think I'll put the code generator online in a few weeks. The latest rewrite I did has put my progress back by a long time but it's better this way since the codebase is much cleaner and properly documented right now. At least now I have actual test-cases and I can compile and link generated code and do simple tests to see if the generated code works properly. Work is still in progress, need more time!
May 28 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 6/7/12, Gour <gour atmarama.net> wrote:
 Will it be usable for C libs as well?

I'll see about that. I'm not sure if doxygen works on C libraries, if it does then it's doable. Since now I support POD types there's nothing from stopping the generator to work on C libraries. gccxml works for C++ libraries *or* as a special case C libraries which can be parsed by a C++ compiler (which means there's a strict set of rules where it might not work). The real issue with gccxml is that it's a set of patches that modifies the g++ front-end but not the GCC front-end. I'm not yet familiar with what the patches do but I'd like to get to know my way around hacking gccxml at a later point. And for clang I'll have to write a front-end that loads clanglib and writes .xml files so I can read them in. I don't want the generator to be hardcoded to any type of compiler front-end (unlike bcdgen or some other generators out there).
 Do you envision that your generator could be used for something like Qt
 as well? (Personally, I'm more inclined to wxWidgets due to its native
 look, but D is really starving with stable & maintained GUI bindings.)

Qt is quite sophisticated, so I'm not too sure. One issue I'll have to address is macros. There's already a QtD generator (it ships with QtD) but it's written in C++. Still, there could be something to learn from that codebase.
Jun 07 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-01-25 18:07, Trass3r wrote:
 Whats.necessary to use D in order to create C++ bindings ?

github.com/jacob-carlborg/dstep

I've released the first alpha/beta version: http://forum.dlang.org/thread/jt9i6l$2go5$1 digitalmars.com -- /Jacob Carlborg
Jul 08 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 25 Jan 2012 10:44:43 -0800
bls <bizprac orange.fr> wrote:

 Unfortunately I am not a student anymore instead I am a unhappy tax
 payer.=20

Same here.
 To fulfill my Job I need GUI,RIA(WEB), Database and XML(SOAP)
 support.=20

I need GUI & Database support, but not for the job, but for a kind-of hobby (open-source) project.
 In other words the D language is already offering more than we=20
 need,could be an option,  but the library situation is a disaster.

/mer nods
 wxWidgets. Do you really care about wrapped vs native library ?

I don't.
 Do you think that the D community will ever be able to create a=20
 wxWidgets comparable native D lib. while not being able to spend some=20
 time in creating a binding generator ? i

Not soon.
 I would be glad to have such bindings !

After researching a lot, I believe that wxWidgets is the best solution for multi-platform development and I'll try to help as much as possible those people trying to make it happen. Sinvcerely, Gour --=20 A self-realized man has no purpose to fulfill in the discharge=20 of his prescribed duties, nor has he any reason not to perform=20 such work. Nor has he any need to depend on any other living being. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 25 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 25 Jan 2012 11:26:34 -0800
bls <bizprac orange.fr> wrote:

 wxWidgets in 2.9.3  has closed the gap to QT. (webkit, f.i.) The=20
 documentation is also very close to what QT has to  offer thanks to=20
 Doxygen.=20

Let's hope 3.0 will polish it even further.
 I wonder how much sense it would make to port the PHP=20
 parser/codegenerator source (wxPHP) into python.=20

You mean instead of porting to D (work done by Andrej)?
 At least it should result in : More readable code, xml instead of
 shitty json intermediate output for the D codegerator.

For what would you use XML output?
 Of couse I would be nice to use D. But the XML files are simply to
 big to do DOM parsing. XPATH is required.

I believe that our needs for DOM/XPATH parsing are not so big. :-)
 Last thing. BCDGEN is using libxml2 to generate D code. and BCDGen
 was the tool to created the libxml2 wrapper. Eat your own Dog food.

Whatever tool can be made to help bind wx would be great...and considering there are some bindings for Sqlite3 (which, anyway, shoould not be too hard), we'd be satisfied to plunge into D project. :-) Finally, I hope that those of us interested to see active wxD project will be be smart-enough working together to overcome NiH syndrome. ;) Sincerely, Gour --=20 Whatever action a great man performs, common men follow. And=20 whatever standards he sets by exemplary acts, all the world pursues. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 25 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 Whats.necessary to use D in order to create C++ bindings ?

I forgot SWIG.
Jan 25 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 25 Jan 2012 22:38:58 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

Hello Andrej,

 Yesterday I've started working on xml parsing instead (using Vladimir
 Panteelev's xml library) and now I have a full script that parses wx
 doxygen files in pretty much the same way as the wxPhp script
 (although the syntax is much nicer to work with).

You're my hero!!!
 I'm now in the process of testing the entire output to verify that
 I've parsed the xml files correctly and loaded all the info in the
 same way as wxPhp's xml script (basically I'm going to do some printf
 diffs).

I am swamped with some other work with these days, but when you'll have something to share, I'd like to help by, at least, some testing.
 Once that is done I can begin working on porting the source_maker
 script (obviously I can skip the Json part altogether since I have the
 structures in memory already).

Thanks to you, it looks as D community could get nice bindings to do real GUI programming, thank you very much. Sincerely, Gour --=20 As fire is covered by smoke, as a mirror is covered by dust,=20 or as the embryo is covered by the womb, the living entity is=20 similarly covered by different degrees of this lust. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 25 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, 26 Jan 2012 07:19:27 -0800
bls <bizprac orange.fr> wrote:

 Sorry for my ignorance but why should one use DStep instead of htod
 in order to port plain vanilla C headers ? I have to admit that I
 haven't tried DStep yet.

Excuse me for my ignorance about DStep, but htod is Windows-only. Sincerely, Gour --=20 A person who has given up all desires for sense gratification,=20 who lives free from desires, who has given up all sense of=20 proprietorship and is devoid of false ego =E2=80=94 he alone can=20 attain real peace. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 26 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Thu, 26 Jan 2012 23:18:10 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 Anyway, the XML parsing script is done and I've verified it has the
 same output as the php script. This thing parsed about 1400 xml files,
 so I don't see any issues with parsing doxygen xml files with a
 lightweight xml lib, at least not for wxWidgets. The next step is to
 port the generator scripts. I'll make updates as progress continues.

Andrej, you're the bearer of the best D-news these days. Congrats!!! Sincerely, Gour --=20 One who is not disturbed in mind even amidst the threefold=20 miseries or elated when there is happiness, and who is free=20 from attachment, fear and anger, is called a sage of steady mind. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 27 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Fri, 27 Jan 2012 10:29:43 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 I appreciate the enthusiasm, but I think it should be toned down a
 bit. At this stage this work is pretty insignificant compared to all
 the work on e.g. improving DMD.

I'm aware that the folks working on improving/fixing DMD is doing terrific job, but in one sense this is kind of work that new D user could take as granted based on the premise that 'it should just work as described in e.g. TDPL'. Otoh, your work is extending usability of D to be used for writing real-world GUI applications and we cannot say how many people may abandon the idea to use D just by seeing the present state of many half-baked GUI bindings *before* even stumbling upon some DMD bugs. Let's not forget that today the language itself does not mean much without 'batteries included' and the whole ecosystem inckluding IDE/editors suppor, build systems etc. So, I would not minimize the fact to get stable/actively_developed/easily_maintained bindings for native multi-platform GUI toolkit. ;) Sincerely, Gour --=20 All living bodies subsist on food grains, which are produced=20 from rains. Rains are produced by performance of yaj=C3=B1a [sacrifice],=20 and yaj=C3=B1a is born of prescribed duties. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 27 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Sat, 28 Jan 2012 12:14:12 +0100
equinox atw.hu wrote:

 I just wonder dwt(http://www.dsource.org/projects/dwt) is not good
 enough?

Well, I prefer wx over SWT and besides that, Jacob said he has other & higher priorities at the moment besides working on DWT. Sincerely, Gour --=20 While contemplating the objects of the senses, a person=20 develops attachment for them, and from such attachment lust=20 develops, and from lust anger arises. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 28 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Sat, 28 Jan 2012 16:12:57 +0100
Jacob Carlborg <doob me.com> wrote:

 That doesn't stop others to work on DWT :)

Of course, but we don't need new forces joining & forking. Sincerely, Gour --=20 As fire is covered by smoke, as a mirror is covered by dust,=20 or as the embryo is covered by the womb, the living entity is=20 similarly covered by different degrees of this lust. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 28 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Mon, 6 Feb 2012 12:06:44 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 I'm working on this around the clock. If everything goes ok I might
 have the wxc wrapper done by the end of the week, but I'm not making
 any promises.

Thank you very much for your efforts!!
 I'd ask for a little bit of patience! Thanks. :)

No problem. We've all the patience of the world. ;) Sincerely, Gour --=20 The spirit soul bewildered by the influence of false ego thinks=20 himself the doer of activities that are in actuality carried out=20 by the three modes of material nature. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Feb 06 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Sat, 11 Feb 2012 20:45:06 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 542 classes are successfully generated (and buildable). 132+ are left
 to go.

Great!
 I've ran into a few issues where the interface files (from which the
 xml is built) are not in sync with the code. So there might be missing
 types definitions, or wrong types in methods, etc. But these can be
 worked around by adding extra type definitions in the generator (IOW
 there's no need to manually touch the .cpp files by hand).

I saw your messages in wx-dev and wonder what will be the way to keep those files in sync or, at least, detect there are inconsistencies?
 So wxc won't be done by this week, but it's progressing pretty good so
 far. Stay tuned..

All the best!! Sincerely, Gour --=20 Whatever action a great man performs, common men follow. And=20 whatever standards he sets by exemplary acts, all the world pursues. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Feb 12 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 15 Feb 2012 15:53:32 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 55 left. This is the harder part now since most of these left are
 interface mismatches and not codegenerator bugs. As you can see I've
 started filing reports with patches:

All glory to you!=20 I see that you're pushing constant stream of tickets to wx's Trac and many of them are even getting fixed. It seems that at the end, besides getting wxC & wxD, that even wxWidgets project itself will be greatly benefitted. My heartfelt gratitude for your work, Andrej. Sincerely, Gour --=20 One who is not connected with the Supreme can have neither=20 transcendental intelligence nor a steady mind, without which=20 there is no possibility of peace. And how can there be any=20 happiness without peace? http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Feb 15 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sat, 17 Mar 2012 02:29:26 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

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

Huh, Murphy in action?
 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.

Although we're still swamped into non-D computer issues, we'll find the time to be tester of your alpha release. Thank you, again, for your hard work! Sincerely, Gour --=20 O chastiser of the enemy, the sacrifice performed in knowledge=20 is better than the mere sacrifice of material possessions.=20 After all, O son of Pr=CC=A3th=C4=81, all sacrifices of work culminate=20 in transcendental knowledge. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Mar 16 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Sun, 12 Feb 2012 12:09:54 +0100
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

Hello Andrej,

 They have a tool called ifacecheck which compares the xml files
 generated by doxygen to the ones generated by using gccxml. I've used
 gccxml before. I haven't used ifacecheck yet but I'll give it a run.

just wonder if there are any news in regard to wxD bindings project? Sincerely, Gour --=20 Even if you are considered to be the most sinful of all sinners,=20 when you are situated in the boat of transcendental knowledge=20 you will be able to cross over the ocean of miseries. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
May 20 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Mon, 28 May 2012 19:55:09 +0200
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

Dear Andrej,=20

thank you very much for your response...

 I was busy doing another rewrite of my codebase since it was getting
 rather large and too specific for wxwidgets (lots and lots of doxygen
 workarounds). Doxygen files for handwritten interfaces are full of
 missing information so this wasn't going anywhere (I've made about 65
 fixes myself but this was already getting tiring

Yeah, I was following wx Trac for some time. :-)
 So right now I'm writing a generic C++ wrapper generator, not specific
 to wxwidgets.=20

Will it be usable for C libs as well?
 I can still extract type info from doxygen xml (as long
 as the xml was generated from actual header files unlike in
 wxwidgets), but I've also added support for gccxml (the cvs version is
 mostly up-to-date and it actually works for wxWidgets). I should be
 able to add support for clang later on, by outputting its typeinfo to
 xml.

It sounds very good.
 Since I've made the codegen generic enough it should be possible to
 output swig interface files instead of directly generating code. I'll
 experiment with this once I'm done with my own codegen feature.

Interesting...I'm really curious to try it out.
 Anyway I really have no idea whether I'll have wxWidgets bindings any
 time soon but I think I'll put the code generator online in a few
 weeks.=20

Thank you very much.
 Work is still in progress, need more time!

Do you envision that your generator could be used for something like Qt as well? (Personally, I'm more inclined to wxWidgets due to its native look, but D is really starving with stable & maintained GUI bindings.) Sincerely, Gour --=20 =46rom anger, complete delusion arises, and from delusion=20 bewilderment of memory. When memory is bewildered,=20 intelligence is lost, and when intelligence is lost=20 one falls down again into the material pool. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jun 07 2012
prev sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Fri, 8 Jun 2012 00:49:37 +0200
Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:

 I'll see about that. I'm not sure if doxygen works on C libraries, if
 it does then it's doable. Since now I support POD types there's
 nothing from stopping the generator to work on C libraries.

If/when you publish something, are you going to announce it in the 'announce' list 'cause I'll unsubscribe from the rest? For the moment, I'm postponing my intended usage of D and going (back) to Python, but would like to know if/when something is changing GUI-wise within D community... Sincerely, Gour --=20 Bewildered by the modes of material nature, the ignorant fully=20 engage themselves in material activities and become attached. But=20 the wise should not unsettle them, although these duties are inferior=20 due to the performers' lack of knowledge. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jul 07 2012