Eliot Miranda uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-eem.320.mcz
==================== Summary ====================
Name: MorphicExtras-eem.320
Author: eem
Time: 6 July 2022, 9:45:25.449703 am
UUID: c0d225df-dd2b-4722-ae89-835d65139e20
Ancestors: MorphicExtras-mt.319
Avoid the WebCamMorph>>drawOn: method immediately turning on a webcam that has been turned off, while at the same time ensuring that the drawOn: method does cause the webcam to turn on when first opened.
Use allSubInstances when checking for other users of a webcam in WebCamMorph>>off so that subclasses can be active.
=============== Diff against MorphicExtras-mt.319 ===============
Item was changed:
----- Method: WebCamMorph>>drawOn: (in category 'drawing') -----
drawOn: aCanvas
camIsOn ifFalse:
+ [| turnOn |
+ turnOn := displayForm isNil.
+ self initializeDisplayForm.
+ turnOn ifTrue: [self on]].
- [self initializeDisplayForm.
- self on].
camIsOn ifTrue:
[(CameraInterface frameExtent: camNum) ~= displayForm extent ifTrue:
[self initializeDisplayForm]].
displayForm ifNil:
[self initializeDisplayForm].
useFrameSize ifTrue: [self extent: frameExtent].
self drawCameraImageOn: aCanvas.
self drawFPSOn: aCanvas.
self drawOverlayTextOn: aCanvas!
Item was changed:
----- Method: WebCamMorph>>off (in category 'accessing') -----
off
self stopStepping.
camIsOn := false.
"Be careful not to close the camera if any other morphs are using the same camera."
+ (self class allSubInstances anySatisfy: [:wcm| wcm cameraNumber = camNum and: [wcm cameraIsOn]]) ifFalse:
- (self class allInstances anySatisfy: [:wcm| wcm cameraNumber = camNum and: [wcm cameraIsOn]]) ifFalse:
[CameraInterface closeCamera: camNum].
self changed
"self allInstances select: [:wcm| wcm cameraNumber = 1 and: [wcm cameraIsOn]]"!
A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-jar.2018.mcz
==================== Summary ====================
Name: Morphic-jar.2018
Author: jar
Time: 6 July 2022, 10:19:54.175389 am
UUID: 78dd80d9-1174-0c40-ad18-6f76e13e744b
Ancestors: Morphic-mt.2017
Add an "exit condition" to the UI loop to allow a former UI process to finish its last cycle and terminate gracefully. It allows to create a new UI without the need to explicitely terminate the old one because a UI process will terminate automatically once it's replaced by a new one. This change could allow UI proceses blocked on custom semaphores to continue waiting for a signal and finish their previous job (and terminate). Also, it prevents two UI processes to exist at the same time; only the one registered in the 'uiProcess' variable is allowed to cycle.
Please review for any potential drawbacks or conflicts I may have missed.
=============== Diff against Morphic-mt.2017 ===============
Item was changed:
----- Method: MorphicProject>>spawnNewProcess (in category 'active process') -----
spawnNewProcess
uiProcess := [
+ [world doOneCycle. Processor yield. uiProcess isActiveProcess] whileTrue.
- [world doOneCycle. Processor yield ] repeat.
] newProcess priority: Processor userSchedulingPriority.
uiProcess resume!
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.479.mcz
==================== Summary ====================
Name: Compiler-eem.479
Author: eem
Time: 5 July 2022, 4:06:16.298061 pm
UUID: 61d1f08e-6212-45d1-b07a-8d4d39ce7c2f
Ancestors: Compiler-eem.478
Add BytecodeEncoder class>>isReturnSelfFromMethodAt:in: and Sista & V3 implementations so that CompiledCode>>hasMethodReturn can be implemented correctly.
=============== Diff against Compiler-eem.478 ===============
Item was added:
+ ----- Method: BytecodeEncoder class>>isReturnSelfFromMethodAt:in: (in category 'instruction stream support') -----
+ isReturnSelfFromMethodAt: pc in: method
+ "Answer whether the bytecode at pc is a return self from method."
+
+ self subclassResponsibility!
Item was added:
+ ----- Method: EncoderForSistaV1 class>>isReturnSelfFromMethodAt:in: (in category 'instruction stream support') -----
+ isReturnSelfFromMethodAt: pc in: method
+ "Answer whether the bytecode at pc is a return self from method."
+
+ ^(method at: pc) = 88!
Item was added:
+ ----- Method: EncoderForV3 class>>isReturnSelfFromMethodAt:in: (in category 'instruction stream support') -----
+ isReturnSelfFromMethodAt: pc in: method
+ "Answer whether the bytecode at pc is a return self from method."
+
+ ^(method at: pc) = 120!
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.478.mcz
==================== Summary ====================
Name: Compiler-eem.478
Author: eem
Time: 5 July 2022, 3:48:42.124762 pm
UUID: 86982c07-bd3e-433f-9eaa-ff18ec4828f7
Ancestors: Compiler-mt.477
Add missing EncoderForSistaV1 class>>isReturnTopFromMethodAt:in:
=============== Diff against Compiler-mt.477 ===============
Item was added:
+ ----- Method: EncoderForSistaV1 class>>isReturnTopFromMethodAt:in: (in category 'instruction stream support') -----
+ isReturnTopFromMethodAt: pc in: method
+ "Answer whether the bytecode at pc is a return stack top from method."
+
+ ^(method at: pc) = 92!