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

commits at source.squeak.org commits at source.squeak.org
Tue Feb 23 17:32:41 UTC 2016


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1694.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1694
Author: eem
Time: 23 February 2016, 9:30:35.750871 am
UUID: e1381bbc-a5af-4a35-ac60-a739611c7e0e
Ancestors: VMMaker.oscog-eem.1693

Fix compilation of ThreadedFFIPlugin subclasses as internal plugins.

=============== Diff against VMMaker.oscog-eem.1693 ===============

Item was changed:
  ----- Method: ThreadedFFIPlugin class>>generateCodeStringForPrimitives (in category 'translation') -----
  generateCodeStringForPrimitives
  	"Output a skeletal SqueakFFIPrims.c that includes the relevant FooFFIPlugin.c for
  	 each subclass based on the identifyingPredefinedMacros the subclass defines."
  	 
  	^String streamContents:
  		[:s|
  		 s nextPutAll: '/* Automatically generated by\	' withCRs.
  		 s nextPutAll: (CCodeGenerator monticelloDescriptionFor: self).
  		 s cr; nextPutAll: ' */'.
  		 s cr; cr; nextPut: $#.
  		 (self allSubclasses sort: [:a :b| a name < b name]) do:
  			[:class |
  			class identifyingPredefinedMacros ifNotNil:
  				[:predefinedMacros|
  				 s nextPutAll: 'if '.
  				class includingPredefinedMacros ifNotNil:
  					[:includingMacros|
  					 includingMacros do:
  						[:predefinedMacro| s nextPutAll: 'defined('; nextPutAll: predefinedMacro; nextPutAll: ') && '].
  					 s nextPut: $(].
  				class excludingPredefinedMacros ifNotNil:
  					[:excludingMacros|
  					 excludingMacros do:
  						[:predefinedMacro| s nextPutAll: '!!defined('; nextPutAll: predefinedMacro; nextPutAll: ') && '].
  					 s nextPut: $(].
  				 predefinedMacros
  					do: [:predefinedMacro| s nextPutAll: 'defined('; nextPutAll: predefinedMacro; nextPut: $)]
  					separatedBy: [s nextPutAll: ' || '].
  				class excludingPredefinedMacros ifNotNil:
  					[s nextPut: $)].
  				class includingPredefinedMacros ifNotNil:
  					[s nextPut: $)].
+ 				 s cr; cr; nextPutAll: '# define '; nextPutAll: class moduleName; nextPutAll: '_exports ';
+ 												nextPutAll: self moduleName; nextPutAll: '_exports'.
+ 				 s cr; nextPutAll: '# include "'; nextPutAll: class moduleName; nextPutAll: '.c"'.
- 				 s cr; cr; nextPutAll: '#	include "'; nextPutAll: class moduleName; nextPutAll: '.c"'.
  				 s cr; cr; nextPutAll: '#el']].
  		 s nextPutAll: 'se'.
  		 #(	'As yet no FFI implementation appears to exist for your platform.'
  			'Consider implementing it, starting by adding a subclass of ThreadedFFIPlugin.') do:
+ 			[:msg| s cr; nextPutAll: '# error '; nextPutAll: msg].
- 			[:msg| s cr; nextPutAll: '#	error '; nextPutAll: msg].
  		 s cr; nextPutAll: '#endif'; cr]!



More information about the Vm-dev mailing list