Introducing Huemul

huemul at losmolina.com.ar huemul at losmolina.com.ar
Sat May 26 20:39:40 UTC 2007


> 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 at 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
>>
>>
>>
>>
>>
>
>
>





More information about the Squeak-dev mailing list