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.


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