Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1217.mcz
==================== Summary ====================
Name: System-mt.1217
Author: mt
Time: 18 February 2021, 10:39:44.603465 am
UUID: d3cc5ff1-d4e9-274f-b695-caa62309d8cf
Ancestors: System-mt.1216
Maps "MPW" initials to "Marcel Weiher"
=============== Diff against System-mt.1216 ===============
Item was changed:
----- Method: SystemNavigation class>>privateAuthorsRaw (in category 'class initialization') -----
(excessive size, no diff calculated)
Item was changed:
+ (PackageInfo named: 'System') postscript: 'SystemNavigation initializeAuthors.....'!
- (PackageInfo named: 'System') postscript: 'SystemNavigation initializeAuthors....'!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1216.mcz
==================== Summary ====================
Name: System-mt.1216
Author: mt
Time: 18 February 2021, 9:16:17.196751 am
UUID: 70862cfd-0be1-453a-b6af-8697996913ba
Ancestors: System-mt.1215
Replaces direct access to class var with accessor to make resetting of pragma preference work.
=============== Diff against System-mt.1215 ===============
Item was changed:
----- Method: MessageTally class>>initialize (in category 'class initialization') -----
initialize
"MessageTally initialize"
- "By default, show each process separately"
- ShowProcesses ifNil: [ShowProcesses := true].
Smalltalk
addToShutDownList: self after: Delay; "i.e. convert to relative times & stats after Delay sleeps."
addToStartUpList: self before: Delay "i.e. convert back to absolute stats before Delay wakes."!
Item was changed:
----- Method: MessageTally class>>spyOn: (in category 'spying') -----
spyOn: aBlock
"Spy on aBlock, in the current process. Can include or not statistics on other processes in the report.
[1000 timesRepeat: [
100 timesRepeat: [120 factorial].
(Delay forMilliseconds: 10) wait
]] forkAt: 45 named: '45'.
MessageTally spyOn: [10000 timesRepeat: [1.23 printString]]
"
+ ^self spyOn: aBlock reportOtherProcesses: self showProcesses!
- ^self spyOn: aBlock reportOtherProcesses: ShowProcesses!
Item was changed:
----- Method: MessageTally class>>spyOnProcess:forMilliseconds: (in category 'spying') -----
spyOnProcess: aProcess forMilliseconds: msecDuration
"
Spy on aProcess for a certain amount of time
| p1 p2 |
p1 := [100000 timesRepeat: [3.14159 printString. Processor yield]] newProcess.
p2 := [100000 timesRepeat: [3.14159 printString. Processor yield]] newProcess.
p1 resume.
p2 resume.
(Delay forMilliseconds: 100) wait.
MessageTally spyOnProcess: p1 forMilliseconds: 1000
"
^self
spyOnProcess: aProcess
forMilliseconds: msecDuration
+ reportOtherProcesses: self showProcesses
- reportOtherProcesses: ShowProcesses
!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1372.mcz
==================== Summary ====================
Name: Kernel-eem.1372
Author: eem
Time: 17 February 2021, 9:43:25.718097 am
UUID: 925aae94-6b62-4770-b21d-499dd106ba6d
Ancestors: Kernel-mt.1371
BlockClosure>>valueWithExit really should return the value of the block if exit is not taken.
=============== Diff against Kernel-mt.1371 ===============
Item was changed:
----- Method: BlockClosure>>valueWithExit (in category 'evaluating') -----
valueWithExit
"Provides an exit block to the receiver. Use it to break out of the control flow with an early return. Examples below.
[:break | 1 to: 10 do: [:each | each > 5 ifTrue: [break value]]] valueWithExit.
1 to: 10 do: [:each | [:continue | each > 5 ifTrue: [continue value]] valueWithExit]."
+ ^self value: [ ^nil ]!
- self value: [ ^nil ]!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1371.mcz
==================== Summary ====================
Name: Kernel-mt.1371
Author: mt
Time: 17 February 2021, 5:56:29.152426 pm
UUID: 1e5b05c3-feb7-e945-a253-3218ee358e74
Ancestors: Kernel-mt.1370
Extracts better examples for #valueWithExit from squeak-dev mailing list.
=============== Diff against Kernel-mt.1370 ===============
Item was changed:
----- Method: BlockClosure>>valueWithExit (in category 'evaluating') -----
valueWithExit
+ "Provides an exit block to the receiver. Use it to break out of the control flow with an early return. Examples below.
+ [:break | 1 to: 10 do: [:each | each > 5 ifTrue: [break value]]] valueWithExit.
+ 1 to: 10 do: [:each | [:continue | each > 5 ifTrue: [continue value]] valueWithExit]."
- "Provides an exit block to the receiver. Use it to break out of the control flow with an early return. For example:
- [:exit | 1 to: 10 do: [:each | each > 5 ifTrue: [exit value]]] valueWithExit"
self value: [ ^nil ]!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1370.mcz
==================== Summary ====================
Name: Kernel-mt.1370
Author: mt
Time: 17 February 2021, 5:48:45.447426 pm
UUID: fe073783-4c0c-e345-aebe-4ea80f101f00
Ancestors: Kernel-dtl.1369
Adds commentary for #valueWithExit.
=============== Diff against Kernel-dtl.1369 ===============
Item was changed:
----- Method: BlockClosure>>valueWithExit (in category 'evaluating') -----
+ valueWithExit
+ "Provides an exit block to the receiver. Use it to break out of the control flow with an early return. For example:
+ [:exit | 1 to: 10 do: [:each | each > 5 ifTrue: [exit value]]] valueWithExit"
- valueWithExit
self value: [ ^nil ]!