The Trunk: ReleaseBuilder-mt.206.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ReleaseBuilder-mt.206.mcz

commits-2
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'!