[experimental][BCS][VM] Yet another block closure semantics implementation

ducasse ducasse at iam.unibe.ch
Wed Feb 20 19:53:24 UTC 2002


on 20/02/02 6:38 PM, Stephan Rudlof at sr at evolgo.de wrote:

> Hy Stef, hy Squeakers!
> 
> ducasse wrote:
>> 
>> hi Stefan
> 
> Stephan ;-)
> 
>> 
>> Have you look on how what you learned could be included in the work of
>> Anthony's
> 
> Not so far.
> 
>> because I do not really see the point to have now two
>> implementation of BC.
> 
> But it doesn't hurt ;-)
> 
>> Because even if the approach of Antony is more complex
>> it works so what would be the point to have a simple version.
> 
> If I would need BCS in a small separable area - e.g. sort blocks constructed
> in functional style - *now*, I would use my implementation...
> 
>> Especially
>> after the long emails sent by allen wirfs-brock on how to integrate BC.
> 
> I haven't had time to follow the discussion, since I wanted to come to some
> end with my implementation first.
> 
>> 
>> However when I see the speed gain with the version of Antony I know that I
>> would really like to use it.
> 
> This speed gain is the main reason, why I'm very modest regarding my
> implementation.
> What's unclear to me is from where the speed gain mainly comes, since there
> have been some speed improvements by Anthony, which are independent from BC
> semantics, too: I think of CGeneratorEnhancements-ajh.cs and manually
> crafted VM bytecode methods here.
> 
> There should be much room for getting a speed gain for my implementation,
> too...
> 
> 
> Some more remarks are following.
> 
> 
> Why have I worked at my implementation until results have been visible?
> -----------------------------------------------------------------------
> 
> - It has made fun!
> - To have a BCS implementation without waiting for others to finish theirs;
> - to push others to finish their implementation (last two motivations have
> decreased after Anthony has published his first results);
> - proving to myself, that I'm able to realize such an ambitious project;
> - I have announced that I'm working at BCS and there have been two
> alternatives:
> - to stop the project without any results, or
> - to work until some results;
> - I don't like unfinished projects;
> - understanding BCS in depth;
> - learning about many core aspects of Smalltalk/Squeak.
> 
> 
> Why have I published the results?
> ---------------------------------
> 
> In short: it's open source!
> 
> Longer:
> - I have changed many core classes of Squeak, so I had to publish - in the
> spirit of the SqueakL - my results.
> - Some properties of my implementation, which I see, may it make useful for
> others, e.g.
> - to use BCS with compatibility to current images,
> - to migrate to Anthony's solution.
> - Some properties of my implementation, which I do *not* see, may it make
> useful for others.
> - Proving to others, that I'm able to realize such an ambitious project ;-)
> 
> 
> What are my short term plans regarding BCS?
> -------------------------------------------
> 
> - To give others an idea about what I've done by updating the
> Draft for Block Closure Semantics for Squeak
> to fit the current implementation (coming the next 12 hours);
> - to make the Debugger more usable;
> - to increase the speed somewhat by selective cloning of BCSBlockContexts.
> 
> After that it could make sense to make real speed measurements.
> 
> 
> Postscript
> ----------
> 
> I know, that I'm late with this implementation, but hey: that's life! (and
> my retardation after Anthony's first concrete announcements)
> I know, that the chances to get it into the official distribution are low.
> I also know, that my chances to push this implementation to production code
> quality alone are low (especially compared with the efforts of many people
> to get production quality for Anthony's implementation and taking my limited
> time into account).
> 
> But in spite of this currently it continues to make fun to improve it...

I understand  but I think that you could help them pushing. I think that you
certainly learned something that others may like to know and working with
multiple people is much more fun. But this is still cool that you
implemented BC because I'm sure I could have made it myself.





More information about the Squeak-dev mailing list