[Vm-dev] VM Maker: VMMaker.oscog-eem.493.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Nov 2 00:52:46 UTC 2013


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.493.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.493
Author: eem
Time: 1 November 2013, 5:29:24.503 pm
UUID: d37e2bf0-ffed-4789-be4e-2aa8a9630e47
Ancestors: VMMaker.oscog-eem.492

Revise TStmtListNode>>stream:endsWithAnyOf: top work around a
bug in UTF8TextConverter>>nextPut:toStream: which avoids
line-end conversion.

Move or remove teh references to Debug in enterCogCodePopReceiver
et al to prevent the Debug VM from aborting.

=============== Diff against VMMaker.oscog-eem.492 ===============

Item was changed:
  ----- Method: Cogit>>enterCogCodePopReceiver (in category 'debugging') -----
  enterCogCodePopReceiver
  	"This is a static version of ceEnterCogCodePopReceiverReg
  	 for break-pointing when debugging in C."
  	<api>
  	<inline: false>
- 	"(and this exists only to reference Debug)"
- 	Debug ifFalse: [self error: 'what??'].
  	"This exists only for break-pointing."
+ 	self cCode: [self realCEEnterCogCodePopReceiverReg]
+ 		inSmalltalk: [self ceEnterCogCodePopReceiverReg].
+ 	"(and this exists only to reference Debug)"
+ 	Debug ifFalse: [self error: 'what??']!
- 	self cCode: 'realCEEnterCogCodePopReceiverReg()'
- 		inSmalltalk: [self ceEnterCogCodePopReceiverReg]!

Item was changed:
  ----- Method: Cogit>>enterCogCodePopReceiverAndClassRegs (in category 'debugging') -----
  enterCogCodePopReceiverAndClassRegs
  	"This is a static version of ceEnterCogCodePopReceiverAndClassRegs
  	 for break-pointing when debugging in C."
  	<api>
  	<inline: false>
- 	"(and this exists only to reference Debug)"
- 	Debug ifFalse: [self error: 'what??'].
  	"This exists only for break-pointing."
+ 	self cCode: [self realCEEnterCogCodePopReceiverAndClassRegs]
- 	self cCode: 'realCEEnterCogCodePopReceiverAndClassRegs()'
  		inSmalltalk: [self ceEnterCogCodePopReceiverAndClassRegs]!

Item was changed:
  ----- Method: StackToRegisterMappingCogit>>enterCogCodePopReceiverArg0Regs (in category 'debugging') -----
  enterCogCodePopReceiverArg0Regs
  	"This is a static version of ceEnterCogCodePopReceiverArg0Regs
  	 for break-pointing when debugging in C."
  	<api>
  	<inline: false>
- 	"(and this exists only to reference Debug)"
- 	Debug ifFalse: [self error: 'what??'].
  	"This exists only for break-pointing."
+ 	self cCode: [self realCEEnterCogCodePopReceiverArg0Regs]
- 	self cCode: 'realCEEnterCogCodePopReceiverArg0Regs()'
  		inSmalltalk: [self ceEnterCogCodePopReceiverArg0Regs]!

Item was changed:
  ----- Method: StackToRegisterMappingCogit>>enterCogCodePopReceiverArg1Arg0Regs (in category 'debugging') -----
  enterCogCodePopReceiverArg1Arg0Regs
  	"This is a static version of ceEnterCogCodePopReceiverArg1Arg0Regs
  	 for break-pointing when debugging in C."
  	<api>
  	<inline: false>
- 	"(and this exists only to reference Debug)"
- 	Debug ifFalse: [self error: 'what??'].
  	"This exists only for break-pointing."
+ 	self cCode: [self realCEEnterCogCodePopReceiverArg1Arg0Regs]
- 	self cCode: 'realCEEnterCogCodePopReceiverArg1Arg0Regs()'
  		inSmalltalk: [self ceEnterCogCodePopReceiverArg1Arg0Regs]!

Item was changed:
  ----- Method: TStmtListNode>>stream:endsWithAnyOf: (in category 'testing') -----
  stream: aStream endsWithAnyOf: characters
  	"Answer if the given stream ends in any of the characters, ignoring whitespace."
  	| pos ch popped |
  	pos := aStream position.
  	aStream class = WriteStream ifTrue: "i.e. nested in StreamContents"
  		[[pos > 0] whileTrue:
  			[ch := aStream originalContents at: pos.
  			 ch isSeparator ifFalse:
  				[^characters includes: ch].
  			 pos := pos - 1].
  		 ^false].
  
  	popped := OrderedCollection new.
  	[pos > 0] whileTrue:
  		[ch := popped addFirst: (aStream position: pos - 1; peek).
  		 ch isSeparator ifFalse:
+ 			[popped notEmpty ifTrue: "it almost always is"
+ 				["*don't* use nextPutAll: to work around a bug in UTF8TextConverter
+ 				  >>nextPut:toStream: which avoids line-end conversion; sigh."
+ 				 popped do:
+ 					[:c| aStream nextPut: c]].
- 			[aStream nextPutAll: popped.
  			 ^characters includes: ch].
  		 pos := pos - 1].
+ 	"*don't* use nextPutAll: to work around a bug in UTF8TextConverter>>
+ 	 nextPut:toStream: which avoids line-end conversion; sigh."
+ 	popped do:
+ 		[:c| aStream nextPut: c].
- 	aStream nextPutAll: popped.
  	^false!



More information about the Vm-dev mailing list