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)