I would address the problem with a compatibility layer like
     'foo' reading withLegacyProtocol
You have many options to add a protocol
- simply add the protocol at XTReadStream/XTWriteSTream roots
- just create another Xtreams wrapper,
- use a Trait

I wish I had lightweight traits, I mean with traitified classes
created on the fly, with a simple naming like XTCollectionReadStream +
TLegacyStreamProtocol in case we have to debug it, because this way I
could also keep a clean Xtreams hierarchy in parallel with legacy at
very low maintenance costs.

However, this is going to be some work for sure, here is a rough measurement:

(Stream withAllSubclasses inject: Set new into: [:allSelectors :aClass
| allSelectors addAll: aClass selectors; yourself]) sorted size
-> 594

(XTReadStream withAllSubclasses , XTWriteStream withAllSubclasses
inject: Set new into: [:allSelectors :aClass | allSelectors addAll:
aClass selectors; yourself]) sorted size
-> 119

You certainly don't want to support 594 compatibility messages...

Nicolas

2012/6/14 Igor Stasenko <siguc...@gmail.com>:
> On 14 June 2012 08:33, Stéphane Ducasse <stephane.duca...@inria.fr> wrote:
>> Tx
>>
>> now there is a difference between adjustments and fully new API and I would 
>> have preferred adjustments.
>>
>> Stef
>
> IMO, Xtreams design is simply superior.
> But i agree, we cannot throw existing streams out.. too much things
> tied to them, and rely
> on using stream protocols. :(
>
> --
> Best regards,
> Igor Stasenko.
>

Reply via email to