Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3245.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3245 Author: eem Time: 4 August 2022, 3:38:24.832997 pm UUID: bd2ce199-2ad9-4a5e-9e2d-a381d8d58de9 Ancestors: VMMaker.oscog-eem.3244
SmartSyntaxPlugins: Add StringOrNil as a convenience.
=============== Diff against VMMaker.oscog-eem.3244 ===============
Item was changed: ----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgValBlock:or:index: (in category 'coercing support') ----- ccgValBlock: unarySelector or: anInterpreterProxyTestingSelector index: index ^String streamContents: [:s| | a loadSelector | a := self stackAccessorFor: index. loadSelector := (anInterpreterProxyTestingSelector caseOf: { [#isWordsOrBytes:] -> [#firstIndexableField:]. + [#isBytes:] -> [#firstIndexableField:]. }). s nextPutAll: 'interpreterProxy '; nextPutAll: unarySelector; nextPutAll: ' = '; nextPutAll: a. s nextPutAll: ' ifTrue: [0 asVoidPointer] ifFalse: [interpreterProxy '; nextPutAll: loadSelector; space; nextPutAll: a; nextPut: $]]!
Item was added: + String subclass: #StringOrNil + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'VMMaker-SmartSyntaxPlugins'! + + !StringOrNil commentStamp: 'eem 8/4/2022 15:38' prior: 0! + Coercion specification for byte objects like ByteString, ByteArray, et al to void *, and nil to (void *)0!
Item was added: + ----- Method: StringOrNil class>>ccg:prolog:expr:index: (in category 'plugin generation') ----- + ccg: cg prolog: aBlockOrCTypeStringOrNil expr: aString index: index + + ^cg + ccgLoad: aBlockOrCTypeStringOrNil + expr: aString + asPtrFrom: nil + andThen: (cg ccgValBlock: #nilObject or: #isBytes: index: index)!
Item was added: + ----- Method: StringOrNil class>>ccgCanConvertFrom: (in category 'plugin generation') ----- + ccgCanConvertFrom: anObject + + ^anObject class isBits or: [anObject isNil]!
vm-dev@lists.squeakfoundation.org