Its cool the new PharoCondenseChanges was integrated 30821, presumably to be used for Pharo 3 release.  I have a problem running it on MS Windows (reported on Case 12729), but that is not critical for the Release since presumably for that it only needs to run properly on one platform.

However while investigating my MS Windows problem, it seemed that some sources before and after were not the same.  This could be an consequence of the MS Windows problem, so I was hoping that someone could report the result of the following code on non-Windows platforms (presuming that this provides a valid #condense function check.)
---------
cacheMethodSourcesBlock :=
[       | classes methods methodSources |
        classes := (Smalltalk globals select: [  :g | g isClass ]) values.
        methods := classes flatCollect: [ :c | c methods ].
        methodSources := Dictionary new.
        methods do: [ :m | methodSources at: m printString put: m asString ].
        methodSources
].

methodSourcesBefore := cacheMethodSourcesBlock value.

PharoCondenseChanges condense.  "btw, this took over an hour for me. Is that reasonable?"

methodSourcesAfter := cacheMethodSourcesBlock value.


sameAfter := Dictionary new.

diffAfter := Dictionary new.
methodSourcesBefore keys do:
[       :methodName |  | methodSourceBefore methodSourceAfter |
        methodSourceBefore := methodSourcesBefore at: methodName.
        methodSourceAfter := methodSourcesAfter  at: methodName.
        methodSourceBefore = methodSourceAfter 
            ifTrue: [ sameAfter at: methodName put: { #beforeAndAfter -> methodSourceBefore } ]
            ifFalse: [ diffAfter at: methodName put: { #before -> methodSourceBefore . String cr, String cr. #after -> methodSourceAfter }]
].

{ #sameAfter -> sameAfter size . #diffAfter -> diffAfter size } inspect
---------

cheer -ben

Reply via email to