|
From: Marcus D. <de...@ac...> - 2004-04-09 17:37:34
|
Am 09.04.2004 um 19:00 schrieb Dan Ingalls:
>> [Anthony's closure work]
>>> Is this a modified St-80 Compiler, or one based on SmaCC?
>>
>> SmaCC.
>
> Hi, Guys -
>
> Just anticipating the release process...
>
> 1. I haven't played with SMACC. I assume it's good. I gather Marcus
> has also used this to do some fun work with Parse Trees.
>
I did some experiments regarding scripting syntax last year. That is,
my Squeak accept happily a method like
function testForIn2() {
var a,c,i;
a = new OrderedCollection;
a.add(1);
a.add(2);
c = 0;
for (i in a) { c += i; }
this.assert(c == 3);
}
or
to exampleTurtle
repeat 36 [repeat 4 [
fd 90
rt 90
] rt 10 ]
end
or
def testWhile():
a = 1
while a < 10:
a = a + 1
b = a
self.assert(b == 10)
> 2. Is there a pretty clean package that converts a current Squeak to
> use SMACC with decent reliability?
>
Yes. Anthony provides all the changesets needed.
I used this while hacking on AOStA, no problems so far.
The new compiler is installed in a way that it can be disabled via a
preference.
We need to really put some work into cleaning up the old compiler and
make everything use
the new parsetrees.
The SmaCC-based compiler uses the RB Parsenodes. They are really nice
and a clear improvement, IMHO.
But some changes are needed to make everthing use them. We need to make
both Slang and eToys to work
with the new Parsenodes instead of the old ones. (I think Anthony
already did some work on Slang).
> 2a. Is this a part of Anthony's Closure package?
>
Yes.
Parts of the closure package already were added to 3.7 (e.g. the
IRBuilder). I need to make a
package with all the rest.
> 3. Is there general agreement on this list that SMACC is the way to
> go?
>
I vote for this.
> ... If so, then I want to work with the Guides to get SMACC into
> 3.8alpha asap, so that it's not an added cause of confusion later,
> when we merge the other (lower-level) V4 stuff with 3.8.
>
Ok. I'l help with that.
Marcus
--
Marcus Denker de...@ac...
|