Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.201.mcz ==================== Summary ==================== Name: ReleaseBuilder-mt.201 Author: mt Time: 9 October 2019, 2:42:19.441803 pm UUID: 9183e25d-aac3-8b47-be45-d8b6cb60f9ae Ancestors: ReleaseBuilder-mt.200 Small fix when checking for dirty packages. Unloads package "Autogenerated" when cleaning up. Two new convenience functions to clean up the current image. Still no auto-skipping of bad MC ancestries... =============== Diff against ReleaseBuilder-mt.200 =============== Item was changed: ----- Method: ReleaseBuilder class>>checkForDirtyPackages (in category 'scripts - support') ----- checkForDirtyPackages | modifiedWorkingCopies unmergedWorkingCopies | MCWorkingCopy checkModified: true. modifiedWorkingCopies := MCWorkingCopy allManagers select: [:wc | wc ancestors size = 1 and: [wc modified] ]. unmergedWorkingCopies := MCWorkingCopy allManagers select: [:wc | (wc ancestors size = 1) not ]. unmergedWorkingCopies ifNotEmpty: [ "Sort to simplify exploration. MC browser does also show packages sorted." + (unmergedWorkingCopies sorted: [:wc1 :wc2 | wc1 packageName <= wc2 packageName]) explore. - (modifiedWorkingCopies sorted: [:wc1 :wc2 | wc1 packageName <= wc2 packageName]) explore. Warning signal: 'There are unmerged packages.']. modifiedWorkingCopies ifNotEmpty: [ "Sort to simplify exploration. MC browser does also show packages sorted." (modifiedWorkingCopies sorted: [:wc1 :wc2 | wc1 packageName <= wc2 packageName]) explore. (self confirm: 'Do you want to discard all local changes?' orCancel: [^ Error signal: 'Release building canceled.'] title: 'Dirty Packages Found') ifTrue: [modifiedWorkingCopies do: [:wc | [(self buildRepository versionWithInfo: wc ancestors first) load] on: Warning do: [:warning | warning resume]]]].! Item was changed: ----- Method: ReleaseBuilder class>>clearCaches (in category 'scripts') ----- clearCaches "Clear caches, discard unused references, free space." self cleanUpBitstreamVeraSans. StrikeFont initialize. Smalltalk cleanUp: true. + self discardUserObjects. - self discardUserObjects. MCFileBasedRepository flushAllCaches. Environment allInstancesDo: [ : env | env purgeUndeclared ]. Undeclared removeUnreferencedKeys. Smalltalk garbageCollect.! Item was changed: ----- Method: ReleaseBuilder class>>discardUserObjects (in category 'scripts - support') ----- discardUserObjects "Remove the classes." Player removeUninstantiatedSubclassesSilently. MorphicModel removeUninstantiatedSubclassesSilently. "Clean-up environment hick-ups." Environment default allClassesDo: [:cls | (cls isUniClass and: [cls environment ~~ Environment default]) ifTrue: [Environment default forgetClass: cls logged: false]]. Environment default declarations select: [:binding | (binding value isBehavior and: [binding value isUniClass]) and: [binding value isObsolete]] thenDo: [:binding | SystemOrganization removeElement: binding key. Environment default removeKey: binding key]. + "Remove auto-generated accessors. See Preferences." + (MCPackage named: 'Autogenerated') unload. + + "Remove empty categories for user objects. See Object class >> #categoryForUniclasses." - "Remove empty categories for user objects." SystemOrganizer cleanUp: true.! Item was added: + ----- Method: ReleaseBuilder class>>saveAsNewClean (in category 'saving') ----- + saveAsNewClean + "Use this to create clean up the current image and save it under a new name." + + | fileName | + (Project uiManager + confirm: 'This will update and clean-up the current image,\which is then saved under a new name.\\Do you want to continue?' withCRs + title: 'Prepare Clean Image') == true ifFalse: [^ self]. + + "Prepare first so that we can propose an appropriate file name." + self + prepareSourceCode; + prepareEnvironment. + + fileName := ('{1}-{2}-{3}-{4}bit-i{5}.image' format: { + SystemVersion current version. + SystemVersion current highestUpdate. + CompiledCode preferredBytecodeSetEncoderClass name allButFirst: 'EncoderFor' size. + Smalltalk wordSize * 8. + Smalltalk imageFormatVersion}). + + fileName := Project uiManager + saveFilenameRequest: 'Save clean image as...' translated + initialAnswer: fileName. + fileName ifNil: [^ self]. + + Smalltalk saveAs: fileName. + self saveAndQuit.! Item was added: + ----- Method: ReleaseBuilder class>>saveClean (in category 'saving') ----- + saveClean + "Use this to create clean up the current image and save it under a new name." + + (Project uiManager + confirm: 'This will update and clean-up the current (!!) image,\which is then saved under the same (!!) name.\\Do you want to continue?' withCRs + title: 'Clean Image') == true ifFalse: [^ self]. + + self + prepareSourceCode; + prepareEnvironment. + + self saveAndQuit.! |
Free forum by Nabble | Edit this page |