Dear CL hackers,
compile-file and load already bind *readtable*, which means that for
asdf itself to bind *readtable* should be a no-op in the common case,
and a BIG save for those who want to switch the readtable at the REPL.
In its current state, the syntax-control branch does just that, but it
also defines several mechanisms by which the user can do more than
that:
1- by setting the *cl-reading-hook* to something else than
call-with-shared-readtable
you can do less (setting the hook to just call-function), or more
(setting it to call-with-asdf-syntax or even
call-with-standard-io-syntax).
2- by defining per-system variables with :variables ((a . ainitfun) (b
. binitfun) ...)
where ainitfun is evaluated by call-function which allows for easy constants
such as nil or t, or late-reading of the function definition as in
"(lambda () future-package:*variable*)"
3- by defining methods on call-with-action-context (o c thunk),
which should be chained according to the pattern
(defmethod call-with-action-context ((o my-op) (c my-comp) thunk)
(call-next-method o c #'(lambda () (some-wrapping around
(call-function thunk)))))
so that we don't have to define a magic method combination which
might not work on all implementations.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
You live and learn. Or you don't live long.
— Robert Heinlein, "Time Enough For Love"