I’ve been doing some work with code generation recently. It’s kind of messy. You need to build a tree in memory of objects that represent various types of syntax for the language you’re generating code for. You have to think inside-out from the way you normally write code, since you’re creating it in logical tree form, not in line form.
You have a base class that represents any code-generation object, and a bunch of classes that descend from it. In order to manage things properly, you’re likely to have TList<TCodegenObject> and TStack<TCodegenObject> collections (or, worse still, non-generic TObjectList and TObjectStack containers) all over the place. But TCodegenObject, like TObject, is an abstract base class that you only instantiate descendants of.
Continue reading ‘ClassType field should not be “magic”’ »
A couple days ago, I got an email from a member of the AnyDAC dev team. They make a set of professional data-access components for Delphi, and they’re looking for feedback and publicity. They were willing to give me a free license, worth about $400, if I’d take the time to evaluate their components, provide some feedback and suggestions, and write up a few reviews on here. Apparently they’re particularly interested in getting some focus on their in-memory dataset, DatS, which isn’t documented particularly well and doesn’t get used much. Continue reading ‘I think I just got sponsored’ »
This time last year, I was getting ready to take a plane down to California to attend the DelphiLive! conference, where I’d been invited to speak about developing games in Delphi. This year, it’s been pushed back a few months, to be held in late August instead of mid-May, and I just now got the acceptance email from the organizers. Looks like I’ll be presenting two sessions this year: “Using extended RTTI to make your life easier,” and “Game engine development in Delphi.”
Continue reading ‘Going to DelphiLive! again.’ »