[Pharo-project] Opal ?
Hi, I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler. I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ? Thanks, Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler -- Damien Cassou http://damiencassou.seasidehosting.st "Lambdas are relegated to relative obscurity until Java makes them popular by not having them." James Iry
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now. And the current work is done on top of 2.0, this you can find here: http://smalltalkhub.com/#!/~MarcusDenker/Opal with the jenkins here: https://ci.lille.inria.fr/pharo/job/OpalCompiler/ Marcus -- Marcus Denker -- http://marcusdenker.de
ok On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
And the current work is done on top of 2.0, this you can find here:
http://smalltalkhub.com/#!/~MarcusDenker/Opal
with the jenkins here:
https://ci.lille.inria.fr/pharo/job/OpalCompiler/
Marcus
-- Marcus Denker -- http://marcusdenker.de
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
On Jun 21, 2012, at 2:50 PM, Jean Baptiste Arnaud wrote:
ok
On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
The problem is that the code generated should be correct... its almost there... some days... Marcus -- Marcus Denker -- http://marcusdenker.de
Le 21/06/2012 15:06, Marcus Denker a écrit :
On Jun 21, 2012, at 2:50 PM, Jean Baptiste Arnaud wrote:
ok
On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry<thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
The problem is that the code generated should be correct... its almost there... some days...
So, how is the state of Opal? My old code insert nodes in the compiler generated ast, but the way the nodes are build in the pharo compiler makes it more difficult. If there is a reasonable chance the code generation is correct, I can try. For now, I've just discovered there is a dependency on petit parser. I'll break my 1.4 image soon :-) Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
ConfigurationOfOpalCompiler from SmalltalkHub is better suited for current Pharo, btw On Jun 21, 2012, at 3:12 PM, Goubier Thierry wrote:
Le 21/06/2012 15:06, Marcus Denker a écrit :
On Jun 21, 2012, at 2:50 PM, Jean Baptiste Arnaud wrote:
ok
On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry<thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
The problem is that the code generated should be correct... its almost there... some days...
So, how is the state of Opal? My old code insert nodes in the compiler generated ast, but the way the nodes are build in the pharo compiler makes it more difficult.
If there is a reasonable chance the code generation is correct, I can try.
For now, I've just discovered there is a dependency on petit parser. I'll break my 1.4 image soon :-)
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On Jun 21, 2012, at 3:13 PM, Esteban Lorenzano wrote:
ConfigurationOfOpalCompiler from SmalltalkHub is better suited for current Pharo, btw
On Jun 21, 2012, at 3:12 PM, Goubier Thierry wrote:
Le 21/06/2012 15:06, Marcus Denker a écrit :
On Jun 21, 2012, at 2:50 PM, Jean Baptiste Arnaud wrote:
ok
On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry<thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
The problem is that the code generated should be correct... its almost there... some days...
So, how is the state of Opal? My old code insert nodes in the compiler generated ast, but the way the nodes are build in the pharo compiler makes it more difficult.
If there is a reasonable chance the code generation is correct, I can try.
For now, I've just discovered there is a dependency on petit parser. I'll break my 1.4 image soon :-) The dependency is not just for Decompiling ?
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
On Jun 21, 2012, at 3:25 PM, Jean Baptiste Arnaud wrote:
For now, I've just discovered there is a dependency on petit parser. I'll break my 1.4 image soon :-)
The dependency is not just for Decompiling ?
yes, just an experiment... -- Marcus Denker -- http://marcusdenker.de
On Jun 21, 2012, at 3:06 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:50 PM, Jean Baptiste Arnaud wrote:
ok
On Jun 21, 2012, at 2:28 PM, Marcus Denker wrote:
On Jun 21, 2012, at 2:22 PM, Damien Cassou wrote:
On Thu, Jun 21, 2012 at 2:01 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
I think it is there: http://www.squeaksource.com/OpalCompiler
There is a problem: this is not finished. The problem is that it is not really useful right now.
As I understand (stop me if i am wrong) , it doesn't really matters, the idea is to put annotation on an ast for inject code. I think it is usable in state for that use. Maybe not for full remplacement of the current compiler. But i thinks, it is painless to implement with opal comparing to the energy needed for change the old one.
The problem is that the code generated should be correct... its almost there... some days...
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
Marcus
-- Marcus Denker -- http://marcusdenker.de
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated. Opal depends on Petit Parser, which depends on RB, where it should stop (I hope). Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On 21 June 2012 14:22, Goubier Thierry <thierry.goubier@cea.fr> wrote:
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated.
Opal depends on Petit Parser, which depends on RB, where it should stop (I hope).
PetitParser does not depend on RB. It depends on AST-Core and AST-Compiler, which are (small) _parts_ of RB. frank
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Le 21/06/2012 15:28, Frank Shearar a écrit :
On 21 June 2012 14:22, Goubier Thierry<thierry.goubier@cea.fr> wrote:
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated.
Opal depends on Petit Parser, which depends on RB, where it should stop (I hope).
PetitParser does not depend on RB. It depends on AST-Core and AST-Compiler, which are (small) _parts_ of RB.
Thanks. It's hard to guess which subsets of RB are needed when you encounter an error with some RB prefixed classes when loading a package. Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On Jun 21, 2012, at 3:22 PM, Goubier Thierry wrote:
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated.
It seem the final objective is to send something to Esug ?
Opal depends on Petit Parser, which depends on RB, where it should stop (I hope).
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
On Jun 21, 2012, at 3:30 PM, Jean Baptiste Arnaud wrote:
On Jun 21, 2012, at 3:22 PM, Goubier Thierry wrote:
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated.
It seem the final objective is to send something to Esug ?
No, the final objective is to finish. Marcus -- Marcus Denker -- http://marcusdenker.de
Le 21/06/2012 15:30, Jean Baptiste Arnaud a écrit :
On Jun 21, 2012, at 3:22 PM, Goubier Thierry wrote:
Le 21/06/2012 15:16, Jean Baptiste Arnaud a écrit :
I understand but the logic itself will not change. The design is done. The used case too. But it is not perfect but you put a lot of energy on it. M. Goubier want to to port its code, i think it should try, and if some problem happen raise the issue. Instead to try and spend week on the old compiler. The experiment match perfectly with the opal Spirit. And we have someone motivated to perform a experiment on Opal, don't say no.
And you need to be motivated.
It seem the final objective is to send something to Esug ?
If I make it in time, yes. Ok, it seems I shouldn't try the RecompileTests then? So far, I have only the IRDecompilerTests which are failing. Thierry
Opal depends on Petit Parser, which depends on RB, where it should stop (I hope).
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com <mailto:jbaptiste.arnaud@gmail.com>
-- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On Jun 21, 2012, at 3:36 PM, Goubier Thierry wrote:
It seem the final objective is to send something to Esug ?
If I make it in time, yes. Ok, it seems I shouldn't try the RecompileTests then? No, I don't use them right now...
So far, I have only the IRDecompilerTests which are failing.
That is the one that depends on PetitParser (experiment, not needed will be done after the rest works). State of things: 1) Backend. BC->IR->BC seem ok. - IRComparer new compareImage shows 16 differences, mostly pop-combining and unused code after return skipped, seems good. (this compares #abstractSymbolic on the bytecode level) - IRComparer new compareImageFrameSize 10 methods have smaller framesize , 2 a larger one. This needs to be checked. 2) AST to IR AST-IR-BC - OCRecompiler new inspect; recompileImage shows 10 problems. 2 are undeclareds, one is related to primitive errors (which is not yet supported). Rest are wrong stack depth on jump targets in the backend. - CompilerComparer new compare: Morph (this compares #abstractSymbolic on the bytecode level) ==> 39 differences, need to be analyzed (same for the whole image). 3) Missing: IR->AST, mapping BC to text offset needs to be checked, and then integration into the system. Error handling, things like that. On the good side, OCRecompiler new doInstallMethods; recompileImage seems to work. (did not yet run too many tests, first the rest of the problems need to be fixed). Marcus -- Marcus Denker -- http://marcusdenker.de
Le 21/06/2012 16:01, Marcus Denker a écrit :
On Jun 21, 2012, at 3:36 PM, Goubier Thierry wrote:
It seem the final objective is to send something to Esug ?
If I make it in time, yes. Ok, it seems I shouldn't try the RecompileTests then? No, I don't use them right now...
So far, I have only the IRDecompilerTests which are failing.
That is the one that depends on PetitParser (experiment, not needed will be done after the rest works).
State of things:
1) Backend.
BC->IR->BC seem ok.
- IRComparer new compareImage shows 16 differences, mostly pop-combining and unused code after return skipped, seems good. (this compares #abstractSymbolic on the bytecode level)
- IRComparer new compareImageFrameSize 10 methods have smaller framesize , 2 a larger one. This needs to be checked.
2) AST to IR AST-IR-BC - OCRecompiler new inspect; recompileImage shows 10 problems. 2 are undeclareds, one is related to primitive errors (which is not yet supported). Rest are wrong stack depth on jump targets in the backend. - CompilerComparer new compare: Morph (this compares #abstractSymbolic on the bytecode level) ==> 39 differences, need to be analyzed (same for the whole image).
Ok, this is where I may see things. To insert things in the AST, I can subclass the RBProgramNodeVisitor ?
3) Missing: IR->AST, mapping BC to text offset needs to be checked, and then integration into the system. Error handling, things like that.
On the good side,
OCRecompiler new doInstallMethods; recompileImage
seems to work. (did not yet run too many tests, first the rest of the problems need to be fixed).
Marcus
-- Marcus Denker -- http://marcusdenker.de
Thanks! Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
On Jun 21, 2012, at 4:38 PM, Goubier Thierry wrote:
Ok, this is where I may see things.
To insert things in the AST, I can subclass the RBProgramNodeVisitor ?
Or you could use the RBParseTreeRewriter... -- Marcus Denker -- http://marcusdenker.de
Le 25/06/2012 09:35, Marcus Denker a écrit :
On Jun 21, 2012, at 4:38 PM, Goubier Thierry wrote:
Ok, this is where I may see things.
To insert things in the AST, I can subclass the RBProgramNodeVisitor ?
Or you could use the RBParseTreeRewriter...
Well, I used the RBProgramNodeVisitor : worked perfectly, since the original code was based on VW's ProgramNodeVisitor. Reimplemented part of the RBParseTreeRewriter rewritter, in fact, but then it avoided reimplementing all the rewritting rules as RB patterns and blocks. So far, Opal works fine, thanks for the work done. Except for one thing : recompiling an instrumented method erase the original source in the method (and force a decompilation); I could not find how to force it to still use the original (non modified) source. Regards, Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
hi. JB ^^ You can execute this code for install: Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load. (Smalltalk at: #ConfigurationOfOpalCompiler) load. A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: []. For put annotation on AST maybe marcus can explain better than me. On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Why is this example bad ? Ben On Jun 21, 2012, at 2:40 PM, Jean Baptiste Arnaud wrote:
hi. JB ^^ You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Is not a real example it is a foo bar example, so bad. On Jun 21, 2012, at 2:44 PM, Benjamin wrote:
Why is this example bad ?
Ben
On Jun 21, 2012, at 2:40 PM, Jean Baptiste Arnaud wrote:
hi. JB ^^ You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
So, dummy, not bad Ben On Jun 21, 2012, at 2:51 PM, Jean Baptiste Arnaud wrote:
Is not a real example it is a foo bar example, so bad.
On Jun 21, 2012, at 2:44 PM, Benjamin wrote:
Why is this example bad ?
Ben
On Jun 21, 2012, at 2:40 PM, Jean Baptiste Arnaud wrote:
hi. JB ^^ You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Who care ? On Jun 21, 2012, at 2:54 PM, Benjamin wrote:
So, dummy, not bad
Ben
On Jun 21, 2012, at 2:51 PM, Jean Baptiste Arnaud wrote:
Is not a real example it is a foo bar example, so bad.
On Jun 21, 2012, at 2:44 PM, Benjamin wrote:
Why is this example bad ?
Ben
On Jun 21, 2012, at 2:40 PM, Jean Baptiste Arnaud wrote:
hi. JB ^^ You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
When I read "a bad example" I expect something that will break my system ... Ben On Jun 21, 2012, at 2:58 PM, Jean Baptiste Arnaud wrote:
Who care ? On Jun 21, 2012, at 2:54 PM, Benjamin wrote:
So, dummy, not bad
Ben
On Jun 21, 2012, at 2:51 PM, Jean Baptiste Arnaud wrote:
Is not a real example it is a foo bar example, so bad.
On Jun 21, 2012, at 2:44 PM, Benjamin wrote:
Why is this example bad ?
Ben
On Jun 21, 2012, at 2:40 PM, Jean Baptiste Arnaud wrote:
hi. JB ^^ You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
On Jun 21, 2012, at 2:01 PM, Goubier Thierry wrote:
Hi,
I'd like to port an old smalltalk code tracer framework of mine to Pharo (was developped on the VisualWorks compiler) and I didn't manage to port it easily on the Pharo smalltalk compiler.
I met J-C. Arnaud in Rennes yesterday and he told me I should try the Opal compiler. So, how do I load Opal in a Pharo 1.4 image ?
Thanks,
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
Le 21/06/2012 14:40, Jean Baptiste Arnaud a écrit :
hi. JB ^^
Sorry :-(
You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
Thanks.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
Ok. I'll try to find my way through the package first. Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
marcus has right. If the new repository is here maybe grap it. MCHttpRepository location: 'http://smalltalkhub.com/mc/MarcusDenker/Opal/main' user: '' password: '' So : Gofer new url: 'http://smalltalkhub.com/mc/MarcusDenker/Opal/main'; package:'ConfigurationOfOpalCompiler'; load. (Smalltalk at: #ConfigurationOfOpalCompiler) load. On Jun 21, 2012, at 2:53 PM, Goubier Thierry wrote:
Le 21/06/2012 14:40, Jean Baptiste Arnaud a écrit :
hi. JB ^^
Sorry :-(
You can execute this code for install:
Gofer new squeaksource: 'OpalCompiler'; package:'ConfigurationOfOpalCompiler'; load.
(Smalltalk at: #ConfigurationOfOpalCompiler) load.
Thanks.
A bad example : an instance of OCClosureCompiler will return you the method node. OCClosureCompiler new compile: 'selector ^1+1' in: TestObject classified: 'examples' notifying: nil ifFail: [].
For put annotation on AST maybe marcus can explain better than me.
Ok. I'll try to find my way through the package first.
Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
Best Regards Jean Baptiste Arnaud jbaptiste.arnaud@gmail.com
participants (7)
-
Benjamin -
Damien Cassou -
Esteban Lorenzano -
Frank Shearar -
Goubier Thierry -
Jean Baptiste Arnaud -
Marcus Denker