Fabio Niephaus uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-fn.432.mcz
==================== Summary ====================
Name: Installer-Core-fn.432
Author: fn
Time: 23 May 2019, 11:46:13.072639 am
UUID: 6b46a836-777c-4bbc-98b3-994a4b3f2fce
Ancestors: Installer-Core-cmm.431
Install Metacello without asking user explicitly for permission, because the user has already requested a working Metacello via a doIt (similar to the explicit click on the `Tools` menu item). This also helps to unblock smalltalkCI builds as they freeze on the confirmation window.
Next step: fix the URI bug to unblock trunk builds as well.
=============== Diff against Installer-Core-cmm.431 ===============
Item was removed:
- ----- Method: MetacelloStub class>>confirmMetacello (in category 'overriding') -----
- confirmMetacello
- Installer isMetacelloInstalled ifFalse:
- [ (UIManager confirm: 'This action requires Metacello, but it''s not installed. Download and install it now?') ifTrue: [ Installer ensureRecentMetacello ] ]!
Item was changed:
----- Method: MetacelloStub class>>doesNotUnderstand: (in category 'overriding') -----
doesNotUnderstand: aMessage
"Handle any messages sent to Metacello class, too."
+ Installer ensureRecentMetacello.
- self confirmMetacello.
^ aMessage sendTo: (Smalltalk classNamed: #Metacello)!
Item was changed:
----- Method: MetacelloStub class>>new (in category 'overriding') -----
new
+ Installer ensureRecentMetacello.
- self confirmMetacello.
^ (Smalltalk at: #Metacello) new!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1235.mcz
==================== Summary ====================
Name: Kernel-mt.1235
Author: mt
Time: 21 May 2019, 10:48:13.016822 am
UUID: 2ca86cdb-5328-3a44-aac6-346c8d44d2ca
Ancestors: Kernel-nice.1234
Replace the few sends to #valueWithPossibleArgument: with #cull: because there is no need to expect blocks with more than one argument to be filled with nils.
=============== Diff against Kernel-nice.1234 ===============
Item was changed:
----- Method: Object>>haltIf: (in category 'debugging') -----
haltIf: condition
"This is the typical message to use for inserting breakpoints during
debugging. Param can be a block or expression, halt if true.
If the Block has one arg, the receiver is bound to that.
If the condition is a selector, we look up in the callchain. Halt if
any method's selector equals selector."
| cntxt |
condition isSymbol ifTrue:[
"only halt if a method with selector symbol is in callchain"
cntxt := thisContext.
[cntxt sender isNil] whileFalse: [
cntxt := cntxt sender.
(cntxt selector = condition) ifTrue: [Halt signal].
].
^self.
].
(condition isBlock
+ ifTrue: [condition cull: self]
- ifTrue: [condition valueWithPossibleArgument: self]
ifFalse: [condition]
) ifTrue: [
Halt signal
].!
Item was changed:
----- Method: ObjectViewer>>doesNotUnderstand: (in category 'very few messages') -----
doesNotUnderstand: aMessage
"Check for change after sending aMessage"
| returnValue newValue |
recursionFlag ifTrue: [^ aMessage sendTo: tracedObject].
recursionFlag := true.
returnValue := aMessage sendTo: tracedObject.
+ newValue := valueBlock cull: aMessage.
- newValue := valueBlock valueWithPossibleArgument: aMessage.
newValue = lastValue ifFalse:
+ [changeBlock cull: aMessage.
- [changeBlock valueWithPossibleArgument: aMessage..
lastValue := newValue].
recursionFlag := false.
^ returnValue!
Marcel Taeumel uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-mt.834.mcz
==================== Summary ====================
Name: Collections-mt.834
Author: mt
Time: 21 May 2019, 10:47:25.375822 am
UUID: 505856e5-ecbf-cf41-ab6d-ef0b7b3dd45b
Ancestors: Collections-mt.833
Replace the few sends to #valueWithPossibleArgument: with #cull: because there is no need to expect blocks with more than one argument to be filled with nils. Updates comments.
=============== Diff against Collections-mt.833 ===============
Item was changed:
----- Method: Collection>>ifEmpty: (in category 'testing') -----
ifEmpty: aBlock
+ "Evaluate aBlock if I'm empty, return myself otherwise."
- "Evaluate the block if I'm empty"
+ self isEmpty ifTrue: [^ aBlock value].!
- self isEmpty ifTrue: [ ^aBlock value ]!
Item was changed:
----- Method: Collection>>ifEmpty:ifNotEmpty: (in category 'testing') -----
ifEmpty: emptyBlock ifNotEmpty: notEmptyBlock
+ "Evaluate emptyBlock if I'm empty, notEmptyBlock otherwise. If the notEmptyBlock has an argument, evalualte it with myself as its argument. See also #ifEmpty:ifNotEmptyDo:."
- "Evaluate emptyBlock if I'm empty, notEmptyBlock otherwise"
- " If the notEmptyBlock has an argument, eval with the receiver as its argument"
+ self isEmpty ifTrue: [^ emptyBlock value].
+ ^ notEmptyBlock cull: self!
- self isEmpty ifTrue: [ ^emptyBlock value ].
- ^notEmptyBlock valueWithPossibleArgument: self!
Item was changed:
----- Method: Collection>>ifNotEmpty: (in category 'testing') -----
ifNotEmpty: aBlock
+ "Evaluate aBlock if I'm not empty, return myself otherwise. If aBlock has an argument, evaluate it with myself as its argument. See also #ifNotEmptyDo:."
- "Evaluate the given block unless the receiver is empty.
+ self isEmpty ifFalse: [^ aBlock cull: self].!
- If the block has an argument, eval with the receiver as its argument,
- but it might be better to use ifNotEmptyDo: to make the code easier to
- understand"
-
- self isEmpty ifFalse: [^ aBlock valueWithPossibleArgument: self].
- !
Item was changed:
----- Method: Collection>>ifNotEmpty:ifEmpty: (in category 'testing') -----
ifNotEmpty: notEmptyBlock ifEmpty: emptyBlock
+ "Evaluate emptyBlock if I'm empty, notEmptyBlock otherwise. If the notEmptyBlock has an argument, evaluate it with myself as its argument. See also #ifNotEmptyDo:ifEmpty:."
- "Evaluate emptyBlock if I'm empty, notEmptyBlock otherwise
- If the notEmptyBlock has an argument, eval with the receiver as its argument"
+ self isEmpty ifFalse: [^notEmptyBlock cull: self].
+ ^ emptyBlock value!
- self isEmpty ifFalse: [ ^notEmptyBlock valueWithPossibleArgument: self ].
- ^emptyBlock value!
Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.124.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-mt.124
Author: mt
Time: 20 May 2019, 10:33:57.693766 am
UUID: 0adfbe96-f81f-8a43-aba5-c3ab5a25dac3
Ancestors: ToolBuilder-Kernel-pre.123
Remove default font from text spec:
1) Existing tool builders only pass fonts to widgets if not nil.
2) Existing widgets consider default fonts outside the tool-builder framework anyway.
Thanks to Subbu for this!
=============== Diff against ToolBuilder-Kernel-pre.123 ===============
Item was changed:
----- Method: PluggableTextSpec>>font (in category 'accessing') -----
font
+ ^ font!
- ^ font ifNil: [Preferences standardDefaultTextFont]!
Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.124.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-mt.124
Author: mt
Time: 20 May 2019, 10:33:57.693766 am
UUID: 0adfbe96-f81f-8a43-aba5-c3ab5a25dac3
Ancestors: ToolBuilder-Kernel-pre.123
Remove default font from text spec:
1) Existing tool builders only pass fonts to widgets if not nil.
2) Existing widgets consider default fonts outside the tool-builder framework anyway.
Thanks to Subbu for this!
=============== Diff against ToolBuilder-Kernel-pre.123 ===============
Item was changed:
----- Method: PluggableTextSpec>>font (in category 'accessing') -----
font
+ ^ font!
- ^ font ifNil: [Preferences standardDefaultTextFont]!