[Vm-dev] VM Maker: VMMaker.oscog-eem.2169.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Mar 20 16:45:49 UTC 2017
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2169.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2169
Author: eem
Time: 20 March 2017, 9:45:05.711372 am
UUID: a16519ac-b854-4fbe-8526-8b6ce4df6d1d
Ancestors: VMMaker.oscog-eem.2168
Cogit:
Remember to test the ABI before including the relevant API-specific cogit file.
=============== Diff against VMMaker.oscog-eem.2168 ===============
Item was changed:
----- Method: Cogit class>>generateCodeStringForCogitDotC (in category 'translation') -----
generateCodeStringForCogitDotC
"Generate a skeletal cogit.c that includes the relevant cogitFOO.c
for the appropriate subclasses of CogAbstractInstruction."
^String streamContents:
[:s|
s nextPutAll: '/* Automatically generated by\ ' withCRs.
s nextPutAll: (CCodeGenerator monticelloDescriptionFor: self).
s cr; nextPutAll: ' */'.
s cr; cr; nextPut: $#.
self translateableInstructionSubclassesAndInstalledOptionsDo:
+ [:class | | abi |
- [:class |
s nextPutAll: 'if '.
+ (abi := initializationOptions at: #ABI) ifNotNil:
+ [s nextPutAll: 'defined('; nextPutAll: abi; nextPutAll: ') && ('].
class identifyingPredefinedMacros
do: [:predefinedMacro| s nextPutAll: 'defined('; nextPutAll: predefinedMacro; nextPut: $)]
separatedBy: [s nextPutAll: ' || '].
+ abi ifNotNil: [s nextPut: $)].
s cr; cr; nextPutAll: '# include "'; nextPutAll: class moduleName; nextPutAll: '.c"'.
s cr; cr; nextPutAll: '#el'].
s nextPutAll: 'se'.
#( 'As yet no Cogit implementation appears to exist for your platform.'
'Consider implementing it, starting by adding a subclass of CogAbstractInstruction.') do:
[:msg| s cr; nextPutAll: '# error '; nextPutAll: msg].
s cr; nextPutAll: '#endif'; cr]!
More information about the Vm-dev
mailing list