[Bese-devel] UCW component API (Mr. MOP rears his ugly head)
Marco Baring
mb at bese.it
Mon Oct 4 17:51:48 UTC 2004
on the ucw--component-mop--0.3 branch you can now find a version of
the component protocol which uses the MOP and not the defcomponent
macro. what's changed:
1) the defcomponent macro is gone having been replaced by defclass
with a :metaclass of standard-component-class. what this means in
practice is that much of the work done by defcomponent is now
accessable to developers, as far as i'm concerned this alone
justifies the MOP's learning curve and the change in API.
2) the value passed to the :component slot option is no longer a form
but a type (and is not evaluated)
3) the value passed to the :backtrack slot option is no longer a
function but a function name (and is not evaluated)
4) user defined shared-initialize methods are safe (previously they
caused lots of important things to not happen).
5) the :entry-point defcomponent option is gone (not that (afaik)
anyone ever used this).
6) the :template class option is gone, having been replaced by a
template-component class and the method
template-component-environment (see the other mail for details).
comments? i haven't (and don't plan on) merging this with the dev
branch for a while. i'm going to use it a bit and see how it fells
before passing judgement (which is not to say i may re-introduce
defcomponent).
(brief arch tangent:
how do i get the ucw--component-mop--0.3 branch?
$ tla get ucw-2004 at common-lisp.net/ucw--component-mop--0.3
$ ln -s ucw--component-mop--0.3 ucw
)
happy hacking.
--
-Marco
Ring the bells that still can ring.
Forget your perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
More information about the bese-devel
mailing list