Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2397.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2397 Author: eem Time: 30 May 2018, 7:49:46.882396 pm UUID: b696a3c2-2443-4c71-94ef-04a4a9a8c426 Ancestors: VMMaker.oscog-eem.2396
Actually fix Slang not emitting variable declarations for 'extern ...' declarations.
=============== Diff against VMMaker.oscog-eem.2396 ===============
Item was changed: ----- Method: TMethod>>removeUnusedTempsIn: (in category 'utilities') ----- removeUnusedTempsIn: aCodeGen "Remove all of the unused temps in this method. Answer a set of the references." "After inlining some variable references are now obsolete, we could fix them there but the code seems a bit complicated, the other choice to to rebuild the locals before extruding. This is done here" | usedVariables | usedVariables := self allReferencedVariablesUsing: aCodeGen. "reset the locals to be only those still referred to" locals do: [:local| + (usedVariables includes: local) ifFalse: + [(((declarations at: local ifAbsent: ['']) includesSubstring: 'static') + or: [(declarations at: local ifAbsent: ['']) includesSubstring: 'extern']) + ifFalse: + [locals remove: local. + declarations removeKey: local ifAbsent: []] + ifTrue: + [usedVariables add: local "In case this is a function declaration, e.g. amInVMThread in ownVM:"]]]. - ((usedVariables includes: local) not - and: [((declarations at: local ifAbsent: ['']) includesSubstring: 'static') not - and: [((declarations at: local ifAbsent: ['']) includesSubstring: 'extern') not]]) ifTrue: - [locals remove: local. - declarations removeKey: local ifAbsent: []]]. ^usedVariables!
vm-dev@lists.squeakfoundation.org