From 561428042eeb26eb0d5c05c3985bd4c8ecdcec1d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 15 Jun 2021 07:26:29 -0700 Subject: txr.1: Correction to compat note for 190. * txr.1: When writing up the compatibility notes for version 190, I missed the change that defmacro and defsymacro were switched away from instant evaluation by the macroexpander. That change introduced a regression which I just noticed, and this is noted also. --- txr.1 | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/txr.1 b/txr.1 index 80a3ada4..4a3b4309 100644 --- a/txr.1 +++ b/txr.1 @@ -82117,7 +82117,20 @@ symbol package didn't exist; the variable was initialized to the user package and so symbols introduced by application code were interned in the same package as the \*(TL library. -All these old behaviors are restored in compatibility +Until \*(TX 190, +.code defmacro +and +.code defsymacro +forms were evaluated immediately during macro expansion; in \*(TX 191 +or later, this eager evaluation was abandoned. +Unfortunately, this change introduced +a regression, causing the replacement form of a +.code defsymacro +to be macro-expanded at the time that form is traversed by the +expander, so that the macro is associated with the expanded version +of that form. This is something which had been fixed in 137. +It went unnoticed until much later, after the 262 release. +All the above old behaviors are restored in compatibility with version 190 or earlier. Finally, one more change after \*(TX 190 that is controlled by the compatibility mechanism was a critical redesign of the requirements -- cgit v1.2.3