Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.200.mcz
==================== Summary ====================
Name: Cog-eem.200 Author: eem Time: 28 August 2014, 3:11:42.019 pm UUID: 336d4bed-fa80-49c8-8634-0c9ec36f8b1d Ancestors: Cog-eem.199
SpurBootstrap: Fix ClassBuilder>>format:variable:words:pointers:weak: for non-pointer words.
=============== Diff against Cog-eem.199 ===============
Item was changed: ----- Method: SpurBootstrap class>>ClassBuilderPROTOTYPEformat:variable:words:pointers:weak: (in category 'method prototypes') ----- + ClassBuilderPROTOTYPEformat: nInstVars variable: isVar words: is32BitWords pointers: isPointers weak: isWeak - ClassBuilderPROTOTYPEformat: nInstVars variable: isVar words: isWords pointers: isPointers weak: isWeak "Compute the format for the given instance specfication. Above Cog Spur the class format is <5 bits inst spec><16 bits inst size> where the 5-bit inst spec is 0 = 0 sized objects (UndefinedObject True False et al) 1 = non-indexable objects with inst vars (Point et al) 2 = indexable objects with no inst vars (Array et al) 3 = indexable objects with inst vars (MethodContext AdditionalMethodState et al) 4 = weak indexable objects with inst vars (WeakArray et al) 5 = weak non-indexable objects with inst vars (ephemerons) (Ephemeron) 6 = unused 7 = immediates (SmallInteger, Character) 8 = unused 9 = reserved for 64-bit indexable 10-11 = 32-bit indexable (Bitmap) 12-15 = 16-bit indexable 16-23 = 8-bit indexable 24-31 = compiled methods (CompiledMethod)" | instSpec | instSpec := isWeak ifTrue: [isVar ifTrue: [4] ifFalse: [5]] ifFalse: [isPointers ifTrue: [isVar ifTrue: [nInstVars > 0 ifTrue: [3] ifFalse: [2]] ifFalse: [nInstVars > 0 ifTrue: [1] ifFalse: [0]]] ifFalse: [isVar + ifTrue: [is32BitWords ifTrue: [10] ifFalse: [16]] - ifTrue: [isWords ifTrue: [12] ifFalse: [16]] ifFalse: [7]]]. ^(instSpec bitShift: 16) + nInstVars!