On Thu, 5 Feb 2015, Marcus Denker wrote:


On 05 Feb 2015, at 10:04, Marcus Denker <[email protected]> wrote:


On 04 Feb 2015, at 22:04, Levente Uzonyi <[email protected]> wrote:

A single parser is a nice goal, but performance is top priority for Shout, 
because it should do it's job real-time. When it starts lagging behind, then 
people just turn it off, because it doesn't help them.
Can those parsers (SHRBTextStyler and a Smalltalk parser written using 
PetitParser) parse an average method in less than 20ms on an average machine?

I have not yet benchmarked it… PetitParser as it is is too slow, but we will 
soon have a faster version (factor 10).

We should do some benchmarks. For using, it seems ok. With a fast machine + 
JIT, which does not say much of course.
(there is a setting 'AST based coloring’ in Pharo3 and Pharo4, but it is turned 
off by default).

One thing that is nice with the AST is that it can be used for other things, 
too. e.g. in Pharo we have a menu that is defined
by the AST nodes and structural navigation in the editor.


Rebuilding the whole AST after every keystroke is possible, but keeping it real-time is a bit challenging.

I would love to see an editor, which works on the AST directly - aka it maps the source code to AST nodes, and just updates the smallest possible subtree at each keystroke. Implementing such editor has it's challenges ofc, like typing a single character can invalidate the whole code, but the editor should keep the AST somehow in that case too.


Another way to see it: How would the original Smalltalk be designed if they 
would have had 4GB RAM in 1978?

What fascinates me still is that Smalltalk used the existing resources (even 
building their own machines) to an
extreme, while today we are obsessed to find reasons why we can not do anything 
that makes the system
slower or use more memory than yesterday. And that even with resources growing 
every year…

This is why we e.g. now have a meta object describing every instance variable 
in Pharo. I am sure there are people
who will see these ~7000 objects as pure waste… while I would say that we have 
already *now* the resources to be
even more radical.

I think this is a different thing. Improvements are always welcome, as long as they don't step on your toes.

About Slots: I don't see their advantages yet (other than bitfields, but those are so rare in Smalltalk that I implement them causes no trouble. And they are just an optimization over using multiple fields.).

Levente


        Marcus


Reply via email to