Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.143.mcz ==================== Summary ==================== Name: ReleaseBuilder-mt.143 Author: mt Time: 9 August 2016, 4:00:59.348781 pm UUID: 0df4c0a8-3a25-ce40-aaec-7d4012d61c76 Ancestors: ReleaseBuilder-mt.142 Account for additional repositores such as Squeak's inbox. Additional check for undeclared symbols, which recompiling all source code does not detect. =============== Diff against ReleaseBuilder-mt.142 =============== Item was added: + ----- Method: ReleaseBuilder class>>addAdditionalRepositories (in category 'scripts - support') ----- + addAdditionalRepositories + + MCRepositoryGroup default addRepository: self inboxRepository. + + #( + 'http://www.squeaksource.com/MetacelloRepository' + 'http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/MetacelloRepository' + ) collect: [:url | + MCRepositoryGroup default addRepository: (MCHttpRepository + location: url + user: 'squeak' + password: 'squeak')].! Item was added: + ----- Method: ReleaseBuilder class>>checkForUndeclaredSymbols (in category 'scripts - support') ----- + checkForUndeclaredSymbols + "Parses through all source code in the image and looks for undeclard symbols in those." + + | msgs | + msgs := OrderedCollection new. + + SystemNavigation default allClasses + do: [:cls | + {cls. cls class} do: [:b | b selectorsAndMethodsDo: [:selector :method | + | parser ranges | + parser := SHParserST80 new. + parser parseAMethod: true. + ranges := parser + rangesIn: method getSource + classOrMetaClass: method methodClass + workspace: nil + environment: method methodClass environment. + ranges anySatisfy: [:range | + range type = #undefinedIdentifier]]]] + displayingProgress: [:behavior | 'Checking for undeclared symbols...']. + + msgs ifNotEmpty: [ + SystemNavigation default browseMessageList: msgs name: 'Invalid Messages ', msgs size autoSelect: nil. + Warning signal: 'There is source code with undeclared symbols!!'].! Item was changed: ----- Method: ReleaseBuilder class>>clearCaches (in category 'scripts') ----- clearCaches "Clear caches, discard unused references, free space." Smalltalk cleanUp: true. + Project current resourceManager reset. "Zap eventual resources" self discardUserObjects. MCFileBasedRepository flushAllCaches. - "Clear all user login data." - MCHttpRepository clearCredentials. - Utilities setAuthorInitials: String empty. - Environment allInstancesDo: [ : env | env purgeUndeclared ]. Undeclared removeUnreferencedKeys. Smalltalk garbageCollect.! Item was added: + ----- Method: ReleaseBuilder class>>inboxRepository (in category 'accessing') ----- + inboxRepository + ^ MCRepository inbox! Item was changed: ----- Method: ReleaseBuilder class>>prepareSourceCode (in category 'preparing') ----- prepareSourceCode "Update code. Remove foreign packages." MCMcmUpdater defaultUpdateURL: self buildRepository description. MCMcmUpdater updateMissingPackages: true. MCMcmUpdater enableUpdatesForAllPackages. MCMcmUpdater default doUpdate: false. "non-interactive". self unloadForeignPackages; checkForDirtyPackages; + loadWellKnownPackages; + checkForUndeclaredSymbols. - loadWellKnownPackages. Compiler recompileAll.! |
Free forum by Nabble | Edit this page |