I would be pleased if you could take a look at:
http://www.guillermomolina.com.ar/huemul/index.php
There you will find information to download a demo of the Smalltalk implementation that translates st code directly to assembler, using Exupery as the final compiler phase.
Please let me know what you think.
Regards, Guille
Hi Guille,
Looks very interesting and ambitious!
I'd like to know more about what you've done with integers, and its possibilities for regular Squeak images. And about your exeperience with Exupery, too.
Cheers, Juan Vuletich www.jvuletich.org
huemul@losmolina.com.ar escribió:
I would be pleased if you could take a look at:
http://www.guillermomolina.com.ar/huemul/index.php
There you will find information to download a demo of the Smalltalk implementation that translates st code directly to assembler, using Exupery as the final compiler phase.
Please let me know what you think.
Regards, Guille
Hi Guille,
Looks very interesting and ambitious!
I'd like to know more about what you've done with integers, and its possibilities for regular Squeak images.
Hi Juan
If you mean what I've done with integers you are talking about the 0 tagging, this is the story: I had been developing Huemul with 1 tagged integers (as Squeak does) [1]. But I asked Bryce (from Exupery) what would be advantageous for Exupery to speed up things. He suggested to use 0 tagged ints. It is easier to say than implement. As I had no idea how that should be implemented, Klaus D. Witzel teach me how to do it, and then I implemented that in Huemul. The problem with 0 tagged int is not the arithmetic. There are similar (easier) tricks than in 1 tagged. The problem is that every oop becomes 1 tagged, and every piece of code that accesses an oop should be replaced with a relative to -1 displacement of the oop.
[1] Internally Squeaks represent Smallints shifting the number to the left and adding one. That is why it is called 1 tagged integer, because if it's last bit is 1, it is a Smallint, if it is not, it is an oop.
I am not an expert in Squeak internals, but I think that 0 tagged integers could be implemented in Squeak. But there is always the problem of braking backward compatibility.
Does this answer your question about integers?
And about your exeperience with Exupery, too.
Experience with expuery: Exupery has (at least) three layers,
one that translate Squeak bytecodes to an higher IR (intermediate representation). the second that translates higher to lower IR. And the final phase that translates to x86 machine code.
I don't use the first two layers, because I use Squeaks New Compiler AST's to generate the lower level IR of Exupery. I think I will implement the second layer in the future, because it does some optimizations. But may be I will do that when Exupery reaches version 1.0. I implemented a lot of inlining code for bools and integers, but i can't implement ALL the inlining that I want because I have a problem with Exupery's ColouringRegisterAllocator. But all I have to do is to switch off some inlining.
But Bryce is the expert, he will correct me if I am wrong. Cheers, Guille
Cheers, Juan Vuletich www.jvuletich.org
huemul@losmolina.com.ar escribió:
I would be pleased if you could take a look at:
http://www.guillermomolina.com.ar/huemul/index.php
There you will find information to download a demo of the Smalltalk implementation that translates st code directly to assembler, using Exupery as the final compiler phase.
Please let me know what you think.
Regards, Guille
Welcome to squeak-dev Guille. Awsome results you archieved! I can imagine a Squeak performig like that. Just awsome
cheers,
Sebastian
-----Mensaje original----- De: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org] En nombre de huemul@losmolina.com.ar Enviado el: Sábado, 26 de Mayo de 2007 11:52 Para: squeak-dev@lists.squeakfoundation.org Asunto: Introducing Huemul
I would be pleased if you could take a look at:
http://www.guillermomolina.com.ar/huemul/index.php
There you will find information to download a demo of the Smalltalk implementation that translates st code directly to assembler, using Exupery as the final compiler phase.
Please let me know what you think.
Regards, Guille
squeak-dev@lists.squeakfoundation.org