On Jun 5, 2004, at 11:45 AM, Marcus Denker wrote:
Yes, but that would be totaly transparent for the user (e.g. the developer). A dynamic optimizing system always de-optimizes as soon as you try to look harder (e.g with the debugger).
So all the magic of AOStA is pretty much invisible. On the other hand: Having a Jitter around by default means that we don't care about how bad the non-optimized code is wrt. to execution. We could use the AST directly. (Or better, a compressed version like franz' Slim Binaries...).
Yes, I've been thinking about this as well. There's an interesting paper on compressing syntax trees using the abstract grammar as a statistical model, which I'm going to implement at some point. http://www.ics.uci.edu/~cstork/ire2001.pdf. It's designed so that most of the work is done by the compressor - decompression is fast.
The first step would be to create a binary format for distributing Squeak code that would be faster to load than fileOuts - ie, decompress the AST and generate byte code without having to do any parsing. Beyond that would be modifying the interpreter to execute the binary format directly.
So "CompiledMethods are flattened parsetrees" does not mean that you would use the cm we have now as the AST, but use the AST as the compiled methods...
Yes, "Parse trees are structured CompiledMethods". I'd love to see Squeak executing ASTs with the hotspots optimized by Exupery.
Colin