[Pharo-compiler] Human-parseable status report?

Jorge Ressia jorge.ressia at gmail.com
Wed Oct 6 16:37:35 CEST 2010


Hi Johan,

Sorry for the delay.

One problem with the old compiler is that modifying it is quite
complex. Takes a lot of time and is hard to understand. At least for
me, and I've been coding on it for quite some time.

Parsing, semantic analysis and code generation was mixed in the old
compiler into the parsing nodes.
Opal provides a simpler models of compilation.
- RB is used as the parsed nodes.
- The new closure analysis is implemented through a set of visitors
and not just as a big algorithm. And we try to keep the code as short
as possible.
- Opal also provides and Intermediate representation.
- Finally the code generation face is just another set of visitors.

you can use Opal for getting in the compilation process and modifying
it. You can hook your particular implementation at the semantic, IR or
code generation level.
An example of this would be Helvetia, which originally was developed
using the New compiler no named Opal. But when the new closure
analysis kicked in the compiler was obsolete and Helvetia moved to
another solution.

You can download Opal from http://hudson.lukas-renggli.ch/job/OpalCompiler/.
For using examples check the test cases which show you how to use the
different parts of the compiler.

- We are using the RBParser for parsing, so in order to modify this
part of the system you have to provide an extension of the RBParser
with your required extensions. And you can tell the opal Compiler to
use your implementation of the Parser.
This particular question goes into the direction of Helvetia. Is that so?

Cheers,




On Wed, Oct 6, 2010 at 4:22 PM, Johan Fabry <jfabry at dcc.uchile.cl> wrote:
>
> Guys? Anybody out there?
>
> On 04 Oct 2010, at 15:15, Johan Fabry wrote:
>
>> Hi all Opal hackers,
>>
>> I have been seeing a lot of commit messages going through this list and I am happy that the compiler is moving forward. But I cannot get a global picture based on this :-/ I have a bunch of ideas that I would like to implement (or have a student implement :-P ) in the following months, so I would like to know what the actual status of the compiler is.
>>
>> Concrete questions:
>> - What can it do, what can it not do?
>> - How do we load and use it ?
>> - How do we extend it to understand extra syntax, extra nodes to the parse tree?
>>
>> Thanks in advance!
>> --
>> Johan Fabry
>> jfabry at dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
>> PLEIAD Lab - Computer Science Department (DCC) - University of Chile
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-compiler mailing list
>> Pharo-compiler at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-compiler
>
> --
> Johan Fabry
> jfabry at dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
> PLEIAD Lab - Computer Science Department (DCC) - University of Chile
>
>
>
>
> _______________________________________________
> Pharo-compiler mailing list
> Pharo-compiler at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-compiler
>



-- 
Jorge Ressia
www.jorgeressia.com



More information about the Pharo-compiler mailing list