[Vm-dev] VM Maker: Cog-eem.56.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Nov 26 23:45:02 UTC 2012

Eliot Miranda uploaded a new version of Cog to project VM Maker:

==================== 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.
  		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:)"!

More information about the Vm-dev mailing list