Maybe secure DO macros against variable capture
18:58 < _death> phoe: another thing about screamer, I remember they warn about using stuff like
DOLIST/DOTIMES in nondeterministic functions, because it may not establish a new binding on
each iteration (it's implementation-defined).. but since they shadow CL symbols like DEFUN,
why not also shadow DOLIST and friends to provide just that?.. I've not tried it
While it's impossible to shield against this in the general case and it would be highly troublesome to do this for complex macros like loop or iterate, I think that the transformation for do and friends would be simple and possible.
Would exporting the fixed screamer:do and friends be worth it, be possible, and/or break anything that depends on them not being exported?
Not obvious to me, but sounds like worth a try.
I think at some point I was planning on adding a package SCREAMER-LISP, which one would use instead of CL. It would mostly just re-export things from CL, but provide its own definitions for things that need them, and possibly not export things that don't play well. (Though I think I was planning to have DEFUN be regular CL:DEFUN, and instead provide a separate DEFINE-ND-FUNCTION or similar as the equivalent of SCREAMER:DEFUN.)