Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3217.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3217 Author: eem Time: 18 July 2022, 10:44:50.604453 pm UUID: ce988ee7-0e69-4d23-b68c-5d95a8700a77 Ancestors: VMMaker.oscog-eem.3216
Oops! Fix a regression in the WordsOrNil type (not used by the standard plugins).
=============== Diff against VMMaker.oscog-eem.3216 ===============
Item was changed: ----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgValBlock:or:index: (in category 'coercing support') ----- + ccgValBlock: unarySelector or: anInterpreterProxyTestingSelector index: index - ccgValBlock: unarySelector or: keywordSelector index: index ^String streamContents: [:s| | a loadSelector | a := self stackAccessorFor: index. + loadSelector := (anInterpreterProxyTestingSelector caseOf: { + [#isWordsOrBytes:] -> [#firstIndexableField:]. - loadSelector := (keywordSelector caseOf: { - ['isWordsOrBytes:'] -> [#firstIndexableField:]. }). s nextPutAll: 'interpreterProxy '; nextPutAll: unarySelector; nextPutAll: ' = '; nextPutAll: a. s nextPutAll: ' ifTrue: [0 asVoidPointer] ifFalse: [interpreterProxy '; nextPutAll: loadSelector; space; nextPutAll: a; nextPut: $]]!
Item was removed: - ----- Method: SmartSyntaxPluginSimulator>>ccgValBlock:or: (in category 'simulation') ----- - ccgValBlock: unarySelector or: anInterpreterProxyTestingSelector - "unarySelector must be simple; nilObject, classArray etc. anInterpreterProxyTestingSelector must be a single keyword." - ^[:oop| - interpreterProxy success: ((interpreterProxy perform: unarySelector) = oop or: [interpreterProxy perform: anInterpreterProxyTestingSelector with: oop]). - oop]!
Item was added: + ----- Method: SmartSyntaxPluginSimulator>>ccgValBlock:or:index: (in category 'simulation') ----- + ccgValBlock: unarySelector or: anInterpreterProxyTestingSelector index: ignored + "unarySelector must be simple; nilObject, classArray etc. anInterpreterProxyTestingSelector must be a single keyword." + ^[:oop| + interpreterProxy success: ((interpreterProxy perform: unarySelector) = oop or: [interpreterProxy perform: anInterpreterProxyTestingSelector with: oop]). + oop]!
Item was changed: ----- Method: SmartSyntaxPluginValidationCodeGenerator>>ccgValBlock:or:index: (in category 'coercing support') ----- + ccgValBlock: unarySelector or: anInterpreterProxyTestingSelector index: index - ccgValBlock: unarySelector or: keywordSelector index: index ^String streamContents: [:s| | a | a := self stackAccessorFor: index. s nextPutAll: 'interpreterProxy '; nextPutAll: unarySelector; nextPutAll: ' = '; nextPutAll: a. + s nextPutAll: ' or: [interpreterProxy '; nextPutAll: anInterpreterProxyTestingSelector; space; nextPutAll: a; nextPut: $]]! - s nextPutAll: ' or: [interpreterProxy '; nextPutAll: keywordSelector; space; nextPutAll: a; nextPut: $]]!
Item was changed: ----- Method: WordsOrNil 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: #isWordsOrBytes: index: index)! - andThen: (cg ccgValBlock: #nilObject or: #isWordsOrBytes:)!
vm-dev@lists.squeakfoundation.org