Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.779.mcz ==================== Summary ==================== Name: System-eem.779 Author: eem Time: 12 November 2015, 5:17:00.950228928 pm UUID: 91db5f9f-27ba-4514-bb9c-90c1bbcabd07 Ancestors: System-nice.778 Avoid isKindOf: in new endianness handling in ImageSegment. Nuke obsolete BreakpointManager method. Simplify endianness calculation given that this is Spur and the vmParameter can be assumed to be present. Provide accessors for the new (biut as yet unused) finalization scheme (in preparation). Add a method that answers unbound methods, useful for recmpile all shenannigans. =============== Diff against System-nice.778 =============== Item was removed: - ----- Method: BreakpointManager class>>breakpointMethodSourceFor:in: (in category 'private') ----- - breakpointMethodSourceFor: aSymbol in: aClass - "Compose new source containing a break statement (currently it will be the first, - later we want to insert it in any place)" - - | oldSource methodNode breakOnlyMethodNode sendBreakMessageNode | - oldSource := aClass sourceCodeAt: aSymbol. - methodNode := aClass newCompiler - compile: oldSource - in: aClass - notifying: nil - ifFail: [self error: '[breakpoint] unable to install breakpoint']. - breakOnlyMethodNode := aClass newCompiler - compile: 'temporaryMethodSelectorForBreakpoint - self break. - ^self' - in: aClass - notifying: nil - ifFail: [self error: '[breakpoint] unable to install breakpoint']. - sendBreakMessageNode := breakOnlyMethodNode block statements first. - methodNode block statements addFirst: sendBreakMessageNode. - ^methodNode printString - ! Item was changed: ----- Method: ImageSegment>>endianness (in category 'fileIn/Out') ----- endianness "Return which endian kind the incoming segment came from" + segment class isBits ifFalse: + ["Hope that primitive 98 did the right thing - anyway, we lost information about endianness, so pretend we share the image's endianness." + ^Smalltalk endianness]. + ^(segment first bitShift: -24) asCharacter == $d ifTrue: [#big] ifFalse: [#little]! - (segment isKindOf: WordArray) - ifFalse: - ["Hope that primitive 98 did the right thing - anyway, we lost information about endianness, so the pretend we share image endianness." - ^Smalltalk endianness]. - ^ (segment first bitShift: -24) asCharacter == $d ifTrue: [#big] ifFalse: [#little]! Item was changed: ----- Method: SmalltalkImage>>isRunningCog (in category 'system attributes') ----- isRunningCog "Answers if we're running on a Cog VM (JIT or StackInterpreter)" + ^(self vmParameterAt: 42) - ^( [self vmParameterAt: 42] on: Error do: [] ) ifNil: [false] ifNotNil: [:numStackPages| numStackPages > 0]! Item was added: + ----- Method: SmalltalkImage>>supportsQueueingFinalization (in category 'system attributes') ----- + supportsQueueingFinalization + "Answer whether the VM queues individual weak arrays for finalization, instead + of signalling the finalization semaphore once for all arrays and having the + WeakRegistry mechanism finalize all weak arrays, whether they need to or not." + "SmalltalkImage current supportsQueueingFinalization" + + ^(self vmParameterAt: 48) anyMask: 16! Item was added: + ----- Method: SmalltalkImage>>supportsQueueingFinalization: (in category 'system attributes') ----- + supportsQueueingFinalization: aBoolean + "Determine whether the VM queues individual weak arrays for finalization, instead + of signalling the finalization semaphore once for all arrays and having the + WeakRegistry mechanism finalize all weak arrays, whether they need to or not. + This flag persists across snapshots, stored in the image header." + "SmalltalkImage current supportsQueueingFinalization: true" + + self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 16) + (aBoolean ifTrue: [16] ifFalse: [0])! Item was added: + ----- Method: SystemNavigation>>allUnboundMethods (in category 'query') ----- + allUnboundMethods + "Answer all CompiledMehtods that are not in the class hierarchy" + "self systemNavigation allUnboundMethods" + ^CompiledMethod allSubInstances select: + [:m| + m methodClass + ifNil: [true] + ifNotNil: + [:mc| + (mc compiledMethodAt: m selector ifAbsent: []) ~~ m]]! |
Free forum by Nabble | Edit this page |