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: [''] }]!
vm-dev@lists.squeakfoundation.org