ClementBera uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1846.mcz
==================== Summary ====================
Name: VMMaker.oscog-cb.1846 Author: cb Time: 26 April 2016, 9:34:11.962387 am UUID: 1722de25-959a-41b4-ab92-b31c62fa8ec0 Ancestors: VMMaker.oscog-eem.1845
Added convenience methods to simulate new sista primitive allMachineCodeMethods (Maybe it shouldn't be a sista primitive ?).
Fixed the primitive so that it shorten the array answered instead of answering an array ending with many nil.
=============== Diff against VMMaker.oscog-eem.1845 ===============
Item was changed: ----- Method: CoInterpreterPrimitives>>primitiveAllMethodsCompiledToMachineCode (in category 'method introspection primitives') ----- primitiveAllMethodsCompiledToMachineCode <export: true> <option: #SistaCogit> + | arrayObj nEntries maxNumEntries | - | arrayObj | argumentCount ~= 0 ifTrue: [^self primitiveFailFor: PrimErrBadNumArgs]. + maxNumEntries := cogit numMethods + objectMemory minSlotsForShortening. + arrayObj := objectMemory + instantiateClass: (objectMemory splObj: ClassArray) + indexableSize: maxNumEntries. - arrayObj := objectMemory instantiateClass: (objectMemory splObj: ClassArray) indexableSize: cogit numMethods. arrayObj ifNil: [^-1]. + nEntries := cogit methodsCompiledToMachineCodeInto: arrayObj. + (nEntries < maxNumEntries) ifTrue: + [objectMemory shorten: arrayObj toIndexableSize: nEntries]. - cogit methodsCompiledToMachineCodeInto: arrayObj. self pop: 1 thenPush: arrayObj!
Item was changed: ----- Method: CogMethodZone>>methodsCompiledToMachineCodeInto: (in category 'method zone introspection') ----- methodsCompiledToMachineCodeInto: arrayObj <api> - <returnTypeC: #void> <var: #cogMethod type: #'CogMethod *'> | cogMethod methodIndex | methodIndex := 0. cogMethod := cogit cCoerceSimple: baseAddress to: #'CogMethod *'. [cogMethod < self limitZony] whileTrue: [cogMethod cmType = CMMethod ifTrue: + [objectMemory + storePointerUnchecked: methodIndex + ofObject: arrayObj + withValue: cogMethod methodObject. - [objectMemory storePointerUnchecked: methodIndex ofObject: arrayObj withValue: cogMethod methodObject. methodIndex := methodIndex + 1]. cogMethod := self methodAfter: cogMethod]. + ^ methodIndex !
Item was added: + ----- Method: SistaCogit>>methodsCompiledToMachineCodeInto: (in category 'simulation only') ----- + methodsCompiledToMachineCodeInto: arrayObject + <doNotGenerate> + ^methodZone methodsCompiledToMachineCodeInto: arrayObject!
Item was added: + ----- Method: SistaCogit>>numMethods (in category 'simulation only') ----- + numMethods + <doNotGenerate> + ^methodZone numMethods!
vm-dev@lists.squeakfoundation.org