Karl Ramberg uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-kfr.397.mcz
==================== Summary ====================
Name: EToys-kfr.397
Author: kfr
Time: 22 June 2020, 8:40:19.467476 pm
UUID: 2463ba1d-f257-2544-8422-43d46a0f96b7
Ancestors: EToys-mt.396
Fix for score in SameGame that would underflow 0. Line breaks for help text is broken, make workaround.
=============== Diff against EToys-mt.396 ===============
Item was changed:
----- Method: SameGame>>help: (in category 'actions') -----
help: helpState
helpState
+ ifTrue: [helpText := self helpText.
+ "Text layout is broken, so add text and apply #spaceFill to make line breaks work"
+ self addMorphBack: helpText.
+ helpText textMorph hResizing: #spaceFill]
- ifTrue: [self addMorphBack: self helpText]
ifFalse: [helpText delete]!
Item was changed:
----- Method: SameGame>>selection (in category 'actions') -----
selection
"a selection was made on the board; get its count and update the displays"
| count score |
count := self board selectionCount.
count = 0
ifTrue:
[score := scoreDisplay value + (selectionDisplay value - 2) squared.
board findSelection ifNil:
[count := board tilesRemaining.
score := count = 0
ifTrue: [score + (5 * board rows * board columns)]
+ ifFalse: [score - count max:0].
- ifFalse: [score - count].
scoreDisplay flash: true].
scoreDisplay value: score].
selectionDisplay value: count!
Nicolas Cellier uploaded a new version of FFI-Kernel to project FFI:
http://source.squeak.org/FFI/FFI-Kernel-nice.118.mcz
==================== Summary ====================
Name: FFI-Kernel-nice.118
Author: nice
Time: 21 June 2020, 1:20:34.369348 pm
UUID: a8c48997-991d-4e32-9b67-6d93fc0dabe0
Ancestors: FFI-Kernel-mt.117
Add the ability to allocate: an ExternalType or an ExternalStructure/Alias.
It's equivalent to new: but we want a specific idiom, C types are not exactly classes.
Add the ability to compare aliases (at least for equality)
=============== Diff against FFI-Kernel-mt.117 ===============
Item was added:
+ ----- Method: ExternalStructure class>>allocate: (in category 'instance creation') -----
+ allocate: anInteger
+ "Create an ExternalData with enough room for storing an array of size anInteger of such structure"
+ ^self externalType allocate: anInteger!
Item was added:
+ ----- Method: ExternalType>>allocate: (in category 'external data') -----
+ allocate: anInteger
+ "Allocate space for containing an array of size anInteger of this dataType"
+
+ | handle |
+ handle := ByteArray new: self byteSize * anInteger.
+ ^(ExternalData fromHandle: handle type: self) size: anInteger!
Item was added:
+ ----- Method: ExternalTypeAlias>>= (in category 'comparing') -----
+ = anExternalTypeAlias
+ ^self class = anExternalTypeAlias class and: [self value = anExternalTypeAlias value]!
Item was added:
+ ----- Method: ExternalTypeAlias>>hash (in category 'comparing') -----
+ hash
+ ^self class hash hashMultiply bitXor: self value hash!
Marcel Taeumel uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-mt.725.mcz
==================== Summary ====================
Name: Monticello-mt.725
Author: mt
Time: 20 June 2020, 1:23:54.74166 pm
UUID: 88eef16e-bad7-ad47-b378-7e8f553438d6
Ancestors: Monticello-mt.724
Since Monticello does not care about the correct field compilation order, just print errors to the transcript. See #compileAllFields to understand what you should actually do.
=============== Diff against Monticello-mt.724 ===============
Item was changed:
----- Method: MCMethodDefinition>>postload (in category 'installing') -----
postload
self isInitializer
ifTrue: [self actualClass theNonMetaClass initialize].
self isExternalStructureFieldDefinition
+ ifTrue: [[self actualClass theNonMetaClass compileFields]
+ ifError: [:msg | Transcript showln: '[FFI] ', msg]].!
- ifTrue: [self actualClass theNonMetaClass compileFields].!