Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2171.mcz==================== Summary ====================
Name: VMMaker.oscog-eem.2171
Author: eem
Time: 20 March 2017, 9:56:03.040602 am
UUID: 7be28a3f-3b9e-46de-bfc5-f8c46c06c851
Ancestors: VMMaker.oscog-eem.2170
Cogit:
needsToRegenerateCogitFile mustn't get confused by the absence of files.
=============== Diff against VMMaker.oscog-eem.2170 ===============
Item was changed:
----- Method: VMMaker>>needsToRegenerateCogitFile (in category 'generate sources') -----
needsToRegenerateCogitFile
"Check the timestamp for the relevant classes and then the timestamp for the main source file (e.g. interp.c)
file if it already exists. Answer if the file needs regenerating."
+ | cogitClass cogitClasses tStamp files |
- | cogitClass cogitClasses tStamp |
cogitClasses := (cogitClass := self interpreterClass cogitClass) withAllSuperclasses copyUpThrough: Cogit.
cogitClasses addAllLast: (cogitClass ancilliaryClasses: self options).
tStamp := cogitClasses inject: 0 into: [:tS :cl| tS max: cl timeStamp].
"don't translate if the file(s) is newer than my timeStamp"
+ files := (self coreVMDirectory fileNamesMatching: cogitClass activeCompilerClass moduleName, '*.c').
+ files isEmpty ifTrue:
+ [^true].
+ (files allSatisfy:
- ((self coreVMDirectory fileNamesMatching: cogitClass activeCompilerClass moduleName, '*') allSatisfy:
[:fileName|
(self coreVMDirectory entryAt: fileName ifAbsent: [nil])
ifNil: [false]
ifNotNil:
[:fstat| | mTime |
mTime := fstat modificationTime.
mTime isInteger ifFalse: [mTime := mTime asSeconds].
tStamp > mTime]]) ifTrue:
[^self confirm: ('The ', self configurationNameIfAny, cogitClass printString,
', ', cogitClass activeCompilerClass, '\classes have not been modified since the ',
cogitClass processorSpecificSourceFileName,
' source file\was last generated. Do you still want to regenerate it?') withCRs].
^true!