[Seaside-dev] question on value of startup and shutdown lists being required

Dale Henrichs dale.henrichs at gemstone.com
Sun Mar 23 22:04:13 UTC 2008


Dale Henrichs wrote:
> You know, if we use a platform-specific extensions package, we can 
> eliminate SeasidePlatformSupport - I don't know if that would be a 
> good or bad thing. It is convenient to manage things in one spot, but 
> given a  thorough test suite (which is already in place for most if 
> not all of the base class extensions) it isn't necessary....95% of the 
> references to SeasidePlatformSupprt messages are from a single method 
> or a single class.
>
> If we do eliminate SeasidePlatformSupport, then the platform Core 
> package (except for Continuations) can be loaded after Seaside Core.
>
> What do you think?
>
> Dale
I went ahead and took a first cut at eliminating SeasidePlatformSupport 
and committed the following packages:

    * Seaside-Core-dkh.82
    * Seaside-Squeak-Continuation-dkh.1
    * Seaside-Squeak-Core-dkh.34
    * Seaside-Tests-dkh.70

After the sweep, there are 18 methods remaining in WASqueakPlatform:

    * 12 have no senders (ignoring tests) and I assume that they are
      used in the Development packages or not at all
    * 3 involve file system access and it is probably worth building a
      'standard' file system support class for Seaside to encapsulate
      the remaining methods plus some of the others.
    * That leaves 3 methods that need 'special attention', because they
      are sent from more than one spot (compiler access for
      WAFileLibrary and WAFileSystem), stackDepth for WAFlowTest (so it
      can't go into a core platform package), and semaphoreClass used by
      three different classes

After going through this excercise, I'm convinced that 
SeasidePlatformSupport can easily be completely eliminated.

Also by removing SeasidePlatformSupport, I can see that WAFileLibrary 
(and friends) and WAFileSystem would probably benefit from having a 
focussed platform-specific implementation rather than being somewhat 
cobbled together (in no way am I demeaning the effort that's gone into 
these classes, but referring to the somewhat crippling  constraint of 
using SeasidePlatformSupport for portability). For example, the 
#beMutable trickery does nothing for GemStone (method temps are not 
saved), so we always end up converting the byteArray, but I digress.

Anyway, I'm interested in feedback ...

Dale


More information about the seaside-dev mailing list