Re: [Pharo-project] Ocean (was Re: Less plugins, more Smalltalk code! (was: Re: Pharo 1.1.1 OneClickCogVm))
Noury,
One of the other aspects that I find important is elementary efficiency.
A lot of stream related code in Smalltalk is not efficient, the actual data is copied around like crazy, turning it from a stream to a collection and then back into a stream multiple times. For Zinc HTTP Components I made a lot of effort to make it possible to read data from a socket stream in true streaming fashion (instead of just returning a byte array). Now, the idea was then that for example JPEGReadWriter>>#nextImage would work transparaently on that raw stream. Sadly, the code in JPEGReadWriter and friends just reads everything into an array before it starts to work !
Doing a #nextPutAll: <some byte array> should really try never to copy the array. Similary, a #next: <count> into: <some byte array> should similary write directly into the given array. What I see in the current SocketStream is <censored/> ;-)
This is why we implemented our own SocketStream in PostgresV3.
what is the license?
It's MIT, but it's not a general purpose SocketStream. sniff
regarding streaming frameworks, has anyone looked at http://code.google.com/p/xtreams/ ? the podcasts on it sounded interesting. cheers, Mike On Tue, Oct 5, 2010 at 5:02 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Noury,
One of the other aspects that I find important is elementary efficiency.
A lot of stream related code in Smalltalk is not efficient, the actual data is copied around like crazy, turning it from a stream to a collection and then back into a stream multiple times. For Zinc HTTP Components I made a lot of effort to make it possible to read data from a socket stream in true streaming fashion (instead of just returning a byte array). Now, the idea was then that for example JPEGReadWriter>>#nextImage would work transparaently on that raw stream. Sadly, the code in JPEGReadWriter and friends just reads everything into an array before it starts to work !
Doing a #nextPutAll: <some byte array> should really try never to copy the array. Similary, a #next: <count> into: <some byte array> should similary write directly into the given array. What I see in the current SocketStream is <censored/> ;-)
This is why we implemented our own SocketStream in PostgresV3.
what is the license?
It's MIT, but it's not a general purpose SocketStream. sniff
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On 06 Oct 2010, at 00:49, Michael Roberts wrote:
regarding streaming frameworks, has anyone looked at http://code.google.com/p/xtreams/ ? the podcasts on it sounded interesting.
Indeed, does sound/looks cool. But Nile is cool too, and that is already in our image. Not sure how to use it in practive though. Sven
See also hijacked http://www.squeaksource.com/XTream.html borrowing some of the ideas, but somehow less extreme. Most packages should now load in Pharo. Nicolas 2010/10/6 Sven Van Caekenberghe <sven@beta9.be>:
On 06 Oct 2010, at 00:49, Michael Roberts wrote:
regarding streaming frameworks, has anyone looked at http://code.google.com/p/xtreams/ ? the podcasts on it sounded interesting.
Indeed, does sound/looks cool.
But Nile is cool too, and that is already in our image. Not sure how to use it in practive though.
Sven
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On 06 Oct 2010, at 08:48, Nicolas Cellier wrote:
See also hijacked http://www.squeaksource.com/XTream.html borrowing some of the ideas, but somehow less extreme. Most packages should now load in Pharo.
Hi Nicolas, I have been looking at the ESUG 2010 slides & google code project pages of xstreams and I must say that I like this very much. Your code on SS does indeed load in Pharo 1.1. 8 tests fail out of 37 with errors that I think are probably fixable. I am browsing it now. Now my question is, first, do you have some write up somewhere explaining what you did and why, and second, what is the current state of your project and what are your future plans/goals ? Thx, Sven
participants (4)
-
Michael Roberts -
Nicolas Cellier -
Stéphane Ducasse -
Sven Van Caekenberghe