MiniD binding library update, better compilation on Linux

Robert Fraser fraserofthenight at gmail.com
Mon Nov 19 01:22:19 PST 2007


Jarrett Billingsley Wrote:

> Haven't posted any announcements about my project here in a while, so now's 
> as good a time as any.
> 
> So since 1.0 came out in August, there have been a few major bugfixes, and 
> it's now technically at 1.1 because of a breaking change in the code 
> generation for class declarations to fix a supercall bug.  It's also had 
> some standard library functionality added, and some more useful stuff added 
> to the native API as well.
> 
> What I've been working on most recently is (1) getting the thing to compile 
> right under Linux with DSSS, and (2) rewriting the binding library to work 
> around DMDWin's symbol length issues (*shakes fist*).  Let's go through 
> them:
> 
> 1) Most of the "getting it to compile right under Linux" was actually "me 
> figuring out how the hell to get DSSS, GDC, and Tango to play nice on my 
> computer".  Once I'd done that, it wasn't too difficult.  What I got out of 
> this:
> 
> - Don't use 'dsss net install minid'.  It works, but since it blindly grabs 
> the newest repo revision, which I may have been messing with, you might 
> accidentally check out a nonfunctional or beta-y build of the library.  Much 
> better is for you to check out the MiniD trunk manually, then change into 
> its dir and do a 'dsss build && dsss install' there.  I have the latest 
> stable repo listed on the front wiki page of the MiniD DSource page (see 
> link at bottom).  In fact, for DSSS users on Windows, you should probably 
> use the same procedure.
> 
> - I have no idea how to get bu[il]d to work on Linux, with either GDC or 
> DMD.  And especially not with Tango.  I'm just completely stumped there.
> 
> 2) The binding library design I was using before was like Pyd's, where you 
> specify module/class members as variadic template parameter lists.  This was 
> bad news with DMDWin, as it uses the terribly limited OMF object format and 
> wrapping any module or class with more than ten or so members caused it to 
> fail miserably.  Now it uses a style much like the _old_ Pyd, where you have 
> a sort of "module/object under construction" which you add members to one at 
> a time using chained method calls.  Because the MiniD binding library wasn't 
> that complex to begin with I didn't have to sacrifice any features, so 
> everything's cool, it's just the syntax has changed.
> 
> Along with that change, I also added support for wrapping structs (which 
> appear as classes on the MiniD side).  There's also a lot more documentation 
> on this library.
> 
> The last bit of news is that I'm now working on MiniD 2, since the v1 spec 
> is frozen.  The development will probably follow a very similar trajectory 
> to D's -- v1 will be supported, and will have bugfixes and maybe stdlib 
> additions, but no changes to the language itself, while MD2 will be a moving 
> target until it, too, has its spec frozen.  You can see some of the ideas I 
> have for MD2 at the bottom of the Introduction page of the wiki (and feel 
> free to come up with suggestions of your own!).
> 
> The project page for MiniD is here:  http://www.dsource.org/projects/minid
> 
> There you'll find the language spec, MiniD stdlib docs, native API docs, 
> installation instructions, and other links. 
> 

Nice! I'm considering using MiniD for a side project, and knowing it's in active development and integrates easily with D is important.

I can't seem to find anything on MiniD 2 on the Wiki; where's the link?



More information about the Digitalmars-d-announce mailing list