From: Sam Steingold <sds@gn...> - 2004-06-27 22:06:46
> * Denis Bueno <qohrab@...> [2004-06-26 15:25:33 -0400]:
> I'm working on the spec (as per Bruno's earlier suggestion), and it's
> current state is, and will continue to be, here:
> * http://churn.ath.cx/stuff/clisp-mp/description.txt
As I indicated before, any modification macro (setf &c) must acquire a
write lock first thing, before any reading.
(define-modify-macro mulf (mult) * "Multiply the arg by a number.")
should work OOTB, so DEFINE-MODIFY-MACRO macroexpansion must start with
a write lock acquisition.
So, the simple macroexpansion
(push a b) ==> (setq b (cons a b))
it should be something like
(setq b (cons a b)))
OTOH, SETQ being a special form, it may just always aquire write locks
to all symbols it will set before it starts to evaluate any of the forms.
(I don't think any of the above is non-trivial, just that if we are
going to write a detailed spec, these things are worth spelling out)
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
I want Tamagochi! -- What for? Your pet hamster is still alive!