[Pkg] SystemEditor: SystemEditor-mtf.154.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Fri Nov 7 06:35:34 UTC 2008


A new version of SystemEditor was added to project SystemEditor:
http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.154.mcz

==================== Summary ====================

Name: SystemEditor-mtf.154
Author: mtf
Time: 6 November 2008, 11:34:51 pm
UUID: ff37b66e-bb9e-46e1-86ab-cde14ca663c1
Ancestors: SystemEditor-mtf.153

moved around classes and extensions to be in two categories: core and squeak. This is the last commit in this line: I am being split up into three packages: core, squeak, and tests.

Also removed one useless class and one useless extension

=============== Diff against SystemEditor-mtf.153 ===============

Item was changed:
  Object subclass: #ObjectMigrator
  	instanceVariableNames: 'origin destination'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!
  
  !ObjectMigrator commentStamp: 'mtf 7/14/2008 11:59' prior: 0!
  My instances store an old and new version of a single object that will be swapped during MigrationTransaction>>commit!

Item was changed:
  AbstractEditor subclass: #DictionaryEditor
  	instanceVariableNames: 'subject additions removals'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Object subclass: #MethodEditor
  	instanceVariableNames: 'source category stamp requestor log repository'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Object subclass: #ClassDecorator
  	instanceVariableNames: 'editor'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!
  
  !ClassDecorator commentStamp: 'mtf 6/19/2008 23:29' prior: 0!
  An abstract superclass for extensions to ClassEditor and MetaclassEditor!

Item was changed:
  DictionaryEditor subclass: #MethodDictionaryEditor
  	instanceVariableNames: 'classEditor'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  InvalidSystemChange subclass: #InvalidClassFormat
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Exceptions'!

Item was changed:
  AbstractEditor subclass: #PureBehaviorEditor
  	instanceVariableNames: 'superclass methodDict format subject product system methods organization properties decorators'
  	classVariableNames: 'ReservedNames'
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
+ ----- Method: CompiledMethod class>>edInstanceBasedOn: (in category '*systemeditor-core') -----
- ----- Method: CompiledMethod class>>edInstanceBasedOn: (in category '*systemeditor-migrating') -----
  edInstanceBasedOn: oldInstance
  
  	| size |
  	size := oldInstance endPC - oldInstance initialPC + 1 + oldInstance trailer size.
  	^ self newMethod: size header: oldInstance header.
  !

Item was changed:
+ ----- Method: ClassOrganizer>>edClassComment:stamp: (in category '*systemeditor-squeak') -----
- ----- Method: ClassOrganizer>>edClassComment:stamp: (in category '*SystemEditor-workaround') -----
  edClassComment: aString stamp: aStamp
  "Set the comment and stamp directly, with no checks.This works around a silly check in ClassOrganizer>>classComment:stamp: in Croquet. This check raises an error if the subject is either nil or a metaclass. The check does not exist in Squeak 3.8 and above"
  	^ super classComment: aString stamp: aStamp!

Item was changed:
  InvalidSystemChange subclass: #IllegalVariableName
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Exceptions'!

Item was changed:
  ClassDescriptionEditor subclass: #ClassEditor
  	instanceVariableNames: 'name classVarNames sharedPools category'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  CategorizerEditor subclass: #OrganizationEditor
  	instanceVariableNames: 'classEditor isDirty comment stamp remote repository'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !OrganizationEditor commentStamp: 'mtf 7/14/2008 11:28' prior: 0!
  My instances are editors for ClassOrganizer instances!

Item was changed:
+ SystemOrganization addCategory: #'SystemEditor-Core'!
+ SystemOrganization addCategory: #'SystemEditor-Squeak'!
- SystemOrganization addCategory: #'SystemEditor-Editors'!
- SystemOrganization addCategory: #'SystemEditor-Exceptions'!
- SystemOrganization addCategory: #'SystemEditor-Info'!
  SystemOrganization addCategory: #'SystemEditor-Tests'!

Item was changed:
+ ----- Method: Behavior>>edInstanceBasedOn: (in category '*systemeditor-core') -----
- ----- Method: Behavior>>edInstanceBasedOn: (in category '*systemeditor-migrating') -----
  edInstanceBasedOn: oldInstance 
  	| newInstance |
  	self isVariable 
  		ifTrue: [newInstance := self basicNew: oldInstance basicSize]
  		ifFalse: [newInstance := self basicNew].
  	^newInstance!

Item was changed:
  ClassDecorator subclass: #SubclassListDecorator
  	instanceVariableNames: 'parent additions removals'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !SubclassListDecorator commentStamp: 'mtf 10/29/2008 13:56' prior: 0!
  I remember what subclasses were added to or removed from my parent. Since the subclass list can be nil at times, I cannot migrate it, so I work in edPostLoad!

Item was changed:
  DictionaryEditor subclass: #SystemEditor
  	instanceVariableNames: 'organization showProgress debug'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  AbstractEditor subclass: #CategorizerEditor
  	instanceVariableNames: 'subject renamedCategories categories'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !CategorizerEditor commentStamp: '<historical>' prior: 0!
  An abstract superclass for editors of Categorizers. Implements the public interface of a Categorizer. I maintain the list of added, removed, or reordered categories, but it is up to subclasses to remember which elements were added, removed, or recategorized.
  
  subject (Categorizer) - The Categorizer I am editing
  categories (OrderedCollection) - The ordered list of categories
  renamedCategories (Dictionary) - A dictionary mapping old category names to new names!

Item was changed:
  ClassEditor subclass: #RootClassEditor
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !RootClassEditor commentStamp: 'mtf 7/29/2008 08:37' prior: 0!
  My instances represent ClassEditors on the concept of "ProtoObject's superclass", the primitive object from which every class, without exception, inherits. I exist so that queries that involve the superclass do not have to be special-cased in case the superclass really is nil.!

Item was changed:
  ClassDescriptionEditor subclass: #MetaclassEditor
  	instanceVariableNames: 'editor'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Notification subclass: #InvalidSystemChange
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Exceptions'!

Item was changed:
  MetaclassEditor subclass: #RootMetaclassEditor
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Object subclass: #ClassFormat
  	instanceVariableNames: 'instSize instSpec cClassIndex'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !ClassFormat commentStamp: 'mtf 7/7/2008 23:18' prior: 0!
  I am an expert on the way the Squeak VM encodes class formats. My instance variable, 'bits', is identical in format to the 'format' instance variable of Behavior. I have methods for interpreting those bits. The class format integer is 18 bits in length. The instSize field is split into two parts for backwards compatibility.
  
  <2 bits=instSize//64> <5 bits=cClass> <4 bits=instSpec> <6 bits=instSize\\64> <1 bit=0>
  
  - instSize: the number of named instance variables
  - cClass: the index into the compact class table
  - instSpec: values indicating how instances are organized
  	0 - no state
  	1 - named instance variables only
  	2 - variable number of object pointers
  	3 - named instance variables, variable number of object pointers
  	4 - variable number of weak object pointers
  	6 - variable number of words
  	8 - variable number of bytes
  	12 - compiled method format: variable number of object pointers, variable number of bytes!

Item was changed:
  CategorizerEditor subclass: #SystemOrganizationEditor
  	instanceVariableNames: 'system'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  PureBehaviorEditor subclass: #ClassDescriptionEditor
  	instanceVariableNames: 'superEditor type instVarNames'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !ClassDescriptionEditor commentStamp: 'mtf 7/29/2008 21:55' prior: 0!
  I am an abstract superclass for both ClassEditor and MetaclassEditor.
  
  I implement  the Behavior protocol: my instances can create instances. This means that my first three variables must remain 'superclass methodDict format', as the VM accesses them positionally, and my superclasses must not define any instance vairables. Only MetaclassEditor makes use of these ivars, but they are defined here to avoid duplicating a lot of ivars and accessing methods between ClassEditor and MetaclassEditor!

Item was changed:
  Object subclass: #AbstractEditor
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Object subclass: #InstanceMigrator
  	instanceVariableNames: 'map instSize origin destination'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!
  
  !InstanceMigrator commentStamp: 'mtf 7/14/2008 23:51' prior: 0!
  My instances are responsible for finding instances of an old class and building them in a new format, to be swapped during MigrationTransaction>>commit!

Item was changed:
  Object subclass: #ClassExporter
  	instanceVariableNames: 'environment classes oldClasses newClasses'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !ClassExporter commentStamp: 'mtf 10/28/2008 18:55' prior: 0!
  This class does a few things. 
  - The second step (becomeForward:)of ClassBuilder>>update:to:
  - add each class to its superclass's subclasses list
  - add each class to the SystemDictionary Smalltalk!

Item was changed:
  Object subclass: #MigrationTransaction
  	instanceVariableNames: 'migrators'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Core'!
- 	category: 'SystemEditor-Editors'!

Item was changed:
  Object subclass: #SourceRepository
  	instanceVariableNames: 'files'
  	classVariableNames: ''
  	poolDictionaries: ''
+ 	category: 'SystemEditor-Squeak'!
- 	category: 'SystemEditor-Editors'!
  
  !SourceRepository commentStamp: 'mtf 7/14/2008 11:55' prior: 0!
  I have no idea what this class is for. It is extensivily tested in SystemEditor-Tests, but it is actually only used two places in the code:
  OrganizationEditor>>writeComment
  MethodEditor>>logCompilationFrom:for:
  
  I have not examined to see what it does -- Matthew Fulmer!

Item was changed:
+ ----- Method: Object>>edIsEditor (in category '*systemeditor-core') -----
- ----- Method: Object>>edIsEditor (in category '*systemeditor-testing') -----
  edIsEditor
  	^ false!

Item was removed:
- ----- Method: RemoteString>>basicFileStream (in category '*systemeditor-accessing') -----
- basicFileStream
- 	(sourceFileNumber == nil or: [(SourceFiles at: sourceFileNumber) == nil]) ifTrue: [^ nil].
- 	^ SourceFiles at: sourceFileNumber.!

Item was removed:
- ----- Method: SystemEditorInfo class>>testClasses (in category 'as yet unclassified') -----
- testClasses
- 	^ self new classes select: [:ea | ea allSuperclasses includes: TestCase]!

Item was removed:
- ----- Method: SystemEditorInfo class>>testSuite (in category 'as yet unclassified') -----
- testSuite
- 	| suite |
- 	suite := TestSuite new.
- 	suite name: self name asString.
- 	self testClasses do: 
- 		[:each | 
- 		each isAbstract ifFalse: [each addToSuiteFromSelectors: suite]].
- 	^ suite!

Item was removed:
- PackageInfo subclass: #SystemEditorInfo
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'SystemEditor-Info'!



More information about the Packages mailing list