While the entire STEPS project is a bittersweet case of “imagine what could have been”, the greatest tragedy to me has always been Dan Amelang’s Gezira/Nile. This absolute gem of a project involved using Runnable Math (Nile) to code a fast and elegant 2D graphics stack (Gezira) on a par with Cairo (get it?), but … Continue reading The STEPS Gezira Rendering Formula: An Illustrated Guide
It’s tough acting as a cooperative scheduler with so many things starved for cycles! I have hope that one day, I’ll be able to ask AI to “develop this thread in the way I would do, if I wasn’t preoccupied with these other things”. For some things, the joy is in the discovering, but most … Continue reading Current Research Threads I Can Think Of
The “Chains of Meanings” tech report (Piumarta 2009) contains a nice application of the OMeta parsing DSL, or perhaps one of its precursors called IS. The task is to compile high-level abstract syntax (concretised as a Lisp Fibonnaci function) to x86 machine instructions. These tech reports, while immensely valuable, are seldom optimised for readability to … Continue reading Notes on “Chains of…
(I gave two talks at SPLASH this year. Besides my Onward! Essays submission, I was kindly invited to open the PAINT workshop on Programming Abstractions, Interactive Notations and Tools. Because it was not recorded, and there was no associated paper, I’m posting a lightly edited script here. This is my first iteration of these ideas; … Continue reading PAINT25 Invited Talk transcript: “Notational…
The following is my vision statement submitted in advance of the Substrates Workshop held in June as part of <Programming> 25, alongside numerous other vision statements from attendees. It’s been adapted from the LaTeX with minor referencing edits. Summary Introduction The topic of this workshop is software substrates. How does a substrate differ from a … Continue reading Substrates ’25 Vision…
(Previously: Part 1, Part 2) (EDIT 2025-08-05: formalising all this stuff for a paper made me realise that Id’s multi-parent mechanism probably does NOT quite suffice to model Self! Will correct in future, for now, be warned…) Id only makes one assumption about existing objects, which is that each somehow has a binder object (“vtable”). … Continue reading Ode to Id (Notes on COLA’s object model),…
So far, we have this: Our as-yet undefined terms are VtableVT, vtable_lookup, and vtable (yes, I’m sticking to the paper’s name instead of vtablevt_lookup, I’m still not sure about that). We have already made the decision to define a “method” as a JS function taking the receiver as its first argument. Defining the vtable function … Continue reading Ode to Id (Notes on COLA’s object model), Part 2
“Open, Reusable Object Models” (Piumarta & Warth 2006) is my most beloved paper of all time. I discovered STEPS half-way through my final year of undergrad and was immediately enthralled by the vision of programming presented for “COLAs“, half of which is described by this small tech report. I remember being impatient to finish my … Continue reading Ode to Id (Notes on COLA’s object model), Part 1
They said that, after my PhD, I should be an expert in my narrow topic. I suppose that’s true, if we’re talking about precisely the topic embodied in the dissertation. However, from the additional literature suggested to me during the corrections process, and my freer scope since submitting, I’ve been humbled to discover just how … Continue reading People Whose Research Programmes I May Need To…
When a DLL/shared object is loaded into process virtual memory, it competes for space with the process’ code and data, so its base address is knowable only at load-time. The DLL has metadata (“relocations”) describing the address references in its code, and the loader uses this metadata to go through all these references and patch … Continue reading Notes on the “late binding” of Virtual Memory,…