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

commits at source.squeak.org commits at source.squeak.org
Tue Jul 19 05:08:43 UTC 2022


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

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

Name: VMMaker.oscog-eem.3216
Author: eem
Time: 18 July 2022, 10:08:31.750837 pm
UUID: 6a3c37f5-cdcd-4eda-874c-cd4ea7f427a2
Ancestors: VMMaker.oscog-eem.3215

Fix some simulaiton issues. Have the LocalePlugin also simulate primitiveLanguage, primitiveCurrencySymbol, and primitiveCountry. Fix printing of strings containing nulls (CObjectAccessor>>#coerceTo:sim: crept into the previous commit; it belongs here; apologies).

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

Item was added:
+ ----- Method: CameraPlugin>>cameraInit (in category 'simulation support') -----
+ cameraInit
+ 	<doNotGenerate>
+ 	^false!

Item was added:
+ ----- Method: LocalePlugin>>sqLocCurrencySymbolSize (in category 'simulation support') -----
+ sqLocCurrencySymbolSize
+ 	<doNotGenerate>
+ 	^Locale current primCurrencySymbol size!

Item was added:
+ ----- Method: LocalePlugin>>sqLocGetCountryInto: (in category 'simulation support') -----
+ sqLocGetCountryInto: aString
+ 	<doNotGenerate>
+ 	self strncpy: aString _: Locale current primCountry _:3!

Item was added:
+ ----- Method: LocalePlugin>>sqLocGetCurrencySymbolInto: (in category 'simulation support') -----
+ sqLocGetCurrencySymbolInto: aString
+ 	<doNotGenerate>
+ 	| moolah |
+ 	moolah := Locale current primCurrencySymbol.
+ 	self strncpy: aString _: moolah _: moolah size!

Item was added:
+ ----- Method: LocalePlugin>>sqLocGetLanguageInto: (in category 'simulation support') -----
+ sqLocGetLanguageInto: aString
+ 	<doNotGenerate>
+ 	self strncpy: aString _: Locale current primLanguage _:3!

Item was changed:
  ----- Method: SpurMemoryManager>>printStringDataOf:on: (in category 'debug printing interpreter support') -----
  printStringDataOf: oop on: aStream
  	<var: 'aStream' type: #'FILE *'>
  	| i n limit |
  	<var: 'buffer' type: #'char *'>
  	<var: 'wideBuffer' type: #'unsigned int *'>
  	(self isBytesNonImm: oop)
  		ifTrue:
  			[| buffer byte |
+ 			 buffer := self cCoerce: (self alloca: 256 * 4) to: #'char *'.
- 			 buffer := self alloca: 256 * 4.
  			 n := i := 0.
  			 limit := (self numBytesOfBytes: oop) min: 256.
  			 [n < limit] whileTrue:
  				[byte := self fetchByte: i ofObject: oop.
  				 i := i + 1.
  				 (byte < 32 "space" and: [byte ~= 9 "tab"])
  					ifTrue:
  						[buffer at: n put: $<. n := n + 1.
  						 (byte = 10 or: [byte = 13])
  							ifTrue:
  								[byte = 10
  									ifTrue: [buffer at: n put: $L; at: n + 1 put: $F]
  									ifFalse: [buffer at: n put: $C; at: n + 1 put: $R].
  								 n := n + 2]
  							ifFalse:
  								[byte >= 10 ifTrue:
  									[buffer at: n put: byte // 10 + $0 asInteger. n := n + 1].
  								 buffer at: n put: byte \\ 10 + $0 asInteger. n := n + 1].
  						 buffer at: n put: $>. n := n + 1]
  					ifFalse: [buffer at: n put: byte. n := n + 1]].
  			 '%.*s%s\n' f: aStream printf: { n. buffer. (self numBytesOfBytes: oop) > limit ifTrue: ['...'] ifFalse: [''] }]
  		ifFalse:
  			[| wideBuffer word |
  			 self assert: (self isWordsNonImm: oop).
+ 			 wideBuffer := self cCoerce: (self alloca: 1024 * 4) to: #'int *'.
- 			 wideBuffer := self cCoerce: (self alloca: 1024 * 4) to: 'int *'.
  			 n := i := 0.
  			 limit := (self lengthOf: oop) min: 256.
  			 [i < limit] whileTrue:
  				[word := self fetchLong32: i ofObject: oop.
  				 i := i + 1.
  				 (word < 32 "space" and: [word ~= 9 "tab"])
  					ifTrue:
  						[wideBuffer at: n put: $<. n := n + 1.
  						 (word = 10 or: [word = 13])
  							ifTrue:
  								[word = 10
  									ifTrue: [wideBuffer at: n put: $L; at: n + 1 put: $F]
  									ifFalse: [wideBuffer at: n put: $C; at: n + 1 put: $R].
  								 n := n + 2]
  							ifFalse:
  								[word >= 10 ifTrue:
  									[wideBuffer at: n put: word // 10 + $0 asInteger. n := n + 1].
  								 wideBuffer at: n put: word \\ 10 + $0 asInteger. n := n + 1].
  						 wideBuffer at: n put: $>. n := n + 1]
  					ifFalse: [wideBuffer at: n put: word. n := n + 1]].
  			 '%.*ls%s\n' asWideString f: aStream wprintf: { n. wideBuffer. (self lengthOf: oop) > limit ifTrue: ['...'] ifFalse: [''] }]!



More information about the Vm-dev mailing list