[Vm-dev] VM Maker: VMMaker.oscog-eem.3217.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jul 19 05:45:03 UTC 2022
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:)!
More information about the Vm-dev
mailing list