Efficient handling of code (was: News from SqueakFoundation)
stéphane ducasse
ducasse at iam.unibe.ch
Tue Jan 10 14:18:24 UTC 2006
Hi daniel
I like the idea. In fact Ginsu model was a bit like that.
The model was used except if a real entity was there so this goes in
that direction.
The code was accessed then lazily is present.
Stef
On 14 janv. 06, at 12:10, Daniel Vainsencher wrote:
> Avi Bryant wrote:
> > The single biggest bottleneck in using MC is the time taken to get
> > the source code and timestamp for a given CompiledMethod.
>
> If we want to solve this performance problem, I want to propose
> another
> line of attack - Model Extensions.
>
> One of the things that makes Smalltalks great for writing development
> tools, and therefore a great development environment, is that there is
> an always available model of the code. It is also very rich, we can
> ask
> it for time-stamps, source-code, parse-trees... unfortunately, we're
> seeing here that some of these extensions are slow to retrieve/
> compute.
>
> Andrew Black and I wrote some proposed patterns that attack this
> problem
> (we encountered it implementing one of the Traits browsers). The most
> important idea is that you should cache stuff only for those code
> model
> elements in which the user is "interested" (for example, some tool is
> open on them). The tricky thing is to do this so that the tools need
> almost zero modification for the cache to work efficiently.
>
> Applied to this problem, it would allow us to cache exactly the
> sources
> of classes being displayed in any browser, for example.
>
> So I would define the bounty as:
> 1. Make all the information about code that is stored only in the
> .sources/.changes file into proper Model Extensions
> 2. Adapt tools to use them where it matters, in particular in MC.
>
> Making parse trees into Model Extensions, for example, would make
> Smalllint significantly faster.
>
> BTW, Avi's proposal of having pluggable "source code sources" sounds
> useful regardless.
>
> A current version of the paper is at
> http://www.technion.ac.il/~danielv/ModelExtensions.pdf
>
> Daniel Vainsencher
>
> Avi Bryant wrote:
>> The single biggest bottleneck in using MC is the time taken to
>> get the source code and timestamp for a given CompiledMethod.
>> For this reason, and others - if we're offering bounties, I would
>> contribute some funding to a project to get rid of the dependence
>> on the .changes file and allow alternate source code storage
>> schemes (an acceptable start would be to simply keep all of the
>> method source as strings inside the image).
>> Avi
>
>
More information about the Squeak-dev
mailing list
|