On Feb 16, 2012, at 9:56 PM, Stéphane Ducasse wrote:
Henrik
I'm sure that if we would be in face of a browser together I would get 100% what you are saying now I hate mail but I'm not 100% clear about what you say. :) Could you make a list of the steps that we could follow? I will sit and discuss with camillo next week. I would like to have a todo so that I can do item after item⦠Because I want to get rid of the old code.
Stef
Replace FSFileStream & subclasses' references with something like an FSStreamProvider, where FSStreamProvider: - delegates an API for returning different classes to use for #readStream, #writeStream etc. to a #currentProvider method. For thread-safe switching on case-by-case basis: - implement FSStreamProvider#currentProvider as thread-local lookup with FSStreamProvider CurrentProvider class var as backup. - implement FSStreamProvider #useDuring: aBlock installing self in the thread-local var during execution of aBlock. For use in Pharo: - Implement a FSLegacyStreamProvider, set as CurrentProvider in Pharo. (Should return MultiByteFileStream for most instances) For modularizing the current FSFileStreams: - Revert compatibility fixes extending the API, move them to an independent package,and implement an FSAnsiStreamProvider or some such in that package. Cheers, Henry