From: Denis B. <db...@st...> - 2004-06-26 19:26:28
|
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 The ChangeLog entries will be kept here: * http://churn.ath.cx/stuff/clisp-mp/ChangeLog And the toplevel listing of all the stuff is here: * http://churn.ath.cx/stuff/clisp-mp/ Right now all I have a (hopefully-close-to-exhaustive) listing of the destructive operations in Common Lisp; list of objects; list of SETF-able accessors and stuff; and a detailed "argument" about how the implementation of MT for HASH-TABLEs will work. Tell me what you think. -- Denis Bueno PGP: http://pgp.mit.edu:11371/pks/lookup?search=0xA1B51B4B&op=index (got-lisp-p) |
From: Sam S. <sd...@gn...> - 2004-06-27 22:06:46
|
> * Denis Bueno <qo...@fg...g> [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 Good start. As I indicated before, any modification macro (setf &c) must acquire a write lock first thing, before any reading. Note that (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)) is WRONG. it should be something like (with-write-lock (b) (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/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> I want Tamagochi! -- What for? Your pet hamster is still alive! |