mflatt
2018-11-28 03:09:50
Hash-traversal order is indeed part of the problem for deterministic machine-independent “bytecode”. There’s a second problem related to macros that use gensym
for local-variable names, which normally works out because those names are discarded; it’s easy enough to discard them when generating machine-independent output while keeping them for other backends (as an aid to debugging those backends).
notjack
2018-11-28 03:52:18
@mflatt is there a good reason for a macro to use gensym
for a variable name instead of using an interned symbol (or unreadable symbol) and a fresh scope?
mflatt
2018-11-28 03:52:56
Probably not, but some macros do.
notjack
2018-11-28 03:58:17
I think the docs for gensym
ought to warn against using it for identifiers then (maybe someday I’ll get around to a PR)