On Fri, May 7, 2010 at 11:00 PM, Tobias C. Rittweiler <email@example.com> wrote:
* the compiler macros for aref and aset seem to have debugging stuff
I know, it is waiting in my hard disk due to an interrupted commit. I will upload it when I solve the problems.
* with-clean-symbols is broken.. source code is not necessarily a tree,
so trying to use sublis on it is not enough.
Isn't with-clean-symbol just with-unique-symbols?
The purpose of this macro is not to be of general use. It is a simple hack that avoids using gensym / gentemp every time a macro is expanded and it does so only in the body of the macro.
(defmacro blah-blah (...)
`(let ((%array-index ,index))
(declare (:read-only %array-index))
,(expansion a '%array-index))))
this rewrites the inner body replacing %array-index with an uninterned symbol making the resulting expansion hygienic or "clean" in the sense that it will never collide with user's symbols. The body is always a tree or at least the places where we want to substitute the symbols are, and again, this is just for use in the compiler where I know that there will be no circular structures and nothing complicated, not a general tool.
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)