[Bese-devel] UCW-CORE cleanup/separation-of-concerns patch vol. 1

Attila Lendvai attila.lendvai at gmail.com
Wed Mar 28 22:37:00 UTC 2007


> Attached is the patch implementing actions and funcallable instances,
> and breaking just about everything else.

fyi, i've got Drew's patches and i'll set up a repo and keep on
cleaning up UCW. (the patch was too big for the list)

the final goal is to have a single UCW repo with clearly separated
pluggable systems that you can load on top of the lower layers
starting from a bare RERL.

first idea on module/layer boundaries (which may or may not work out
in practice):
 1. base RERL and session management
 2. components and yaclml macros
 3. call/cc features
 4. ajax features

(2 and 3 will probably refuse separation)

i think this change will pretty much foil backwards compatibility at
various points of the code, so it may or may not be a good time to
make long standing non-backward-compatible changes. any ideas?

i personally would use http://common-lisp.net/project/defclass-star/
(and use its automatically generated *-of and *-p accessors for :type
boolean slots). i really like the consistency it gives, but please
note that this would be a painful stab at backwards compatibility. so,
unless Marco seconds this idea i'll not do this.

i think it's a good time to drop everything whose sole purpose is
backward compatibility. anything off the top of your heads? i'm
planning to partially or completly remove the ucwctl code, because the
start.lisp way is a better alternative.

a good example for a possible cleanup is the dual use of the word
"action". one is the DEFACTION meaning and the other is the
REGISTER-ACTION meaning. to be honest i've never used DEFACTION. today
its :isolated feature is already supported by the lower layers of the
framework (where it fits better) and other then that it's just a mere
defmethod/cc that implicitly names its component arg as SELF. so, what
do you think about dropping it to resolve the above mentioned naming
confusion? maybe the other macros, that depend on and implicit SELF
variable (like CALL), should also be excluded from the standard UCW
api? questions always keep popping up about them...

opinions, ideas?

-- 
- attila

"- The truth is that I've been too considerate, and so became
unintentionally cruel...
 - I understand.
 - No, you don't understand! We don't speak the same language!"
(Ingmar Bergman - Smultronstället)


More information about the bese-devel mailing list