D138 - An unnamed identifier is imported with a $ sigil

Status: decided Date: 2026-09-26

A symbol known only by its identifier is declared with a generated C name and an assembler label $<identifier>; the module writer passes the identifier through instead of hashing it. The census prints the sigil in its sym record. An identifier with no attributed library is not emitted.

Why: the import is the identifier; the name only ever existed to compute it. $ is legal in an ELF symbol and illegal in C, so it cannot collide with a real name, and printing it keeps an unnamed symbol from passing for a named one. An identifier resolves only from the library that exports it.

Rejected: inventing names. Printing the bare identifier - reads as a name.