Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.353.mcz==================== Summary ====================
Name: System-eem.353
Author: eem
Time: 22 July 2010, 5:53:14.999 pm
UUID: 6757175d-0063-4089-916c-4dfc0cc425c7
Ancestors: System-ar.352
Some Cog-specific VM attribute accessors for process
preemption, flagging of interpreted methods and whether
Process has a threadId inst var.
=============== Diff against System-ar.352 ===============
Item was added:
+ ----- Method: SmalltalkImage>>processHasThreadIdInstVar: (in category 'system attributes') -----
+ processHasThreadIdInstVar: aBoolean
+ "The threaded VM needs to know if the 4th inst var of Process
+ is threadId which it uses to control process-to-thread binding.
+ This flag persists across snapshots, stored in the image header."
+ aBoolean ifTrue: [self assert: (Process instVarNames at: 4) ='threadId'].
+ self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 1) + (aBoolean ifTrue: [1] ifFalse: [0])!
Item was added:
+ ----- Method: SmalltalkImage>>processPreemptionYields (in category 'system attributes') -----
+ processPreemptionYields
+ "Answer whether the VM causes a process to yield on process preemption,
+ i.e. to put a preempted process at the back of its run queue. If the parameter
+ is unavailable (non-Cog VMs) or bit 2 (4) is 0 then preemption yields."
+
+ ^(([self vmParameterAt: 48]
+ on: Error
+ do: [:ex| ^true]) allMask: 4) not!
Item was added:
+ ----- Method: SmalltalkImage>>processPreemptionYields: (in category 'system attributes') -----
+ processPreemptionYields: aBoolean
+ "The Cog VM can be instructed not to yield on process preemption,
+ i.e. not to put a preempted process at the back of its run queue. By
+ default preempting a process causes it to yield (Blue Book semantics)
+ which can have unfortunate effects.
+ This flag persists across snapshots, stored in the image header."
+
+ self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 4) + (aBoolean ifTrue: [0] ifFalse: [4])!
Item was added:
+ ----- Method: SmalltalkImage>>flagInterpretedMethods: (in category 'system attributes') -----
+ flagInterpretedMethods: aBoolean
+ "The Cog VM can be instructed to set the flag bit of CompiledMethods that
+ it executes but will only interpret. This can be used e.g. to profile startup.
+ See CompiledMethod>>#flag & CompiledMethod>>#clearFlag.
+ This flag persists across snapshots, stored in the image header."
+
+ self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 2) + (aBoolean ifTrue: [2] ifFalse: [0])!