Andreas Raab uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ar.282.mcz ==================== Summary ==================== Name: System-ar.282 Author: ar Time: 5 March 2010, 9:54:01.237 pm UUID: af9ae3be-7789-424c-bb0b-8908ee9b5f7e Ancestors: System-ar.281 Final touches. Done. Phew. =============== Diff against System-ar.281 =============== Item was changed: Object subclass: #SmalltalkImage instanceVariableNames: 'globals' classVariableNames: 'EndianCache LastImageName LastQuitLogPosition LastStats LowSpaceProcess LowSpaceSemaphore MemoryHogs ShutDownList SourceFileVersionString SpecialSelectors StartUpList StartupStamp WordSize' poolDictionaries: '' category: 'System-Support'! - SmalltalkImage class - instanceVariableNames: 'current'! !SmalltalkImage commentStamp: 'sd 7/2/2003 21:50' prior: 0! I represent the SmalltalkImage and partly the VM. Using my current instance you can - get the value of some VM parameters, system arguments, vm profiling, endianess status, external objects,.... - save the image, manage sources As you will notice browsing my code I'm a fat class having still too much responsibility. But this is life. sd-2 July 2003 PS: if someone wants to split me go ahead.! - SmalltalkImage class - instanceVariableNames: 'current'! Item was changed: ----- Method: SmalltalkImage class>>current (in category 'instance creation') ----- current + "Deprecated. Use Smalltalk instead." + ^Smalltalk! - "Note that this could be implemented differently to avoid the test" - - current isNil - ifTrue: [current := self basicNew]. - ^ current! Item was changed: IdentityDictionary subclass: #SystemDictionary instanceVariableNames: 'cachedClassNames' + classVariableNames: '' - classVariableNames: 'LastImageName LastQuitLogPosition LowSpaceProcess LowSpaceSemaphore MemoryHogs ShutDownList SpecialSelectors StartUpList StartupStamp SystemChanges WordSize' poolDictionaries: '' category: 'System-Support'! !SystemDictionary commentStamp: '<historical>' prior: 0! I represent a special dictionary that supports protocol for asking questions about the structure of the system. Other than class names, I contain (print this)... Smalltalk keys select: [:k | ((Smalltalk at: k) isKindOf: Class) not] thenCollect: [:k | k -> (Smalltalk at: k) class] ! Item was changed: ----- Method: AbstractLauncher class>>extractParameters (in category 'private') ----- extractParameters + + | pName value index globals | + globals := Dictionary new. + index := 3. + [pName := Smalltalk getSystemAttribute: index. + pName isEmptyOrNil] whileFalse:[ + index := index + 1. + value := Smalltalk getSystemAttribute: index. + value ifNil: [value := '']. + globals at: pName asUppercase put: value. + index := index + 1]. + ^globals! - - ^ SmalltalkImage current extractParameters! Item was changed: ----- Method: SmalltalkImage class>>initialize (in category 'class initialization') ----- initialize "SmalltalkImage initialize" - "XXX: Just to clean up after the transition" - Smalltalk removeEmptyMessageCategories. - self initializeStartUpList. self initializeShutDownList. ! Item was changed: ----- Method: SmalltalkImage class>>new (in category 'instance creation') ----- new + self error: 'Use Smalltalk'.! - self error: 'Use current'.! Item was removed: - ----- Method: SmalltalkImage>>extractParameters (in category 'system attributes') ----- - extractParameters - - | pName value index globals | - globals := Dictionary new. - index := 3. "Muss bei 3 starten, da 2 documentName ist" - [pName := self getSystemAttribute: index. - pName isEmptyOrNil] whileFalse:[ - index := index + 1. - value := self getSystemAttribute: index. - value ifNil: [value := '']. - globals at: pName asUppercase put: value. - index := index + 1]. - ^globals! |
Free forum by Nabble | Edit this page |