C-x C-e is the case that repeats - you evaluate expressions constantly and redefine functions occasionally - and it is also the one case where unloading is safe. The thunk is called directly by flan_reload_call rather than through a cell, and it takes no registry slot, so once it has returned nothing points into its text and the value it produced has been copied out. The module says so with flan_reload_transient and the agent dlcloses it. Skipping the registry matters for more than tidiness: the table holds 4096 names and an expression evaluated in a loop would have exhausted it. A module that publishes a body can never make this claim, since leaving a pointer behind is its whole purpose. Measured on a running program: sixteen expression evaluations retain zero mappings, each redefinition retains three, permanently and correctly.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%