> it allows for undefined behavior, but UB is (mostly, as far as I know, I'm sure someone will jump in and correct me ;) ) off by default.
It's actually much more sophisticated than that. See:
https://www.lispworks.com/documentation/HyperSpec/Body/01_db...
would you happen to know whether the spec requires a default value for the safety optimization quality, when no declartions are given in the program? Or is it implementation-defined; could conforming implementations be unsafe by default.
No idea, sorry.
[UPDATE] There is a clue in section 3.3.1 Minimal Declaration Processing Requirements:
"A safety declaration that increases the current safety level must always be recognized. An implementation that always processes code as if safety were high may safely ignore this declaration."
To me this seems to imply that the default value of SAFETY is implementation-dependent.
I also found that passage. It's either implementation-defined or else they went incredibly out of their way to hide the requirements.