[squeak-dev] [Squeak 4.0] removing ChangeSets

Bert Freudenberg bert at freudenbergs.de
Wed Mar 10 09:26:06 UTC 2010


On 10.03.2010, at 07:27, Ronald Spengler wrote:
> 
> Bert says ChangeSets should be removed from the release artifact. I
> need to know: does this entail sending condenseChanges to Smalltalk
> before sending condenseSources? Or should I open a change set browser
> and delete them?
> 
> -- 
> Casey Ransberger

Got nothing to do with condenseChanges, that is just about the changes file, not the changesets in the image.

Hmm, where did ReleaseBuilder go? It had a set of utilities for image cleanup. Like

cleanUpChanges
	"Clean up the change sets"

	"ReleaseBuilder new cleanUpChanges"
	
	| projectChangeSetNames |

	"Delete all changesets except those currently used by existing projects."
	projectChangeSetNames _ Project allSubInstances collect: [:proj | proj changeSet name].
	ChangeSorter removeChangeSetsNamedSuchThat:
		[:cs | (projectChangeSetNames includes: cs) not].

initialCleanup
	"Perform various image cleanups in preparation for making a Squeak gamma release candidate image."
	"ReleaseBuilder new initialCleanup"
	
	Undeclared removeUnreferencedKeys.
	StandardScriptingSystem initialize.

	(Object classPool at: #DependentsFields) size > 1 ifTrue: [self error:'Still have dependents'].
	"Undeclared isEmpty ifFalse: [self error:'Please clean out Undeclared']."

	Browser initialize.
	ScriptingSystem deletePrivateGraphics.  "?"
	
	self cleanUpChanges.
	ChangeSet current clear.
	ChangeSet current name: 'Unnamed1'.
	Smalltalk garbageCollect.

	"Reinitialize DataStream; it may hold on to some zapped entitities"
	DataStream initialize.

	Smalltalk garbageCollect.
	ScheduledControllers _ nil.
	Smalltalk garbageCollect.
	
	SMSqueakMap default purge.
	
finalCleanup
	"ReleaseBuilder new finalCleanup"


	Smalltalk forgetDoIts.

	DataStream initialize.
	Behavior flushObsoleteSubclasses.

	"The pointer to currentMethod is not realy needed (anybody care to fix this) and often holds on to obsolete bindings"
	MethodChangeRecord allInstancesDo: [:each | each noteNewMethod: nil].

	self cleanUpEtoys.
	SmalltalkImage current fixObsoleteReferences.

	self cleanUpChanges.
	ChangeSet current clear.
	ChangeSet current name: 'Unnamed1'.
	
	Smalltalk flushClassNameCache.
	3 timesRepeat: [
		Smalltalk garbageCollect.
		Symbol compactSymbolTable.
	].



- Bert -





More information about the Squeak-dev mailing list