Mulling Things Over

25
Mar

CLinNET -> RDNZL -> CL-CLR

I haven’t worked on CLinNet in quite a while, but a few months ago I started playing with RDNZL, a .NET/Common Lisp interface written by Edi Weitz. Very nice! But I found the need to use assembly-qualified type names, or to import types or assembly contents, to be fairly cumbersome when I worked with Direct3D. I discussed some of these things with Edi on the RDNZL developer’s mailing list and in private email exchanges, and figured out some improvements. But then I got interested in trying out some alternative reader syntaxes, different from RDNZL’s reader, so I ended up writing a layer on top of RDNZL to experiment with. I call it CL-CLR.

Ideally, I’d like the ideas from CL-CLR to be incorporated into RDNZL, at which point CL-CLR could go away. But some of them are significantly different from the way RDNZL works now, so I don’t know if that will happen. Edi’s too busy right now to give this much attention, although he’s interested. At his suggestion, I made the CL-CLR code available today via the mailing list so others could comment on it.

I’ve been using CL-CLR successfully for a few weeks to write the Direct3D rendering code for a simple physics simulator. I’m quite satsified with the way it came out. If Edi decides not to incorporate it in RDNZL, I’ll probably write a new low-level backend to replace RDNZL, because CL-CLR could be considerably faster than it is right now.

You can download the code at http://spookydistance.com/cl-clr.zip. It has a BSD-style license, and includes several of Microsoft’s Direct3D tutorials translated into Lisp. All of my testing has been with the personal edition of LispWorks so far, but CL-CLR should work with any implementation supported by RDNZL.

Leave a Reply

© 2017 Mulling Things Over | Entries (RSS) and Comments (RSS)

Design by Web4 Sudoku - Powered By Wordpress