Dear all,
the macroexpand-all implementation on ACL uses the deprecated excl::walk, instead of the currently suggested excl::compiler-walk. This might seem a minor thing, but actually leads to wrong macroexpansion (i.e. macroexpansions that are very different from what ACL actually does if you compile the code). (Allegro bug [spr39340] leading to ACL 8.2 patch 'code/loop.001' was hard to debug because of this)
The attached trivial patch fixes the issue. Patch is against the swank currently in quicklisp, slime-20121125-cvs.
Yours, Utz
Original error message: --- CL-USER(3): (excl::walk 'foo) ; Autoloading for EXCL::WALK: ; Fast loading from bundle code/walker.fasl. ; Autoloading for EXCL::WALK: ; Fast loading from bundle code/walker.fasl. ; Autoloading for EXCL::WALK: ; Fast loading from bundle code/walker.fasl. Error: Attempt to load the walker module for excl::walk or excl::old-compiler-walk, which is deprecated in favor of the clos walker, excl::walk-form, and the newer version of excl::compiler-walk.
Restart actions (select using :continue): 0: Load it anyway 1: retry the load of walker.fasl 2: skip loading walker.fasl 3: Return to Top Level (an "abort" restart). 4: Abort entirely from this (lisp) process. ---
Utz-Uwe Haus lisp@uuhaus.de writes:
Dear all,
the macroexpand-all implementation on ACL uses the deprecated excl::walk, instead of the currently suggested excl::compiler-walk. This might seem a minor thing, but actually leads to wrong macroexpansion (i.e. macroexpansions that are very different from what ACL actually does if you compile the code). (Allegro bug [spr39340] leading to ACL 8.2 patch 'code/loop.001' was hard to debug because of this)
The attached trivial patch fixes the issue. Patch is against the swank currently in quicklisp, slime-20121125-cvs.
Applied, thanks.