[Vm-dev] VM Maker: VMMaker.oscog-eem.3245.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Aug 4 22:38:38 UTC 2022


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]!



More information about the Vm-dev mailing list