[squeak-dev] The Trunk: ReleaseBuilder-mt.206.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Feb 26 16:26:15 UTC 2020


Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.206.mcz

==================== Summary ====================

Name: ReleaseBuilder-mt.206
Author: mt
Time: 26 February 2020, 5:26:15.253527 pm
UUID: 6e9769a8-c40c-e34e-bd56-5627d15b5bdf
Ancestors: ReleaseBuilder-fn.205

Prepare 5.3rc2 --- Renames the two existing change sets to "RootProject" and "HomeProject" to be both readable and file-out compatible. Fixes the (manual) check for undeclared symbols. Make sure that #clearCaches really cleans the code artifacts in the correct order. Adds some documentation for that. Also bumps version from rc1 to rc2.

=============== Diff against ReleaseBuilder-fn.205 ===============

Item was changed:
  ----- 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])
+ 					ifTrue: [msgs add: method methodReference]]]]
- 				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."
  
+ 	"1) Explicit clean-up of FONT-related stuff."
  	self cleanUpBitstreamVeraSans.
  	StrikeFont initialize.
  
+ 	"2) FIRST PHASE of explicit clean-up of CODE-related stuff."
- 	Smalltalk cleanUp: true.
- 	
  	self discardUserObjects.
  	MCFileBasedRepository flushAllCaches.
  
+ 	"3) Now clean-up all STATE-related stuff."
+ 	Smalltalk cleanUp: true.	
+ 
+ 	"4) SECOND PHASE of explicit clean-up of CODE-related stuff. As late as possible to get rid of all references before running this."
+ 	Smalltalk garbageCollect.
+ 	Environment allInstancesDo: [:environment | environment purgeUndeclared ].
- 	Environment allInstancesDo: [ : env | env purgeUndeclared ].
  	Undeclared removeUnreferencedKeys.
  	
+ 	!
- 	Smalltalk garbageCollect.!

Item was changed:
  ----- Method: ReleaseBuilder class>>configureProjects (in category 'scripts') -----
  configureProjects
  	"Set up the desired configuration of projects, which might be a single project, multiple projects..."
  	
  	| homeProject rootProject |
  	homeProject := Project current.
  	rootProject := homeProject.
  	
  	homeProject isMorphic ifFalse: [
  		Warning signal: 'The current project is not Morphic. Please create a new Morphic project, enter it, and restart the release building process.'].
  	
  	"The home project is a single Morphic project. Let the home project have a parent MVC project as the root of the project tree. The MVC project supports emergency debugging in the event of unrecoverable Morphic problems, and will fall back on the traditional emergency evaluator if MVC debugging fails. If MVC is not installed in the image, then do nothing."
  	Project current removeAllOtherProjects.
  	(Smalltalk classNamed: #MVCProject)
  		ifNil: [Warning signal: 'MVC must be installed in the release image.']
+ 		ifNotNil: [:mvc | rootProject := mvc new].
+ 		
+ 	rootProject name: 'RootProject'.
+ 	homeProject name: 'HomeProject'. 
- 		ifNotNil: [:mvc | rootProject := (mvc new name: 'The root project')].
  
  	self
  		assert: homeProject isTopProject;
  		assert: rootProject isTopProject not.
  
  	rootProject beTopProject.
  
  	self
  		assert: rootProject isTopProject;
  		assert: homeProject isTopProject not.
  	
  	self
  		assert: rootProject subProjects size = 1;
  		assert: homeProject parent == rootProject;
  		assert: rootProject isMVC.!

Item was changed:
  ----- Method: ReleaseBuilder class>>initialize (in category 'class initialization') -----
  initialize
  
  	QAndA ifNil: [self clearQAndA].
  
  	"We have to be after AutoStart so that Morphic is up and running."
  	Smalltalk addToStartUpList: ReleaseBuilder after: AutoStart.
  
+ 	SystemVersion newVersion: 'Squeak5.3rc2'!
- 	SystemVersion newVersion: 'Squeak5.3rc1'!



More information about the Squeak-dev mailing list