[Asdf-devel] syntax control

Faré fahree at gmail.com
Tue Apr 1 02:02:47 UTC 2014


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"




More information about the asdf-devel mailing list