On Tue, Nov 12, 2013 at 3:56 AM, Clément Bera <bera.clement@gmail.com> wrote:
 
Hey,

By the way as you are talking about Immediate objects tags and Spur's object representation, I read on other VMs reports that it is faster in overall performance to have pointers tagged with the xxx1 and SmallIntegers tagged with xxx0, because SmallIntegers arithmetics is then much faster. Is it possible to modify that easily in Cog to try ? Do you have to edit only a few methods such as #longAt:, #integerValueOf: and SmallInteger primitives ?

Another thing, I read in a java VM report that only 1% of objects needs a hash (other objects hash are unused), so their hash implementation took only 2 bits in the header, being:
01 -> no hash
10 -> hash is the object's address
11 -> hash is in a header extension
Therefore, on first access to the hash, hash bits switches from 01 to 10, and the GC on objects with 10 switches the hash bits from 10 to 11 and add a header extension with the old address of the object. But I know I'm not teaching you anything there. What I would like to know is why did you choose in Spur to have a 22bits hash in the header over this implementation, and will the hash in Spur be calculated at each instantiation or lazily ?

Thanks for any answers,

Regards, Clement



2013/11/12 Henrik Johansen <henrik.s.johansen@veloxit.no>
 

On 12 Nov 2013, at 11:55 , Henrik Johansen <henrik.s.johansen@veloxit.no> wrote:

nterest ~= time and: [skills] 

OT: I swear, missing parenthesis will be the death of me!






--
best,
Eliot