[squeak-dev] The Trunk: System-eem.779.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Nov 13 01:18:53 UTC 2015


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]]!



More information about the Squeak-dev mailing list