>> startupLevel
>>        ^ 100
>>
>> method
>>
> err, but you still need to have a method, where this pragma will be located :)

Yes, in the startup method itself.

The #startUp, #shutDown, #cleanUp protocol is quite strange. They are
all defined as empty methods in Behavior, but for #startUp and
#shutDown a registration is required. This registration is missing in
some cases. #cleanUp does not require a registration. In all cases
cleanUp just delegates to one or more other methods that do the actual
cleanup.

What I propose is to use pragmas for that. This allows to drop all the
existing implementors of #startUp, #shutDown, and #cleanUp and give
them intention revealing names. Also I envision getting rid of these
ugly boolean flags that are never quite clear what they do and what is
the default. I imagine the following 6 annotations:

   <systemStartup: aPriorityInteger>
   <systemResumption: aPriorityInteger>

   <systemShutdown: aPriorityInteger>
   <systemSuspension: aPriorityInteger>

   <systemCleanup: aPriorityInteger>
   <systemCleanupAgressive: aPriorityInteger>

This means for example that HandMorph
class>>#clearCompositionWindowManager could simply look likes this:

HandMorph class>>clearCompositionWindowManager
        <systemStartup: 100>

        CompositionWindowManager := nil

The #startUp and the code that registers and unregisters from the
startup list is no longer necessary.

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to