Jeffrey M. Barber

Tombstone

kitchen · zmlc2

Nov 2005 – Mar 2008 · age 23–26

What it was

The schema compiler at the center of the kitchen engine; its banner read "Fire : Version 1.5". It parsed a language that looked like a C++ header on purpose: classes, typed fields, pointers, sized arrays whose length field the author named, and note() strings carrying a category and a description. From that it emitted C++ classes with accessors, reflection, equality, an XML serializer and a flat-binary serializer that loaded by vtable transplant; a C# mirror whose properties carried property-grid categories and tooltips taken from the notes; load helpers; and a field map for the scripting compiler. About 630 lines of schema became roughly 28,000 lines of generated code, regenerated on every build and never edited by hand. It was in daily use until the week the engine stopped.

Wins, for the age

What it taught

Genealogy

Ancestors: Cauldron v2: the engine whose 74-class schema proved generation worked. Cauldron v2 ZMLC: the same compiler one version earlier, with its C API. ZMLC: the original header-shaped language and its flat binary format. Descendants: Goat Lamancha: schema-first generation again, with the schema written as C#. Inferno: its header-parsing grammar, the starting point before inferno owned its language. Kitchen Pantry: generated classes that became the asset tool's property pages. Part of: Kitchen.

Epitaph

Here lies zmlc2. Six hundred lines of schema in, twenty-eight thousand lines of engine, editor and script glue out, from a compiler older than the engine it served.