On 24 March 2011 21:52, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Thu, Mar 24, 2011 at 1:45 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
I like it! Â A great use for tuples. Â Not sure I like sots vs instanceVarables, but then I'm an old man ;) Have you thought about automatically creating accessors for byte data? Â I'm imagining
HeapField subclass: #ObjectHeaderLittleEndian   type: #Bits   fields: {     #classTag => 20.     #isPointers => 1 => #Boolean.     #isIndexable => 1 => #Boolean.     #slotSize => 8 => #Align => 8.     #identityHash => 20 => #Align => 32.     #isMarked => 1 => #Boolean.     #isForwarded => 1 => #Boolean.     #isWeak => 1 => #Boolean.     #isEphemeron => 1 => #Boolean. }     classSlots: {}    globals: ''    category: #'VMMaker-MemoryManager'
yes now we should probably avoid to have syntax in the class definition but in a description of the slots.
What means exactly: Â Â #identityHash => 20 => #Align => 32.
This is just an example but it means a 20-bit unsigned integer field aligned on a 32-bit boundary.  In the above  #isPointers => 1 => #Boolean would mean a 1 bit-field accessed as a boolean (a flag).  The above is close to the object header in the new GC I want to build.
kekeke... i like it when people see a direct benefits for themselves :)
For slots we did a first experience with marcus in 2008/9 where we show that we could get first class instanceVariable without speed penalties. We postpone our experience because it required a working new compiler and a complete rewrite of classBuilder. We want to be able to define     active value     hashTable     relationship     magritte like description     and a lot more
So if you have ideas or wishes let us know.
Stef
-- Best regards, Igor Stasenko AKA sig.