[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