[ANN] META for Squeak
Bert Freudenberg
bert at freudenbergs.de
Tue May 22 22:21:59 UTC 2007
Just reposting with a proper subject and fixed link ;)
- Bert -
On May 22, 2007, at 23:03 , Yoshiki Ohshima wrote:
> Step and everybody,
>
>> did you publish it on squeaksource or place like that :)
>
> I finally uploaded a SAR package (sort of gave up on making
> mcz... sorry) and created a SqueakMap entry for the META
> implementation in Squeak.
>
> http://map.squeak.org/account/package/e3cdcb13-
> a408-49c8-9a97-5e9b8befa4ac
Actually, http://map.squeak.org/package/e3cdcb13-
a408-49c8-9a97-5e9b8befa4ac
> This package includes a sample implementation of Squeak Smalltalk-80
> parser that can generate a simple intermediate form, and then
> ParseNode and then Squeak bytecode. I spent some time to make sure
> this generates identical bytecode with the default Squeak compiler...
> Now, a test like following:
>
> ------------
> | m sq o |
> o := Morph.
> [o selectors do: [:sel |
> sq := SqueakParseNodeBuilder new encoder: (Encoder new init: o
> context: nil notifying: nil).
> m := (sq parse: (MSqueakParser2 match: (o sourceCodeAt: sel)
> string with: #method)) generate: #(0 0 0 0).
> (m decompileClass: o selector: sel) printString = (o decompile:
> sel) printString ifFalse: [self halt].
> ]] timeToRun
> ------------
>
> that compiles the source code, decompile the result, and compare it
> with the method compiled with the default compiler. For example, all
> the method of Morph seem to generate identical bytecode.
>
> My compiler doesn't do any fancy error handling... However, with
> the unlimited lookahead feature, it *should* be easier to write
> necessary syntax error detection in the grammar itself.
>
> -- Yoshiki
>
More information about the Squeak-dev
mailing list
|