The transient marker said nothing outside the module points into it once the call returns - true of its text, silent about its data. A string literal is emitted into the evaluating module's own image and an expression may store one anywhere: C-x C-e on (set msg "tuned") left a program global pointing into the mapping the agent was about to drop. The next thunk can be mapped at the same address, so what comes back is silent garbage rather than a fault, and nothing in the compiler refused it. The third condition is that the module emitted no string constants. Then there is nothing in its image anyone could still be pointing at. One that did keeps its mapping, which costs a page and is the bargain every redefinition already makes. Found by reading jank, which has met the neighbouring hazard from the other side: its notes are explicit that nothing is ever unloaded, and the one place Flan makes an exception is the one place the rule had a hole.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%