Login  Register

Re: Microframeworks was: Re: Thank you so much for Pharo 3.0

Posted by philippeback on Oct 23, 2014; 8:14am
URL: https://forum.world.st/Microframeworks-was-Re-Thank-you-so-much-for-Pharo-3-0-tp4786128p4786160.html

On Thu, Oct 23, 2014 at 9:36 AM, Thierry Goubier <[hidden email]> wrote:
Le 23/10/2014 09:18, [hidden email] a écrit :

On Thu, Oct 23, 2014 at 8:42 AM, Thierry Goubier
<[hidden email] <mailto:[hidden email]>> wrote:


How long is long?

900 nodes in the AST seems to be the limit for the type of method SmaCC generates (cascading ifTrue:ifFalse:).

Other limits exist (number of literals, for example). Unless you generate automatically some code, it's hard to hit them. Once you generate automatically, it's easy to hit them :P

Now, the point is to see all that as a stream, cut methods at
appropriate places and compile code under a WAComponent subclass.

Yes. But then you need some kind of syntax to mark the start of a method. Change sets and dolphin packages use !! markers.

I don't know about SmaCC but I think I can do something with PetitParser
and Smalltalk compile:

It's all done with RBParser. Since you're parsing Smalltalk, it's easier to do it that way (and probably a bit faster). And you're also playing with the AST, so you want to fall back to a well defined API for that AST (and visitors, and the like).

Extending RBParser with a scheme to parse multi-methods files could be convenient.

Unless you fall back on a variant of a changeset.

Thanks for the pointers, I'll look into that.

In the meantime, I put together a starting point (using your merge driver as an inspiration ;-) ).


clone it,
make
./bubble --app blah.bubble

(if one is on centos6.5, make centos)

Check the makefile, I made everything load from filetree and rename the image with another name than a bland "Pharo.image"

Phil




Thierry