I'm trying to hunt down a problem with, or at least understand, some
not-understood behavior regarding fixed space allocations. I've created a small parcel (attached) which runs the tests and then removes itself. I'm very interested in how non-linux systems behave. The "test" simply involves allocating 5, and then 10 very large (4MB) byte arrays in Fixed Space. It spits its results to the transcript, which then get shoved into the copy buffer, so that you can reply to me or the list. Thanks to anyone who can run this and give me some feedback. -- Travis Griggs Objologist "Every institution finally perishes by an excess of its own first principle." - Lord Acton ----------------------------------------- DISCLAIMER: This email is bound by the terms and conditions described at http://www.key.net/disclaimer.htm ----------------------------------------- DISCLAIMER: This email is bound by the terms and conditions described at http://www.key.net/disclaimer.htm |
Travis Griggs wrote:
> I'm trying to hunt down a problem with, or at least understand, some > not-understood behavior regarding fixed space allocations. I've created > a small parcel (attached) which runs the tests and then removes itself. > I'm very interested in how non-linux systems behave. The "test" simply > involves allocating 5, and then 10 very large (4MB) byte arrays in > Fixed Space. It spits its results to the transcript, which then get > shoved into the copy buffer, so that you can reply to me or the list. > > Thanks to anyone who can run this and give me some feedback. Tried but failed (running on VW 7.4). It produced a walkback. Here's the stack. Unhandled exception: Message not understood: #occupiesFixedSpace MethodContext(Object)>>doesNotUnderstand: optimized [] in ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: Array(SequenceableCollection)>>do: ObjectMemory class>>allObjectsDo: ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: ObjectMemory class>>showAllFixedInstanceSizeStats ObjectMemory class>>runFixedMemoryTests optimized [] in UndefinedObject>>unboundMethod Parcel>>executeActionBlock:for: Parcel(CodeComponent)>>runAction: Parcel(CodeComponent)>>runPostLoad Parcel(CodeComponent)>>runPostLoadInitializations Parcel(CodeComponent)>>loadFrom:using: Parcel(CodeComponent)>>loadFrom: optimized [] in [] in [] in Parcel class>>loadParcelCachedFrom: BlockClosure>>on:do: optimized [] in [] in Parcel class>>loadParcelCachedFrom: BlockClosure>>on:do: [] in Parcel class>>loadParcelCachedFrom: BlockClosure>>ensure: Parcel class>>loadParcelCachedFrom: optimized [] in [] in Parcel class>>loadParcelFrom: BlockClosure>>ensure: Parcel class>>withFileCachesDo: optimized [] in Parcel class>>loadParcelFrom: Cursor>>showWhile: Parcel class>>loadParcelFrom: optimized [] in [] in [] in ParcelManager>>loadParcels: BlockClosure>>on:do: optimized [] in [] in ParcelManager>>loadParcels: OrderedCollection>>do: optimized [] in ParcelManager>>loadParcels: optimized [] in [] in Notice class>>show:while: BlockClosure>>ensure: Cursor>>showWhile: optimized [] in Notice class>>show:while: BlockClosure>>ensure: Notice class>>show:while: ParcelManager>>loadParcels: ParcelListTool(ParcelSelectionTool)>>loadParcels EmulatedSequenceController(SequenceController)>>dispatchMenuSymbol: EmulatedSequenceController(SequenceController)>>dispatchMenuSelection: EmulatedSequenceController(ControllerWithMenu)>>processMenu:at:centered: EmulatedSequenceController(ControllerWithMenu)>>processMenuAt:centered: EmulatedSequenceController(ControllerWithMenu)>>yellowButtonPressedEvent: EmulatedSequenceController(SequenceController)>>yellowButtonPressedEvent: YellowButtonPressedEvent>>dispatchTo: EmulatedSequenceController(ControllerWithMenu)>>handleEvent: EventDispatcher>>dispatch:to: EventDispatcher>>dispatchEvent: YellowButtonPressedEvent(Event)>>dispatch YellowButtonPressedEvent(Event)>>dispatchForWindowManager: optimized [] in WindowManager>>safelyDispatchForWindowManager: BlockClosure>>on:do: WindowManager>>safelyDispatchForWindowManager: WindowManager>>processNextEvent optimized [] in [] in WindowManager>>newProcess BlockClosure>>on:do: optimized [] in WindowManager>>newProcess BlockClosure>>on:do: optimized [] in Process class>>forBlock:priority: ---------------------------------------------------------------------- MethodContext(Object)>>doesNotUnderstand: Receiver: a MethodContext Instance Variables: method = CompiledMethod ObjectMemory class>>allObjectsNoRetry: pc = -16 sender = nil receiver = ObjectMemory stackp = 3 stack = an Array[12] Arguments: aMessage = a Message with selector: #occupiesFixedSpace and arguments: #() Temporaries: excpt = a MessageNotUnderstood resumeValue = nil Context PC = 25 ---------------------------------------------------------------------- optimized [] in ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: Receiver: an UndefinedObject Arguments: t3 = ObjectMemory class>>allObjectsNoRetry: Temporaries: .t2 = a Dictionary[0] .self = ObjectMemory Context PC = 5 ---------------------------------------------------------------------- Array(SequenceableCollection)>>do: Receiver: an Array Arguments: aBlock = BlockClosure [] in ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: Temporaries: i = 1 Context PC = 19 ---------------------------------------------------------------------- ObjectMemory class>>allObjectsDo: Receiver: an ObjectMemory class Instance Variables: superclass = Object methodDict = a MethodDictionary[92] format = 20542 subclasses = nil instanceVariables = an Array[62] organization = ('incremental queries' #incrementalGCState #percentOfFreeOldSpaceAllocated #percentOfFreeSpaceAllocated) ('space queries' #availableContiguousFixedSpace #availableContiguousOldSpace #availableContiguousSpace) ('converting' #ftEntriesToBytes: #oopsToBytes: #otEntriesToBytes:) ('accessing-general' #bytesPerOOP #bytesPerOTE #enumerationCallsPerMillisecond) ('accessing-remembered table' #bytesPerRTE #rtEntries #rtUsedEntries) ('accessing-new space' #edenBytes #edenUsedBytes #edenUsedBytesScavengeThreshold #survBytes #survUsedBytes #survUsedBytesTenuringThreshold) ('accessing-fixed space' #fixedBytes #fixedSegments #showFixedSpaceStats) ('accessing-large space' #bytesPerFTE #bytesPerLTE #largeBytes #largeFreeBytesTenuringThreshold #largeUsedBytes #largeUsedObjects) ('accessing-fragmentation/free list' #allocFailures #allocMatches #allocProbes #allocSplits #threadedDataBytes #threadedDataEntries #threadedOTEntries) ('accessing-incremental' #incGCState #incMarkedBytes #incMarkedObjects #incMarkedWeakBytes #incMarkedWeakObjects #incNilledBytes #incNilledObjects #incReclaimedBytes #incReclaimedObjects #incSweepAllocatedBytes #incSweepAllocatedObjects #incSweptObjects #incUnmarkedObjects) ('accessing-free space' #availableFreeBytes #availableFreeFixedSpaceBytes #availableFreeLargeSpaceBytes #availableFreeOldSpaceBytes #availableFreeOldSpaceBytesLimit #contiguousFreeBytes #freePermBytes #oopsLeft #reservedContiguousFreeBytes) ('accessing-old space' #oldBytes #oldDataBytes #oldOTEs #oldSegments) ('accessing-segments' #contiguousFixedSpaceAt: #contiguousOldSpaceAt: #contiguousSpaceAt: #fixedDataSizeAt: #fixedSegmentSizeAt: #fixedTableSizeAt: #oldDataSizeAt: #oldOtSizeAt: #oldSegmentSizeAt:) ('accessing-reclamation stats' #numDataCompactions #numGCs #numGlobalGCs #numIncGCs #numScavenges) ('accessing-fixed size spaces' #compCodeCacheBytes #emergencyDebuggingHeadroom #stackBytes #stackZoneFlushBytes) ('utilities' #dynamicallyAllocatedFootprint #numOopsNumBytes #numOopsNumBytesIn: #printSpaceReport) ('accessing-old remembered table' #oldRtEntries #oldRtUsedEntries) ('accessing-perm space' #permBytes #permDataBytes #permOTEs) ('WaveCompatibility' #noticeOfDeinstall #noticeOfInstall) name = #ObjectMemory classPool = a NameSpaceOfClass[14] environment = a NameSpace[237] Arguments: aBlock = BlockClosure [] in ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: Temporaries: list = an Array[511276] obj = nil Context PC = 41 ---------------------------------------------------------------------- ObjectMemory class>>writeAllFixedInstanceSizeStatsOn: Receiver: an ObjectMemory class Instance Variables: superclass = Object methodDict = a MethodDictionary[92] format = 20542 subclasses = nil instanceVariables = an Array[62] organization = ('incremental queries' #incrementalGCState #percentOfFreeOldSpaceAllocated #percentOfFreeSpaceAllocated) ('space queries' #availableContiguousFixedSpace #availableContiguousOldSpace #availableContiguousSpace) ('converting' #ftEntriesToBytes: #oopsToBytes: #otEntriesToBytes:) ('accessing-general' #bytesPerOOP #bytesPerOTE #enumerationCallsPerMillisecond) ('accessing-remembered table' #bytesPerRTE #rtEntries #rtUsedEntries) ('accessing-new space' #edenBytes #edenUsedBytes #edenUsedBytesScavengeThreshold #survBytes #survUsedBytes #survUsedBytesTenuringThreshold) ('accessing-fixed space' #fixedBytes #fixedSegments #showFixedSpaceStats) ('accessing-large space' #bytesPerFTE #bytesPerLTE #largeBytes #largeFreeBytesTenuringThreshold #largeUsedBytes #largeUsedObjects) ('accessing-fragmentation/free list' #allocFailures #allocMatches #allocProbes #allocSplits #threadedDataBytes #threadedDataEntries #threadedOTEntries) ('accessing-incremental' #incGCState #incMarkedBytes #incMarkedObjects #incMarkedWeakBytes #incMarkedWeakObjects #incNilledBytes #incNilledObjects #incReclaimedBytes #incReclaimedObjects #incSweepAllocatedBytes #incSweepAllocatedObjects #incSweptObjects #incUnmarkedObjects) ('accessing-free space' #availableFreeBytes #availableFreeFixedSpaceBytes #availableFreeLargeSpaceBytes #availableFreeOldSpaceBytes #availableFreeOldSpaceBytesLimit #contiguousFreeBytes #freePermBytes #oopsLeft #reservedContiguousFreeBytes) ('accessing-old space' #oldBytes #oldDataBytes #oldOTEs #oldSegments) ('accessing-segments' #contiguousFixedSpaceAt: #contiguousOldSpaceAt: #contiguousSpaceAt: #fixedDataSizeAt: #fixedSegmentSizeAt: #fixedTableSizeAt: #oldDataSizeAt: #oldOtSizeAt: #oldSegmentSizeAt:) ('accessing-reclamation stats' #numDataCompactions #numGCs #numGlobalGCs #numIncGCs #numScavenges) ('accessing-fixed size spaces' #compCodeCacheBytes #emergencyDebuggingHeadroom #stackBytes #stackZoneFlushBytes) ('utilities' #dynamicallyAllocatedFootprint #numOopsNumBytes #numOopsNumBytesIn: #printSpaceReport) ('accessing-old remembered table' #oldRtEntries #oldRtUsedEntries) ('accessing-perm space' #permBytes #permDataBytes #permOTEs) ('WaveCompatibility' #noticeOfDeinstall #noticeOfInstall) name = #ObjectMemory classPool = a NameSpaceOfClass[14] environment = a NameSpace[237] Arguments: t1 = a TextCollector on: Text for 'win32 V5.1 nt i386 Fixed Space Stats total bytes: 204800 used: 0 (0.0) total objects: 1 (avg size: 0.0) segments: 1 overhead: 20 ' Temporaries: t2 = a Dictionary[0] Context PC = 12 ---------------------------------------------------------------------- ObjectMemory class>>showAllFixedInstanceSizeStats Receiver: an ObjectMemory class Instance Variables: superclass = Object methodDict = a MethodDictionary[92] format = 20542 subclasses = nil instanceVariables = an Array[62] organization = ('incremental queries' #incrementalGCState #percentOfFreeOldSpaceAllocated #percentOfFreeSpaceAllocated) ('space queries' #availableContiguousFixedSpace #availableContiguousOldSpace #availableContiguousSpace) ('converting' #ftEntriesToBytes: #oopsToBytes: #otEntriesToBytes:) ('accessing-general' #bytesPerOOP #bytesPerOTE #enumerationCallsPerMillisecond) ('accessing-remembered table' #bytesPerRTE #rtEntries #rtUsedEntries) ('accessing-new space' #edenBytes #edenUsedBytes #edenUsedBytesScavengeThreshold #survBytes #survUsedBytes #survUsedBytesTenuringThreshold) ('accessing-fixed space' #fixedBytes #fixedSegments #showFixedSpaceStats) ('accessing-large space' #bytesPerFTE #bytesPerLTE #largeBytes #largeFreeBytesTenuringThreshold #largeUsedBytes #largeUsedObjects) ('accessing-fragmentation/free list' #allocFailures #allocMatches #allocProbes #allocSplits #threadedDataBytes #threadedDataEntries #threadedOTEntries) ('accessing-incremental' #incGCState #incMarkedBytes #incMarkedObjects #incMarkedWeakBytes #incMarkedWeakObjects #incNilledBytes #incNilledObjects #incReclaimedBytes #incReclaimedObjects #incSweepAllocatedBytes #incSweepAllocatedObjects #incSweptObjects #incUnmarkedObjects) ('accessing-free space' #availableFreeBytes #availableFreeFixedSpaceBytes #availableFreeLargeSpaceBytes #availableFreeOldSpaceBytes #availableFreeOldSpaceBytesLimit #contiguousFreeBytes #freePermBytes #oopsLeft #reservedContiguousFreeBytes) ('accessing-old space' #oldBytes #oldDataBytes #oldOTEs #oldSegments) ('accessing-segments' #contiguousFixedSpaceAt: #contiguousOldSpaceAt: #contiguousSpaceAt: #fixedDataSizeAt: #fixedSegmentSizeAt: #fixedTableSizeAt: #oldDataSizeAt: #oldOtSizeAt: #oldSegmentSizeAt:) ('accessing-reclamation stats' #numDataCompactions #numGCs #numGlobalGCs #numIncGCs #numScavenges) ('accessing-fixed size spaces' #compCodeCacheBytes #emergencyDebuggingHeadroom #stackBytes #stackZoneFlushBytes) ('utilities' #dynamicallyAllocatedFootprint #numOopsNumBytes #numOopsNumBytesIn: #printSpaceReport) ('accessing-old remembered table' #oldRtEntries #oldRtUsedEntries) ('accessing-perm space' #permBytes #permDataBytes #permOTEs) ('WaveCompatibility' #noticeOfDeinstall #noticeOfInstall) name = #ObjectMemory classPool = a NameSpaceOfClass[14] environment = a NameSpace[237] Context PC = 5 ---------------------------------------------------------------------- ObjectMemory class>>runFixedMemoryTests Receiver: an ObjectMemory class Instance Variables: superclass = Object methodDict = a MethodDictionary[92] format = 20542 subclasses = nil instanceVariables = an Array[62] organization = ('incremental queries' #incrementalGCState #percentOfFreeOldSpaceAllocated #percentOfFreeSpaceAllocated) ('space queries' #availableContiguousFixedSpace #availableContiguousOldSpace #availableContiguousSpace) ('converting' #ftEntriesToBytes: #oopsToBytes: #otEntriesToBytes:) ('accessing-general' #bytesPerOOP #bytesPerOTE #enumerationCallsPerMillisecond) ('accessing-remembered table' #bytesPerRTE #rtEntries #rtUsedEntries) ('accessing-new space' #edenBytes #edenUsedBytes #edenUsedBytesScavengeThreshold #survBytes #survUsedBytes #survUsedBytesTenuringThreshold) ('accessing-fixed space' #fixedBytes #fixedSegments #showFixedSpaceStats) ('accessing-large space' #bytesPerFTE #bytesPerLTE #largeBytes #largeFreeBytesTenuringThreshold #largeUsedBytes #largeUsedObjects) ('accessing-fragmentation/free list' #allocFailures #allocMatches #allocProbes #allocSplits #threadedDataBytes #threadedDataEntries #threadedOTEntries) ('accessing-incremental' #incGCState #incMarkedBytes #incMarkedObjects #incMarkedWeakBytes #incMarkedWeakObjects #incNilledBytes #incNilledObjects #incReclaimedBytes #incReclaimedObjects #incSweepAllocatedBytes #incSweepAllocatedObjects #incSweptObjects #incUnmarkedObjects) ('accessing-free space' #availableFreeBytes #availableFreeFixedSpaceBytes #availableFreeLargeSpaceBytes #availableFreeOldSpaceBytes #availableFreeOldSpaceBytesLimit #contiguousFreeBytes #freePermBytes #oopsLeft #reservedContiguousFreeBytes) ('accessing-old space' #oldBytes #oldDataBytes #oldOTEs #oldSegments) ('accessing-segments' #contiguousFixedSpaceAt: #contiguousOldSpaceAt: #contiguousSpaceAt: #fixedDataSizeAt: #fixedSegmentSizeAt: #fixedTableSizeAt: #oldDataSizeAt: #oldOtSizeAt: #oldSegmentSizeAt:) ('accessing-reclamation stats' #numDataCompactions #numGCs #numGlobalGCs #numIncGCs #numScavenges) ('accessing-fixed size spaces' #compCodeCacheBytes #emergencyDebuggingHeadroom #stackBytes #stackZoneFlushBytes) ('utilities' #dynamicallyAllocatedFootprint #numOopsNumBytes #numOopsNumBytesIn: #printSpaceReport) ('accessing-old remembered table' #oldRtEntries #oldRtUsedEntries) ('accessing-perm space' #permBytes #permDataBytes #permOTEs) ('WaveCompatibility' #noticeOfDeinstall #noticeOfInstall) name = #ObjectMemory classPool = a NameSpaceOfClass[14] environment = a NameSpace[237] Temporaries: reference = nil Context PC = 28 ---------------------------------------------------------------------- optimized [] in UndefinedObject>>unboundMethod Receiver: an UndefinedObject Arguments: package = Parcel parcelNamed: 'FixedMemoryTests' Context PC = 3 ---------------------------------------------------------------------- Parcel>>executeActionBlock:for: Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Arguments: blk = BlockClosure [] in UndefinedObject>>unboundMethod aDescription = #postLoadBlock Context PC = 13 ---------------------------------------------------------------------- Parcel(CodeComponent)>>runAction: Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Arguments: aSymbol = #postLoadBlock Temporaries: blk = BlockClosure [] in UndefinedObject>>unboundMethod Context PC = 16 ---------------------------------------------------------------------- Parcel(CodeComponent)>>runPostLoad Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Context PC = 5 ---------------------------------------------------------------------- Parcel(CodeComponent)>>runPostLoadInitializations Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Context PC = 17 ---------------------------------------------------------------------- Parcel(CodeComponent)>>loadFrom:using: Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Arguments: aSource = a PortableFilename('.\FixedMemoryTests.pcl') aCodeReader = a CodeReader Context PC = 48 ---------------------------------------------------------------------- Parcel(CodeComponent)>>loadFrom: Receiver: a Parcel Instance Variables: name = 'FixedMemoryTests' properties = an IdentityDictionary[10] definedObjects = an IdentitySet[0] definedClasses = an IdentitySet[0] definedBindings = an IdentityDictionary[0] classSelectors = an IdentityDictionary[2] namedObjects = a Dictionary[0] dirty = true loaded = false Arguments: aSource = a PortableFilename('.\FixedMemoryTests.pcl') Context PC = 7 ---------------------------------------------------------------------- optimized [] in [] in [] in Parcel class>>loadParcelCachedFrom: Receiver: an UndefinedObject Temporaries: loadedParcel = Parcel parcelNamed: 'FixedMemoryTests' .aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') Context PC = 7 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in [] in Parcel class>>loadParcelCachedFrom: outerContext = nil copiedValues = an Array[2] Arguments: anExceptionSelector = QueryNotification handlerBlock = BlockClosure [] in [] in [] in Parcel class>>loadParcelCachedFrom: Context PC = 18 ---------------------------------------------------------------------- optimized [] in [] in Parcel class>>loadParcelCachedFrom: Receiver: an UndefinedObject Temporaries: loadedParcel = Parcel parcelNamed: 'FixedMemoryTests' .aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') .loadTag = #parcel->'.\FixedMemoryTests.pcl' .self = Parcel Context PC = 16 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in Parcel class>>loadParcelCachedFrom: outerContext = nil copiedValues = an Array[4] Arguments: anExceptionSelector = Parcel abortedActionSignal handlerBlock = BlockClosure [] in [] in Parcel class>>loadParcelCachedFrom: Context PC = 18 ---------------------------------------------------------------------- [] in Parcel class>>loadParcelCachedFrom: Receiver: a Parcel class Instance Variables: superclass = CodeComponent methodDict = a MethodDictionary[231] format = 16393 subclasses = nil instanceVariables = an Array[7] organization = ('initialize-release' #initialize) ('accessing' #bundleName #bundleName: #packageName #packageName: #postUnloadBlock #pundleName #summary #toolListIcon #version #version: #versionString) ('copying' #postCopy) ('printing' #displayString #listEntry #printOn: #putStatsOn:) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeEntiretyOfClass: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace:) ('editing' #addChangeSet: #addChangesToChangeList: #addClassAndAllSelectors: #addClasses: #addClassesAndAllSelectors: #addEntiretyOfClass: #addEntiretyOfClasses: #addName:in: #addNames:in: #addObject: #addObject:named: #addSelector:forClass: #addSelector:toClass: #addSelectors:forClass: #addStatic:to: #cleanse #discard #empty #removeChangeSet: #removeClasses: #removeEntiretyOfClasses: #removeName:in: #removeNames:in: #removeObject: #removeSelector:forClass: #removeSelectors:forClass: #removeStatic:from: #undefineClass: #update:with:from:) ('ui' #fileOutAsFor: #saveParcelDialogFor: #saveParcelDialogFor:preOpen:preSave: #uiForEmpty #uiForRename) ('load/unload' #abortLoadBecause: #abortSaveBecause: #abortUnloadBecause: #createOrFindExpression #fileIntoFrom: #fileOutOn: #packageEnvironment #packageUndeclared #parcelOutOn:withSource:hideOnLoad:republish:backup: #prerequisitesForLoading #remove #unload) ('queries' #allCallsOn: #allImplementorsOf: #classesAndSelectorsDo: #containsSelectors:forClass: #danglingReferencesIfUnloadedDo: #definedAndExtendedClasses #definedBindings #definedBindingsDo: #definedBindingsFor: #definedClasses #definedClassesDo: #definedNamesFor: #definedNameSpaces #definedObjects #definedObjectsDo: #definedOrExtendedClassNamesFor: #definedProtocolsFor: #definedSelectorsFor: #definedSelectorsFor:andProtocol: #definedStaticReferences #definedThings #definesClass: #definesClassOrNameSpace: #definesName:in: #definesObject: #definesOrExtendsBehavior: #definesOrExtendsClass: #definesSelector:forClass: #extendedBehaviors #extendedClasses #extendsBehavior: #extendsClass: #extendsObject: #extensionsDo: #externalMethodsUsedExclusively #getCategoriesOfClasses #getChildrenObjects #loadedPrerequisites #methodsDo: #namedObjects #overridesDo: #unparceledMethodsOfDefinedClasses) ('change set compatibility' #addOtherChange: #addPropertyChange: #atClass:includes: #atName:includes: #atSelector:class: #changedClasses #propertyChanged: #propertyChanged:value:) ('testing' #hasCodeOverriddenByOtherParcels #hasDanglingReferencesIfUnloaded #hasExtendedClasses #hasExtendedNameSpaces #hasExtensions #hasItselfBeenModified #hasOverriddenCode #hasUninstalledCode #isDirty #isEmpty #isLoaded #isParcel #isSaveable #notEmpty) ('private' #adviseManager #checkedActionMethod: #definedClassesExcludedSelectors #definedClassExcludedSelectors: #extensionMethods #forPackage:do: #installUninstalledBindings #installUninstalledClasses #installUninstalledMethods #manager #markAsClean #markAsDirty #markNotModified #nonMetaClassOf: #performAction: #postLoad: #setActionMethod:class:selector: #unloadLogged: #unloadSource #unloadSourceSafely: #writeDefinition:on: #writeMethods:on: #writeRemovalScriptOn:) ('private-selectors' #classesThatHaveBindings #classesThatHaveSelectors #hasBindingsFor: #hasSelectorsFor: #objectsThatHaveBindings #selectorsAt:) ('actions' #executeActionBlock:for:) ('overrides' #comparesTo: #overriddenClass: #overriddenNameSpace: #overriddenSelector:class: #overriddenStatic:in: #reinstalledClass: #reinstalledNameSpace: #reinstalledSelector:class: #reinstalledStatic:in: #removeOverriddenClass: #removeOverriddenNameSpace: #removeOverriddenSelector:class: #removeOverriddenStatic:nameSpace:) ('store-utilities' #classOfDbRecord #relatedPackage #relatedParcel) ('store' #asDBRecord #asPackage #asPackageNamed: #checkPrerequisiteNamed:withVersion:requiredVersion: #copyPropertiesTo: #moveContentsTo: #traceVersion #traceVersionString) ('private-load/unload' #addSpecialItemsFrom: #doComponentLoadedActions #doComponentUpdatingActions: #putStoredPropertiesIn: #queryLoaded:ifLoadedAndOK:ifFail: #removeClass:unloaded: #removeNameSpace:unloaded: #runClassExtensionPostLoadMethods #setParcelPropertyFrom:) ('converting' #asParcel) ('private-editing' #addChangesFor:instanceSelectors:classSelectors:to:bindings:source:) ('Refactoring Browser' #allClassesAndNameSpaces #isUnparceledParcel #textForItem) name = #Parcel classPool = a NameSpaceOfClass[2] environment = a NameSpace[237] parcels = a List[101] classParcelMap = an IdentityDictionary[2608] parcelFileInfoCache = a Dictionary[0] parcelFileDirectoryCache = a Dictionary[0] Temporaries: loadedParcel = Parcel parcelNamed: 'FixedMemoryTests' .aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') .loadTag = #parcel->'.\FixedMemoryTests.pcl' .self = Parcel Context PC = 20 ---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in Parcel class>>loadParcelCachedFrom: outerContext = Parcel class>>loadParcelCachedFrom: copiedValues = an Array[4] Arguments: aBlock = BlockClosure [] in Parcel class>>loadParcelCachedFrom: Temporaries: result = nil Context PC = 4 ---------------------------------------------------------------------- Parcel class>>loadParcelCachedFrom: Receiver: a Parcel class Instance Variables: superclass = CodeComponent methodDict = a MethodDictionary[231] format = 16393 subclasses = nil instanceVariables = an Array[7] organization = ('initialize-release' #initialize) ('accessing' #bundleName #bundleName: #packageName #packageName: #postUnloadBlock #pundleName #summary #toolListIcon #version #version: #versionString) ('copying' #postCopy) ('printing' #displayString #listEntry #printOn: #putStatsOn:) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeEntiretyOfClass: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace:) ('editing' #addChangeSet: #addChangesToChangeList: #addClassAndAllSelectors: #addClasses: #addClassesAndAllSelectors: #addEntiretyOfClass: #addEntiretyOfClasses: #addName:in: #addNames:in: #addObject: #addObject:named: #addSelector:forClass: #addSelector:toClass: #addSelectors:forClass: #addStatic:to: #cleanse #discard #empty #removeChangeSet: #removeClasses: #removeEntiretyOfClasses: #removeName:in: #removeNames:in: #removeObject: #removeSelector:forClass: #removeSelectors:forClass: #removeStatic:from: #undefineClass: #update:with:from:) ('ui' #fileOutAsFor: #saveParcelDialogFor: #saveParcelDialogFor:preOpen:preSave: #uiForEmpty #uiForRename) ('load/unload' #abortLoadBecause: #abortSaveBecause: #abortUnloadBecause: #createOrFindExpression #fileIntoFrom: #fileOutOn: #packageEnvironment #packageUndeclared #parcelOutOn:withSource:hideOnLoad:republish:backup: #prerequisitesForLoading #remove #unload) ('queries' #allCallsOn: #allImplementorsOf: #classesAndSelectorsDo: #containsSelectors:forClass: #danglingReferencesIfUnloadedDo: #definedAndExtendedClasses #definedBindings #definedBindingsDo: #definedBindingsFor: #definedClasses #definedClassesDo: #definedNamesFor: #definedNameSpaces #definedObjects #definedObjectsDo: #definedOrExtendedClassNamesFor: #definedProtocolsFor: #definedSelectorsFor: #definedSelectorsFor:andProtocol: #definedStaticReferences #definedThings #definesClass: #definesClassOrNameSpace: #definesName:in: #definesObject: #definesOrExtendsBehavior: #definesOrExtendsClass: #definesSelector:forClass: #extendedBehaviors #extendedClasses #extendsBehavior: #extendsClass: #extendsObject: #extensionsDo: #externalMethodsUsedExclusively #getCategoriesOfClasses #getChildrenObjects #loadedPrerequisites #methodsDo: #namedObjects #overridesDo: #unparceledMethodsOfDefinedClasses) ('change set compatibility' #addOtherChange: #addPropertyChange: #atClass:includes: #atName:includes: #atSelector:class: #changedClasses #propertyChanged: #propertyChanged:value:) ('testing' #hasCodeOverriddenByOtherParcels #hasDanglingReferencesIfUnloaded #hasExtendedClasses #hasExtendedNameSpaces #hasExtensions #hasItselfBeenModified #hasOverriddenCode #hasUninstalledCode #isDirty #isEmpty #isLoaded #isParcel #isSaveable #notEmpty) ('private' #adviseManager #checkedActionMethod: #definedClassesExcludedSelectors #definedClassExcludedSelectors: #extensionMethods #forPackage:do: #installUninstalledBindings #installUninstalledClasses #installUninstalledMethods #manager #markAsClean #markAsDirty #markNotModified #nonMetaClassOf: #performAction: #postLoad: #setActionMethod:class:selector: #unloadLogged: #unloadSource #unloadSourceSafely: #writeDefinition:on: #writeMethods:on: #writeRemovalScriptOn:) ('private-selectors' #classesThatHaveBindings #classesThatHaveSelectors #hasBindingsFor: #hasSelectorsFor: #objectsThatHaveBindings #selectorsAt:) ('actions' #executeActionBlock:for:) ('overrides' #comparesTo: #overriddenClass: #overriddenNameSpace: #overriddenSelector:class: #overriddenStatic:in: #reinstalledClass: #reinstalledNameSpace: #reinstalledSelector:class: #reinstalledStatic:in: #removeOverriddenClass: #removeOverriddenNameSpace: #removeOverriddenSelector:class: #removeOverriddenStatic:nameSpace:) ('store-utilities' #classOfDbRecord #relatedPackage #relatedParcel) ('store' #asDBRecord #asPackage #asPackageNamed: #checkPrerequisiteNamed:withVersion:requiredVersion: #copyPropertiesTo: #moveContentsTo: #traceVersion #traceVersionString) ('private-load/unload' #addSpecialItemsFrom: #doComponentLoadedActions #doComponentUpdatingActions: #putStoredPropertiesIn: #queryLoaded:ifLoadedAndOK:ifFail: #removeClass:unloaded: #removeNameSpace:unloaded: #runClassExtensionPostLoadMethods #setParcelPropertyFrom:) ('converting' #asParcel) ('private-editing' #addChangesFor:instanceSelectors:classSelectors:to:bindings:source:) ('Refactoring Browser' #allClassesAndNameSpaces #isUnparceledParcel #textForItem) name = #Parcel classPool = a NameSpaceOfClass[2] environment = a NameSpace[237] parcels = a List[101] classParcelMap = an IdentityDictionary[2608] parcelFileInfoCache = a Dictionary[0] parcelFileDirectoryCache = a Dictionary[0] Arguments: aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') Temporaries: loadedParcel = Parcel parcelNamed: 'FixedMemoryTests' loadTag = #parcel->'.\FixedMemoryTests.pcl' Context PC = 46 ---------------------------------------------------------------------- optimized [] in [] in Parcel class>>loadParcelFrom: Receiver: an UndefinedObject Temporaries: .self = Parcel .aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') newParcel = nil Context PC = 7 ---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in Parcel class>>loadParcelFrom: outerContext = nil copiedValues = an Array[3] Arguments: aBlock = BlockClosure [] in Parcel class>>withFileCachesDo: Temporaries: result = nil Context PC = 4 ---------------------------------------------------------------------- Parcel class>>withFileCachesDo: Receiver: a Parcel class Instance Variables: superclass = CodeComponent methodDict = a MethodDictionary[231] format = 16393 subclasses = nil instanceVariables = an Array[7] organization = ('initialize-release' #initialize) ('accessing' #bundleName #bundleName: #packageName #packageName: #postUnloadBlock #pundleName #summary #toolListIcon #version #version: #versionString) ('copying' #postCopy) ('printing' #displayString #listEntry #printOn: #putStatsOn:) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeEntiretyOfClass: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace:) ('editing' #addChangeSet: #addChangesToChangeList: #addClassAndAllSelectors: #addClasses: #addClassesAndAllSelectors: #addEntiretyOfClass: #addEntiretyOfClasses: #addName:in: #addNames:in: #addObject: #addObject:named: #addSelector:forClass: #addSelector:toClass: #addSelectors:forClass: #addStatic:to: #cleanse #discard #empty #removeChangeSet: #removeClasses: #removeEntiretyOfClasses: #removeName:in: #removeNames:in: #removeObject: #removeSelector:forClass: #removeSelectors:forClass: #removeStatic:from: #undefineClass: #update:with:from:) ('ui' #fileOutAsFor: #saveParcelDialogFor: #saveParcelDialogFor:preOpen:preSave: #uiForEmpty #uiForRename) ('load/unload' #abortLoadBecause: #abortSaveBecause: #abortUnloadBecause: #createOrFindExpression #fileIntoFrom: #fileOutOn: #packageEnvironment #packageUndeclared #parcelOutOn:withSource:hideOnLoad:republish:backup: #prerequisitesForLoading #remove #unload) ('queries' #allCallsOn: #allImplementorsOf: #classesAndSelectorsDo: #containsSelectors:forClass: #danglingReferencesIfUnloadedDo: #definedAndExtendedClasses #definedBindings #definedBindingsDo: #definedBindingsFor: #definedClasses #definedClassesDo: #definedNamesFor: #definedNameSpaces #definedObjects #definedObjectsDo: #definedOrExtendedClassNamesFor: #definedProtocolsFor: #definedSelectorsFor: #definedSelectorsFor:andProtocol: #definedStaticReferences #definedThings #definesClass: #definesClassOrNameSpace: #definesName:in: #definesObject: #definesOrExtendsBehavior: #definesOrExtendsClass: #definesSelector:forClass: #extendedBehaviors #extendedClasses #extendsBehavior: #extendsClass: #extendsObject: #extensionsDo: #externalMethodsUsedExclusively #getCategoriesOfClasses #getChildrenObjects #loadedPrerequisites #methodsDo: #namedObjects #overridesDo: #unparceledMethodsOfDefinedClasses) ('change set compatibility' #addOtherChange: #addPropertyChange: #atClass:includes: #atName:includes: #atSelector:class: #changedClasses #propertyChanged: #propertyChanged:value:) ('testing' #hasCodeOverriddenByOtherParcels #hasDanglingReferencesIfUnloaded #hasExtendedClasses #hasExtendedNameSpaces #hasExtensions #hasItselfBeenModified #hasOverriddenCode #hasUninstalledCode #isDirty #isEmpty #isLoaded #isParcel #isSaveable #notEmpty) ('private' #adviseManager #checkedActionMethod: #definedClassesExcludedSelectors #definedClassExcludedSelectors: #extensionMethods #forPackage:do: #installUninstalledBindings #installUninstalledClasses #installUninstalledMethods #manager #markAsClean #markAsDirty #markNotModified #nonMetaClassOf: #performAction: #postLoad: #setActionMethod:class:selector: #unloadLogged: #unloadSource #unloadSourceSafely: #writeDefinition:on: #writeMethods:on: #writeRemovalScriptOn:) ('private-selectors' #classesThatHaveBindings #classesThatHaveSelectors #hasBindingsFor: #hasSelectorsFor: #objectsThatHaveBindings #selectorsAt:) ('actions' #executeActionBlock:for:) ('overrides' #comparesTo: #overriddenClass: #overriddenNameSpace: #overriddenSelector:class: #overriddenStatic:in: #reinstalledClass: #reinstalledNameSpace: #reinstalledSelector:class: #reinstalledStatic:in: #removeOverriddenClass: #removeOverriddenNameSpace: #removeOverriddenSelector:class: #removeOverriddenStatic:nameSpace:) ('store-utilities' #classOfDbRecord #relatedPackage #relatedParcel) ('store' #asDBRecord #asPackage #asPackageNamed: #checkPrerequisiteNamed:withVersion:requiredVersion: #copyPropertiesTo: #moveContentsTo: #traceVersion #traceVersionString) ('private-load/unload' #addSpecialItemsFrom: #doComponentLoadedActions #doComponentUpdatingActions: #putStoredPropertiesIn: #queryLoaded:ifLoadedAndOK:ifFail: #removeClass:unloaded: #removeNameSpace:unloaded: #runClassExtensionPostLoadMethods #setParcelPropertyFrom:) ('converting' #asParcel) ('private-editing' #addChangesFor:instanceSelectors:classSelectors:to:bindings:source:) ('Refactoring Browser' #allClassesAndNameSpaces #isUnparceledParcel #textForItem) name = #Parcel classPool = a NameSpaceOfClass[2] environment = a NameSpace[237] parcels = a List[101] classParcelMap = an IdentityDictionary[2608] parcelFileInfoCache = a Dictionary[0] parcelFileDirectoryCache = a Dictionary[0] Arguments: aBlock = BlockClosure [] in [] in Parcel class>>loadParcelFrom: Context PC = 20 ---------------------------------------------------------------------- optimized [] in Parcel class>>loadParcelFrom: Receiver: an UndefinedObject Temporaries: .self = Parcel .aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') newParcel = nil Context PC = 12 ---------------------------------------------------------------------- Cursor>>showWhile: Receiver: a Cursor Instance Variables: errorCode = 0 handle = 5 image = Depth1Image(extent: 16@16 depth: 1) mask = Depth1Image(extent: 16@16 depth: 1) hotSpot = 0@0 name = 'wait' Arguments: aBlock = BlockClosure [] in Parcel class>>loadParcelFrom: Temporaries: oldcursor = Cursor wait Context PC = 13 ---------------------------------------------------------------------- Parcel class>>loadParcelFrom: Receiver: a Parcel class Instance Variables: superclass = CodeComponent methodDict = a MethodDictionary[231] format = 16393 subclasses = nil instanceVariables = an Array[7] organization = ('initialize-release' #initialize) ('accessing' #bundleName #bundleName: #packageName #packageName: #postUnloadBlock #pundleName #summary #toolListIcon #version #version: #versionString) ('copying' #postCopy) ('printing' #displayString #listEntry #printOn: #putStatsOn:) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeEntiretyOfClass: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace:) ('editing' #addChangeSet: #addChangesToChangeList: #addClassAndAllSelectors: #addClasses: #addClassesAndAllSelectors: #addEntiretyOfClass: #addEntiretyOfClasses: #addName:in: #addNames:in: #addObject: #addObject:named: #addSelector:forClass: #addSelector:toClass: #addSelectors:forClass: #addStatic:to: #cleanse #discard #empty #removeChangeSet: #removeClasses: #removeEntiretyOfClasses: #removeName:in: #removeNames:in: #removeObject: #removeSelector:forClass: #removeSelectors:forClass: #removeStatic:from: #undefineClass: #update:with:from:) ('ui' #fileOutAsFor: #saveParcelDialogFor: #saveParcelDialogFor:preOpen:preSave: #uiForEmpty #uiForRename) ('load/unload' #abortLoadBecause: #abortSaveBecause: #abortUnloadBecause: #createOrFindExpression #fileIntoFrom: #fileOutOn: #packageEnvironment #packageUndeclared #parcelOutOn:withSource:hideOnLoad:republish:backup: #prerequisitesForLoading #remove #unload) ('queries' #allCallsOn: #allImplementorsOf: #classesAndSelectorsDo: #containsSelectors:forClass: #danglingReferencesIfUnloadedDo: #definedAndExtendedClasses #definedBindings #definedBindingsDo: #definedBindingsFor: #definedClasses #definedClassesDo: #definedNamesFor: #definedNameSpaces #definedObjects #definedObjectsDo: #definedOrExtendedClassNamesFor: #definedProtocolsFor: #definedSelectorsFor: #definedSelectorsFor:andProtocol: #definedStaticReferences #definedThings #definesClass: #definesClassOrNameSpace: #definesName:in: #definesObject: #definesOrExtendsBehavior: #definesOrExtendsClass: #definesSelector:forClass: #extendedBehaviors #extendedClasses #extendsBehavior: #extendsClass: #extendsObject: #extensionsDo: #externalMethodsUsedExclusively #getCategoriesOfClasses #getChildrenObjects #loadedPrerequisites #methodsDo: #namedObjects #overridesDo: #unparceledMethodsOfDefinedClasses) ('change set compatibility' #addOtherChange: #addPropertyChange: #atClass:includes: #atName:includes: #atSelector:class: #changedClasses #propertyChanged: #propertyChanged:value:) ('testing' #hasCodeOverriddenByOtherParcels #hasDanglingReferencesIfUnloaded #hasExtendedClasses #hasExtendedNameSpaces #hasExtensions #hasItselfBeenModified #hasOverriddenCode #hasUninstalledCode #isDirty #isEmpty #isLoaded #isParcel #isSaveable #notEmpty) ('private' #adviseManager #checkedActionMethod: #definedClassesExcludedSelectors #definedClassExcludedSelectors: #extensionMethods #forPackage:do: #installUninstalledBindings #installUninstalledClasses #installUninstalledMethods #manager #markAsClean #markAsDirty #markNotModified #nonMetaClassOf: #performAction: #postLoad: #setActionMethod:class:selector: #unloadLogged: #unloadSource #unloadSourceSafely: #writeDefinition:on: #writeMethods:on: #writeRemovalScriptOn:) ('private-selectors' #classesThatHaveBindings #classesThatHaveSelectors #hasBindingsFor: #hasSelectorsFor: #objectsThatHaveBindings #selectorsAt:) ('actions' #executeActionBlock:for:) ('overrides' #comparesTo: #overriddenClass: #overriddenNameSpace: #overriddenSelector:class: #overriddenStatic:in: #reinstalledClass: #reinstalledNameSpace: #reinstalledSelector:class: #reinstalledStatic:in: #removeOverriddenClass: #removeOverriddenNameSpace: #removeOverriddenSelector:class: #removeOverriddenStatic:nameSpace:) ('store-utilities' #classOfDbRecord #relatedPackage #relatedParcel) ('store' #asDBRecord #asPackage #asPackageNamed: #checkPrerequisiteNamed:withVersion:requiredVersion: #copyPropertiesTo: #moveContentsTo: #traceVersion #traceVersionString) ('private-load/unload' #addSpecialItemsFrom: #doComponentLoadedActions #doComponentUpdatingActions: #putStoredPropertiesIn: #queryLoaded:ifLoadedAndOK:ifFail: #removeClass:unloaded: #removeNameSpace:unloaded: #runClassExtensionPostLoadMethods #setParcelPropertyFrom:) ('converting' #asParcel) ('private-editing' #addChangesFor:instanceSelectors:classSelectors:to:bindings:source:) ('Refactoring Browser' #allClassesAndNameSpaces #isUnparceledParcel #textForItem) name = #Parcel classPool = a NameSpaceOfClass[2] environment = a NameSpace[237] parcels = a List[101] classParcelMap = an IdentityDictionary[2608] parcelFileInfoCache = a Dictionary[0] parcelFileDirectoryCache = a Dictionary[0] Arguments: aStringOrFilename = a PortableFilename('.\FixedMemoryTests.pcl') Temporaries: newParcel = nil Context PC = 15 ---------------------------------------------------------------------- optimized [] in [] in [] in ParcelManager>>loadParcels: Receiver: an UndefinedObject Temporaries: .each = a PortableFilename('.\FixedMemoryTests.pcl') Context PC = 6 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in [] in ParcelManager>>loadParcels: outerContext = nil copiedValues = a PortableFilename('.\FixedMemoryTests.pcl') Arguments: anExceptionSelector = OsError handlerBlock = BlockClosure [] in [] in [] in ParcelManager>>loadParcels: Context PC = 18 ---------------------------------------------------------------------- optimized [] in [] in ParcelManager>>loadParcels: Receiver: an UndefinedObject Arguments: each = a PortableFilename('.\FixedMemoryTests.pcl') Context PC = 12 ---------------------------------------------------------------------- OrderedCollection>>do: Receiver: an OrderedCollection Instance Variables: firstIndex = 1 lastIndex = 1 Arguments: aBlock = BlockClosure [] in [] in ParcelManager>>loadParcels: Temporaries: index = 1 Context PC = 17 ---------------------------------------------------------------------- optimized [] in ParcelManager>>loadParcels: Receiver: an UndefinedObject Temporaries: paths = an OrderedCollection[1] .parcelCollection = an OrderedCollection[1] Context PC = 12 ---------------------------------------------------------------------- optimized [] in [] in Notice class>>show:while: Receiver: an UndefinedObject Temporaries: .aBlock = BlockClosure [] in ParcelManager>>loadParcels: result = an UIBuilder babyWindow = an ApplicationWindow 2036 babyWindowManager = a WindowManager Context PC = 5 ---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in Notice class>>show:while: outerContext = nil copiedValues = an Array[2] Arguments: aBlock = BlockClosure [] in Cursor>>showWhile: Temporaries: result = nil Context PC = 4 ---------------------------------------------------------------------- Cursor>>showWhile: Receiver: a Cursor Instance Variables: errorCode = 0 handle = 5 image = Depth1Image(extent: 16@16 depth: 1) mask = Depth1Image(extent: 16@16 depth: 1) hotSpot = 0@0 name = 'wait' Arguments: aBlock = BlockClosure [] in [] in Notice class>>show:while: Temporaries: oldcursor = Cursor normal Context PC = 23 ---------------------------------------------------------------------- optimized [] in Notice class>>show:while: Receiver: an UndefinedObject Temporaries: .baby = a Notice result = an UIBuilder babyWindow = an ApplicationWindow 2036 babyWindowManager = a WindowManager .aBlock = BlockClosure [] in ParcelManager>>loadParcels: Context PC = 48 ---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in Notice class>>show:while: outerContext = nil copiedValues = an Array[3] Arguments: aBlock = BlockClosure [] in Notice class>>show:while: Temporaries: result = nil Context PC = 4 ---------------------------------------------------------------------- Notice class>>show:while: Receiver: a Notice class Instance Variables: superclass = ApplicationModel methodDict = a MethodDictionary[9] format = 16390 subclasses = nil instanceVariables = an Array[2] organization = ('interface opening' #postOpenWith:) ('aspects' #message: #notice #show: #textView) ('updating' #changedMessages) ('private' #invokePostOpen #on:) ('interface closing' #requestForWindowClose) name = #Notice classPool = a NameSpaceOfClass[0] environment = a NameSpace[562] savedWindowInformation = an IdentityDictionary[0] Arguments: aStringOrUserMessage = 'Loading Parcel' aBlock = BlockClosure [] in ParcelManager>>loadParcels: Temporaries: baby = a Notice result = an UIBuilder babyWindow = an ApplicationWindow 2036 babyWindowManager = a WindowManager Context PC = 27 ---------------------------------------------------------------------- ParcelManager>>loadParcels: Receiver: a ParcelManager Instance Variables: dependents = an ApplicationWindow 2027 builder = an UIBuilder uiSession = a ControlManager eventHandlers = nil categoryHolder = a SelectionInList parcelHolder = a SelectionInList detailHolder = a SelectionInList statusTextHolder = a ValueHolder on: 'Unsupported Goodie (not loaded): FixedMemoryTests.pcl' categorySubapplication = a ParcelDirectoriesTool parcelSubapplication = a ParcelListTool detailSubapplication = a ParcelCommentTool selectedGroups = an OrderedCollection[1] displayedParcels = an OrderedCollection[1] selectedParcels = an OrderedCollection[1] Arguments: parcelCollection = an OrderedCollection[1] Context PC = 19 ---------------------------------------------------------------------- ParcelListTool(ParcelSelectionTool)>>loadParcels Receiver: a ParcelListTool Instance Variables: dependents = nil builder = an UIBuilder uiSession = nil eventHandlers = nil manager = a ParcelManager parcelListHolder = a MultiSelectionInList Context PC = 6 ---------------------------------------------------------------------- EmulatedSequenceController(SequenceController)>>dispatchMenuSymbol: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: menuSelection = #loadParcels Context PC = 7 ---------------------------------------------------------------------- EmulatedSequenceController(SequenceController)>>dispatchMenuSelection: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: menuSelection = #loadParcels Context PC = 14 ---------------------------------------------------------------------- EmulatedSequenceController(ControllerWithMenu)>>processMenu:at:centered: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: aMenu = a Menu aPoint = 589@351 centered = true Temporaries: valueResult = a MenuItem 'Load' Context PC = 41 ---------------------------------------------------------------------- EmulatedSequenceController(ControllerWithMenu)>>processMenuAt:centered: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: aPoint = 589@351 centered = true Context PC = 9 ---------------------------------------------------------------------- EmulatedSequenceController(ControllerWithMenu)>>yellowButtonPressedEvent: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: event = a YellowButtonPressedEvent Context PC = 13 ---------------------------------------------------------------------- EmulatedSequenceController(SequenceController)>>yellowButtonPressedEvent: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: event = a YellowButtonPressedEvent Context PC = 19 ---------------------------------------------------------------------- YellowButtonPressedEvent>>dispatchTo: Receiver: a YellowButtonPressedEvent Instance Variables: time = 456866078 initiator = an EventDispatcher window = an ApplicationWindow 2027 state = 2 x = 299 y = 89 gx = 589 gy = 351 buttonNumber = 2 Arguments: anObject = an EmulatedSequenceController Context PC = 4 ---------------------------------------------------------------------- EmulatedSequenceController(ControllerWithMenu)>>handleEvent: Receiver: an EmulatedSequenceController Instance Variables: model = a ValueHolder on: List (a ParcelFileItem ('.\FixedMemoryTests.pcl')) view = a MultiSelectionSequenceView sensor = a TranslatingSensor menuHolder = a Menu performer = a ParcelListTool keyboardProcessor = a KeyboardProcessor outside = false searchString = nil keyboardHook = nil doStringSearching = true dispatcher = an UIDispatcher dragDropCallbacks = nil selectOnDownWithDrag = false autoSelect = true Arguments: anEvent = a YellowButtonPressedEvent Context PC = 24 ---------------------------------------------------------------------- EventDispatcher>>dispatch:to: Receiver: an EventDispatcher Instance Variables: windowController = an ApplicationStandardSystemController currentMouseConsumer = nil grabbingMouse = false keyboardProcessor = a KeyboardProcessor lastControlObject = an EmulatedSequenceController trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a YellowButtonPressedEvent object = an EmulatedSequenceController Temporaries: tmp = nil Context PC = 10 ---------------------------------------------------------------------- EventDispatcher>>dispatchEvent: Receiver: an EventDispatcher Instance Variables: windowController = an ApplicationStandardSystemController currentMouseConsumer = nil grabbingMouse = false keyboardProcessor = a KeyboardProcessor lastControlObject = an EmulatedSequenceController trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a YellowButtonPressedEvent Temporaries: objectWantingControl = an EmulatedSequenceController targetKeyboardProcessor = nil Context PC = 113 ---------------------------------------------------------------------- YellowButtonPressedEvent(Event)>>dispatch Receiver: a YellowButtonPressedEvent Instance Variables: time = 456866078 initiator = an EventDispatcher window = an ApplicationWindow 2027 state = 2 x = 299 y = 89 gx = 589 gy = 351 buttonNumber = 2 Context PC = 16 ---------------------------------------------------------------------- YellowButtonPressedEvent(Event)>>dispatchForWindowManager: Receiver: a YellowButtonPressedEvent Instance Variables: time = 456866078 initiator = an EventDispatcher window = an ApplicationWindow 2027 state = 2 x = 299 y = 89 gx = 589 gy = 351 buttonNumber = 2 Arguments: aWinMgr = a WindowManager Context PC = 4 ---------------------------------------------------------------------- optimized [] in WindowManager>>safelyDispatchForWindowManager: Receiver: an UndefinedObject Temporaries: .event = a YellowButtonPressedEvent .self = a WindowManager Context PC = 6 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager: outerContext = nil copiedValues = an Array[2] Arguments: anExceptionSelector = BadControllerError handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager: Context PC = 18 ---------------------------------------------------------------------- WindowManager>>safelyDispatchForWindowManager: Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[2] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false Arguments: event = a YellowButtonPressedEvent Context PC = 13 ---------------------------------------------------------------------- WindowManager>>processNextEvent Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[2] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false Temporaries: event = a YellowButtonPressedEvent Context PC = 9 ---------------------------------------------------------------------- optimized [] in [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: .self = a WindowManager Context PC = 13 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in WindowManager>>newProcess outerContext = nil copiedValues = a WindowManager Arguments: anExceptionSelector = TerminateException handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess Context PC = 18 ---------------------------------------------------------------------- optimized [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: .self = a WindowManager Context PC = 15 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in WindowManager>>newProcess outerContext = nil copiedValues = a WindowManager Arguments: anExceptionSelector = TerminateException handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 ---------------------------------------------------------------------- optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: .aBlock = BlockClosure [] in WindowManager>>newProcess Context PC = 9 |
On Feb 21, 2006, at 14:42, Chris Winemiller wrote:
Sigh. Replayed a change set wrong. Here's a (hopefully) better version. Thanks and so sorry. -- Travis Griggs Objologist My Other Machine runs OSX. But then... so does this one.
|
Travis Griggs wrote:
> Sigh. Replayed a change set wrong. Here's a (hopefully) better version. > Thanks and so sorry. OK. Here are the results (running on VW 7.4). Chris win32 V5.1 nt i386 Fixed Space Stats total bytes: 204800 used: 0 (0.0) total objects: 1 (avg size: 0.0) segments: 1 overhead: 20 No Fixed Instances Fixed Space Stats total bytes: 21401440 used: 20971585 (0.979915) total objects: 11 (avg size: 1.90651e6) segments: 6 overhead: 20 20971580, 5, ByteArray, 5 X 4194316 Global garbage collection (please wait)... reclaimed 23.01 Mbytes of data and 1 OTEntries in 0.4 sec. heap shrunk by 2.46 Mbytes 44.54 Mbytes total; 21.35 Mbytes used, 23.18 Mbytes free. Fixed Space Stats total bytes: 21401440 used: 0 (0.0) total objects: 6 (avg size: 0.0) segments: 6 overhead: 20 No Fixed Instances Fixed Space Stats total bytes: 42598080 used: 41943170 (0.984626) total objects: 21 (avg size: 1.99729e6) segments: 11 overhead: 20 41943160, 10, ByteArray, 10 X 4194316 Global garbage collection (please wait)... reclaimed 43.98 Mbytes of data and 1 OTEntries in 0.4 sec. heap shrunk by 2.06 Mbytes 65.69 Mbytes total; 21.31 Mbytes used, 44.37 Mbytes free. Fixed Space Stats total bytes: 42598080 used: 0 (0.0) total objects: 21 (avg size: 0.0) segments: 11 overhead: 20 No Fixed Instances |
In reply to this post by Travis Griggs
Virgin 7.4 on XP
SP2, 1GB RAM
HTH,
Steve
win32 V5.1 nt i386
Fixed Space Stats total bytes: 204800 used: 0 (0.0) total objects: 1 (avg size: 0.0) segments: 1 overhead: 20 No Fixed Instances Fixed Space Stats
total bytes: 21401440 used: 20971585 (0.979915) total objects: 11 (avg size: 1.90651e6) segments: 6 overhead: 20 20971580, 5, ByteArray, 5 X 4194316 Global garbage collection (please
wait)...
reclaimed 22.14 Mbytes of data and 0 OTEntries in 0.1 sec. heap shrunk by 1.0 Mbytes 36.66 Mbytes total; 12.9 Mbytes used, 23.76 Mbytes free. Fixed Space Stats
total bytes: 21401440 used: 0 (0.0) total objects: 6 (avg size: 0.0) segments: 6 overhead: 20 No Fixed Instances Fixed Space Stats
total bytes: 42598080 used: 41943170 (0.984626) total objects: 21 (avg size: 1.99729e6) segments: 11 overhead: 20 41943160, 10, ByteArray, 10 X 4194316 Global garbage collection (please
wait)...
reclaimed 43.1 Mbytes of data and 0 OTEntries in 0.1 sec. heap shrunk by 1.46 Mbytes 56.39 Mbytes total; 12.91 Mbytes used, 43.48 Mbytes free. Fixed Space Stats
total bytes: 42598080 used: 0 (0.0) total objects: 21 (avg size: 0.0) segments: 11 overhead: 20 No Fixed Instances
|
So... all of the Windows tests match. (Thanks to all who've run them). They match my results under Linux. What I'm unable to fathom is why it does what it does. Either I've not put the right diagnosis probes in, or it's telling a weird story. I'll thread my comments/questions amongst this run here. I beseech one of the VM dieties to step in and give wisdom.
On Feb 21, 2006, at 15:23, Steven Kelly wrote:
Nothing has happened so far. There are no fixed instances in the system. Yet ObjectMemory seems to think there is one.
Now we've allocated 5 4MB arrays. That last line tells that story. If the first "segment" was sized 204800, we can guess that the remaining 5 segments are 4MB ones, one for each allocation. But the object count tells a weird story. ObjectMemory thinks there are 11 of them. But the last line says there are only 5 as we expect. Also of interest is that the total memory used is 20971580. But ObjectMemory lists 20971585 bytes used. An interesting value, we did 5 new segments/objects and got 5 "extra" bytes.
This bears out the same story. We kept all six segments in memory. But those extra 5 bytes, they disappeared. But we've still got our 6 extra imaginary objects running around.
Same story as the orginal 5. This time with 10. The pattern continues. We pick up an extra byte per byte array. And an extra "fake" object per segment.
Same pattern here as with 5. I guess I could do some alternate tests (maybe I will) to see if the extra memory correlates to segments or objects. Maybe mess with the allocation size. Large byte arrays are our use cases. Another thing that is interesting is that I can't seem to free this memory. Upon some investigation, it would appear that while the default MemoryPolicy will attempt to release/return "normal" memory, it will not do so for FixedSpace. But there is a method that can be used to get that to happen. But even if I do something like... (3 to 7 by: 0.01) detect: [:n | ObjectMemory shrinkFixedSpaceBy: (10 raisedTo: n) rounded] I get a no such element error. I should have put that in the test and seen if Windows boxes do better at that one. -- Travis Griggs Objologist What's next, Intel Processors branded with "Apple Outside" stickers?
|
In reply to this post by Travis Griggs
I added the test for
shrinkFixedSpace:
...
self
showAllFixedInstanceSizeStats.
Transcript cr. ((3 to: 7 by: 0.01) detect: [:n | ObjectMemory shrinkFixedSpaceBy:
(10 raisedTo: n) rounded] ifNone: [])
ifNil: [Transcript show: 'All shrinkFixedSpace attempts
failed'])
ifNotNil: [:n | Transcript
show: 'Successful shrinkFixedSpace for n=', n printString].
Transcript cr; cr. self showFixedSpaceStats. self showAllFixedInstanceSizeStats. Screen default putExternalSelection: Transcript value asString. ...
Below are the
results: interesting is that although all the shrinkFixedSpace attempts failed,
the number of objects there drops from 21 to 11, while all other values remain
the same.
HTH,
Steve
win32 V5.1 nt
i386
Fixed Space Stats total bytes: 204800 used: 0 (0.0) total objects: 1 (avg size: 0.0) segments: 1 overhead: 20 No Fixed Instances Fixed Space
Stats
total bytes: 21401440 used: 20971585 (0.979915) total objects: 11 (avg size: 1.90651e6) segments: 6 overhead: 20 20971580, 5, ByteArray, 5 X 4194316 Global garbage
collection (please wait)...
reclaimed 22.15 Mbytes of data and 0 OTEntries in 0.1 sec. heap shrunk by 1.0 Mbytes 36.65 Mbytes total; 13.23 Mbytes used, 23.42 Mbytes free. Fixed Space
Stats
total bytes: 21401440 used: 0 (0.0) total objects: 6 (avg size: 0.0) segments: 6 overhead: 20 No Fixed Instances Fixed Space
Stats
total bytes: 42598080 used: 41943170 (0.984626) total objects: 21 (avg size: 1.99729e6) segments: 11 overhead: 20 41943160, 10, ByteArray, 10 X 4194316 Global garbage
collection (please wait)...
reclaimed 43.12 Mbytes of data and 1 OTEntries in 0.1 sec. heap shrunk by 1.0 Mbytes 57.85 Mbytes total; 13.23 Mbytes used, 44.61 Mbytes free. Fixed Space
Stats
total bytes: 42598080 used: 0 (0.0) total objects: 21 (avg size: 0.0) segments: 11 overhead: 20 No Fixed Instances All shrinkFixedSpace
attempts failed
Fixed Space Stats total bytes: 42598080 used: 0 (0.0) total objects: 11 (avg size: 0.0) segments: 11 overhead: 20 No Fixed Instances
|
Free forum by Nabble | Edit this page |