Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.56.mcz
==================== Summary ====================
Name: Cog-eem.56 Author: eem Time: 26 November 2012, 3:44:48.674 pm UUID: 8beb4f67-65f8-48a3-89f8-dcfb5311613c Ancestors: Cog-lw.55
Update Eliot's Type Checker to use willPushNil. Premature, but I'll forget otherwise and this code is essentially dormant.
=============== Diff against Cog-lw.55 ===============
Item was changed: ----- Method: ETC>>pushClosureCopyNumCopiedValues:numArgs:blockSize: (in category 'instruction decoding') ----- pushClosureCopyNumCopiedValues: numCopied numArgs: numArgs blockSize: blockSize "Push Closure bytecode. Either compute the end of the block if this is the block we're analysing, or skip it, adjusting the stack as appropriate." | blockClosure j | blockEndStack addLast: blockEnd. blockEnd := scanner pc + blockSize. contextStack addLast: currentContext. currentContext pc: scanner pc; pushClosureCopyNumCopiedValues: numCopied numArgs: numArgs blockSize: blockSize. blockClosure := currentContext top. currentContext := blockClosure asContext. 1 to: numArgs do: [:i| currentContext push: 'blkarg', i printString]. 1 to: numCopied do: [:i| currentContext push: (blockClosure at: i)]. j := numArgs + numCopied. + [scanner willPushNil] whileTrue: - [scanner nextByte = ParseNode pushNilCode] whileTrue: [scanner interpretNextInstructionFor: self. currentContext at: currentContext stackPtr put: 'blktmp', (j := j + 1) printString]
"ETC sendsForMethod: (ETC compiledMethodAt: #pushClosureCopyNumCopiedValues:numArgs:blockSize:)"!
vm-dev@lists.squeakfoundation.org