russell holt / projects


aka the RSL2 C++ interface


At Destiny I developed an application server from 1995-1998 which had a dynamic object oriented language called rsl. Implemented in C++, integration between the C++ and rsl layers was difficult.

I wrote the D/C++ layer to make this easier. It basically brought the facilities of a dynamic language to C++, including "smart" pointers, garbage collection, and object serialization.

A single object model could be shared between the rsl and C++ layers without data translation.

I developed tools to aid the development process, including a hierarchical template-based code generator, and automatic documentation generation.

In a number of ways, this was the high point of my technical career - in this hugely complex system, in production at a number of sites. I had written the entire thing and knew it inside and out, from top to bottom. I solved many tricky problems and completely owned this system. That's not an easy place to get to.

Since rsl is dead, so is this. But it's interesting to look at, and I am very proud of its design and implementation, including the weird-ass triangle notation to describe parallel class hiearchies. I devoured the C++91 ARM while writing it.

It all worked, and was used in production at several sites, but was killed before its time.

But yes, ultimately it's yet another LISP-like implementation in C++.