The example catalogue is Smalltalk inside Swift string literals,
which no compiler reads: parse each one in the image and report the
syntax errors, the names nothing defines and the selectors nothing
implements. Play every patch offline. Draw the effects and a
lettered scene offscreen and write a PNG of each, since what goes
wrong in drawing is blank frames and mirrored glyphs.
Play a snippet in a canvas for a while and report what the process
holds as it goes, and let go of what the image lets go of.
Two triangles a letter, from an atlas the host rasterises -- Core
Text on macOS, Pango on GTK -- because what fonts an image can reach
is its own business, and the bundled one finds no scalable family.
The point size is in the units the rest of the interface uses and
the atlas is rasterised to match, so the quads land on whole pixels
rather than being scaled, which is what would make it soft.
A scene the image holds by handle and changes; the host draws it.
Each drawable carries its own vertex and fragment stages, its own
attribute layout, named uniforms, buffers, a transform and a
visibility flag -- described as objects rather than staged globals.
A value says what it should do, ramp or oscillate, rather than what
it is each frame: nothing crosses per frame, since the image has no
business in the frame path any more than in the audio callback.
Both renderers work it out on the clock that draws it.
Eight channels, each with its own patch and pattern on its own step
clock, mixed on the audio device's thread: storage allocated once,
reached through unsafe pointers, and a lock-free ring for control,
so nothing under the callback allocates, retains or locks.
The image performs a tune, names it, and sounds chords.
Even out the spacing between columns, fill the seam triangles, and
centre the collapse arrow. Complete as you type, and pare the empty
state back to what it needs to say.
Give GTK what the SwiftUI surface has: a playground of snippet cards
over a GtkSourceView that highlights Smalltalk, completes identifiers
and browses implementors and senders; the moldable inspector as
Miller columns with an overview strip, collapsed miniatures and a
thumb; graphs and charts drawn natively and drilled.
The VM boots at the top of main: the Spur heap wants a fixed base,
and by the time the first evaluate booted it lazily, GTK, WebKit and
cairo had reserved that region.