[Squeak 4.0] removing ChangeSets

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

[Squeak 4.0] removing ChangeSets

Casey Ransberger
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

Reply | Threaded
Open this post in threaded view
|

Re: [Squeak 4.0] removing ChangeSets

Bert Freudenberg
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 -



Reply | Threaded
Open this post in threaded view
|

Re: [Squeak 4.0] removing ChangeSets

Chris Muller-3
What do you mean, you want to get rid of ChangeSets?  Aren't they still useful?

On Wed, Mar 10, 2010 at 3:26 AM, Bert Freudenberg <[hidden email]> wrote:

> 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 -
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Squeak 4.0] removing ChangeSets

Eliot Miranda-2


On Fri, Mar 12, 2010 at 2:51 PM, Chris Muller <[hidden email]> wrote:
What do you mean, you want to get rid of ChangeSets?  Aren't they still useful?

Not getting rid of the code supporting change sets, but throwing away all the instances of ChangeSet except those owned by the projects in the image and emptying those change sets of their change sets.  i.e. throwing away change set state, not behaviour.


On Wed, Mar 10, 2010 at 3:26 AM, Bert Freudenberg <[hidden email]> wrote:
> 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 -
>
>
>
>




Reply | Threaded
Open this post in threaded view
|

Re: [Squeak 4.0] removing ChangeSets

Bert Freudenberg
On 13.03.2010, at 00:00, Eliot Miranda wrote:
>
> On Fri, Mar 12, 2010 at 2:51 PM, Chris Muller <[hidden email]> wrote:
>>
>> What do you mean, you want to get rid of ChangeSets?  Aren't they still useful?
>>
> Not getting rid of the code supporting change sets, but throwing away all the instances of ChangeSet except those owned by the projects in the image and emptying those change sets of their change sets.  i.e. throwing away change set state, not behaviour.

Right. A release should come with only one change set named "Unnamed" which is empty. Unless there are multiple projects in that image which each has its own (usually empty) change set, too.

For a major release the changes file would be completely empty (size zero) too.

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: [Squeak 4.0] removing ChangeSets

Chris Muller-4
In reply to this post by Eliot Miranda-2
> Not getting rid of the code supporting change sets, but throwing away all
> the instances of ChangeSet except those owned by the projects in the image
> and emptying those change sets of their change sets.  i.e. throwing away
> change set state, not behaviour.

Whew, good deal..