Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.543.mcz==================== Summary ====================
Name: VMMaker.oscog-eem.543
Author: eem
Time: 6 December 2013, 2:20:33.659 pm
UUID: 460f2b89-5b70-49d3-8fc6-cbaaf02eb6a3
Ancestors: VMMaker.oscog-eem.542
Mo' mo' betta...
=============== Diff against VMMaker.oscog-eem.542 ===============
Item was added:
+ ----- Method: VMMaker>>configurationGeneratorNameOrNil (in category 'generate sources') -----
+ configurationGeneratorNameOrNil
+ "Search the sender chain for the first method in VMMaker class protocol configurations, and answer it if found,
+ otherwise answer nil. This allows us to name the configuration being generated."
+ ^thisContext findContextSuchThat:
+ [:ctxt|
+ ctxt receiver == VMMaker
+ and: [ctxt method methodReference category = #configurations]]!
Item was changed:
----- Method: VMMaker>>configurationNameIfAny (in category 'generate sources') -----
configurationNameIfAny
+ ^self configurationGeneratorNameOrNil
- ^(thisContext findContextSuchThat: [:ctxt| ctxt receiver == VMMaker and: [ctxt method methodReference category = #configurations]])
ifNotNil: [:ctxt| (self class configuirationNameFromSelector: ctxt selector), ' ']
ifNil: [' ']!
Item was changed:
----- Method: VMMaker>>generateEntire (in category 'generate sources') -----
generateEntire
"Generate the interp, internal plugins and exports as well as the external plugins.
If this comes from a generator, log it for convenience."
+ self configurationGeneratorNameOrNil ifNotNil:
+ [:generator|
+ logger cr; nextPutAll: (generator selector copyReplaceAll: 'generate' with: '').
+ interpreterClassName ifNotNil: [logger space; nextPutAll: interpreterClassName].
+ logger cr; flush].
- (thisContext findContextSuchThat: [:ctxt| ctxt selector == #generateConfiguration]) ifNotNil:
- [:root|
- (thisContext findContextSuchThat: [:ctxt| ctxt sender == root]) ifNotNil:
- [:generator|
- logger cr; nextPutAll: (generator selector copyReplaceAll: 'generate' with: '').
- interpreterClassName ifNotNil: [logger space; nextPutAll: interpreterClassName].
- logger cr; flush]].
self generateMainVM.
self generateExternalPlugins!