pruning older versions of a method

Scott Wallace scott.wallace at squeakland.org
Wed Mar 13 21:58:30 UTC 2002


At 1:25 PM -0700 3/13/02, Ken Brown wrote:
>Is there any easy way to file out a changeset from 3.3a and read it into
>3.2gamma? I had trouble when I tried this since the format seems to have
>changed.
>   Ken

The main issues here revolve around 3.3a's changes to the format of class-definitions.  If a fileout produced in 3.3a happens to contain any class definitions, they won't file in to 3.2gamma/external right now.

Fortunately, this problem has been solved -- Dan wrote some compatibility methods for 3.2, which are already published to 3.2gamma/internal.

So the only thing we're waiting for now is for the latest 3.2gamma/internal updates to get published externally.

Cheers,

  -- Scott


PS:  Meantime, pasted below is the contents of Dan's compatibility update, which you could file in to your 3.2gamma image, after which it ought to be possible to load your 3.3a code.


-----

'From Squeak3.2gamma of 5 February 2002 [latest update: #4743] on 6 March 2002 at 1:37:50 pm'!
"Change Set:		AcceptModuleClassDefs
Date:			6 March 2002
Author:			Dan Ingalls

These changes allow a pre-module system to accept post-module class definitions.  With regards to system categories, if the class exists already in the system, then its category will not be changed by the new definition.  If it does not already exist, then the module path will be agglutinated with dashes to produce its category string."!


!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:33'!
existingCategoryFor: className orConvert: pathArray
	| existing |
	existing _ Smalltalk at: className ifAbsent: [nil].
	(existing isKindOf: Class) ifTrue: [^ existing category].
	^ String streamContents:
			[:s | pathArray do: [:pathSymbol | s nextPutAll: pathSymbol]
					separatedBy: [s nextPutAll: '-']]
! !

!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:32'!
subclass: className instanceVariableNames: f classVariableNames: d module: pathArray
	"Accept new form of class defs from module systems"
	^ self subclass: className instanceVariableNames: f classVariableNames: d
		poolDictionaries: '' category: (self existingCategoryFor: className orConvert: pathArray)
! !

!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:32'!
variableByteSubclass: className instanceVariableNames: f classVariableNames: d module: pathArray
	"Accept new form of class defs from module systems"
	^ self variableByteSubclass: className instanceVariableNames: f classVariableNames: d
		poolDictionaries: '' category: (self existingCategoryFor: className orConvert: pathArray)
! !

!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:32'!
variableSubclass: className instanceVariableNames: f classVariableNames: d module: pathArray
	"Accept new form of class defs from module systems"
	^ self variableSubclass: className instanceVariableNames: f classVariableNames: d
		poolDictionaries: '' category: (self existingCategoryFor: className orConvert: pathArray)
! !

!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:32'!
variableWordSubclass: className instanceVariableNames: f classVariableNames: d module: pathArray
	"Accept new form of class defs from module systems"
	^ self variableWordSubclass: className instanceVariableNames: f classVariableNames: d
		poolDictionaries: '' category: (self existingCategoryFor: className orConvert: pathArray)
! !

!Class methodsFor: 'module compatibility' stamp: 'di 3/6/2002 13:32'!
weakSubclass: className instanceVariableNames: f classVariableNames: d module: pathArray
	"Accept new form of class defs from module systems"
	^ self weakSubclass: className instanceVariableNames: f classVariableNames: d
		poolDictionaries: '' category: (self existingCategoryFor: className orConvert: pathArray)
! !




More information about the Squeak-dev mailing list