On Thu, Mar 24, 2011 at 11:43 AM, Camillo Bruni
<camillo.bruni@inria.fr> wrote:
We are currently working on first-class slots and layouts in pharo.
This required some changes in how the class definitions are printed:
=============================================
Object subclass: #Layout
� � � �layout: ObjectLayout
� � � �slots: {
� � � � � � � �#host => Slot.
� � � � � � � �#compactClassIndex => Slot.
� � � �}
� � � �classSlots: {}
� � � �globals: ''
� � � �category: #'Slot-Layout'
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'�
=============================================
I adapted the MCClassDefinition >> definitionString to output our new class definitions.
However squeaksource is not too happy with this and rewrites it completely using the default definition.
Local mcz files contain the new definition, mcz files loaded form squeaksources still the old definition.
Is there a way to still use squeaksources with our custom classes?
thanks
v(^_^)v
camillo