[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