[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