Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.604.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.604 Author: eem Time: 4 February 2014, 10:24:54.015 am UUID: 3dedfc9d-e8c2-47ea-bb78-5dde624ade77 Ancestors: VMMaker.oscog-eem.603
Rewrite allocateLargestFreeChunk to skirt Slang limitation.
=============== Diff against VMMaker.oscog-eem.603 ===============
Item was changed: ----- Method: SpurMemoryManager>>allocateLargestFreeChunk (in category 'free space') ----- allocateLargestFreeChunk "Answer the largest free chunk in the free lists." + | freeChunk next | + "would like to use ifNotNil: but the ^next inside the ^blah ifNotNil: confused Slang" + freeChunk := self findLargestFreeChunk. + freeChunk ifNil: [^nil]. + "This will be the node, not a list element. Answer a list element in preference." + next := self fetchPointer: self freeChunkNextIndex ofFreeChunk: freeChunk. + next ~= 0 ifTrue: + [self storePointer: self freeChunkNextIndex + ofFreeChunk: freeChunk + withValue: (self fetchPointer: self freeChunkNextIndex ofFreeChunk: next). + ^next]. + self unlinkSolitaryFreeTreeNode: freeChunk. + ^freeChunk! - ^self findLargestFreeChunk ifNotNil: - [:freeChunk| | next | - "This will be the node, not a list element. Answer a list element in preference." - next := self fetchPointer: self freeChunkNextIndex ofFreeChunk: freeChunk. - next ~= 0 ifTrue: - [self storePointer: self freeChunkNextIndex - ofFreeChunk: freeChunk - withValue: (self fetchPointer: self freeChunkNextIndex ofFreeChunk: next). - ^next]. - self unlinkSolitaryFreeTreeNode: freeChunk. - freeChunk]!
vm-dev@lists.squeakfoundation.org