Christoph Thiede uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-ct.72.mcz
==================== Summary ====================
Name: Chronology-Core-ct.72
Author: ct
Time: 13 November 2021, 2:14:59.271577 am
UUID: d7142e3f-c575-a341-86ad-9d2a0c2cd04a
Ancestors: Chronology-Core-mt.71
Makes durations compatible with collection-wise calculations.
Examples:
{1 second. 2 seconds} + 3 seconds. "{0:00:00:04 . 0:00:00:05}"
{6 seconds. 8 seconds} / 2 seconds. "#(3 4)"
Especially the latter has practical relevance in comparing benchmarks.
=============== Diff against Chronology-Core-mt.71 ===============
Item was added:
+ ----- Method: Duration>>adaptToCollection:andSend: (in category 'as yet unclassified') -----
+ adaptToCollection: rcvr andSend: selector
+ "If I am involved in arithmetic with a Collection, return a Collection of the results of each element combined with me in that expression."
+
+ ^ rcvr collect: [:element | element perform: selector with: self]!
Christoph Thiede uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-ct.74.mcz
==================== Summary ====================
Name: Chronology-Core-ct.74
Author: ct
Time: 26 January 2022, 9:37:35.204407 pm
UUID: 69fb950d-1d7f-b247-a859-af7a20fb18a3
Ancestors: Chronology-Core-ct.73, Chronology-Core-ct.72
Merges Chronology-Core-ct.72:
Makes durations compatible with collection-wise calculations.
=============== Diff against Chronology-Core-ct.73 ===============
Item was added:
+ ----- Method: Duration>>adaptToCollection:andSend: (in category 'as yet unclassified') -----
+ adaptToCollection: rcvr andSend: selector
+ "If I am involved in arithmetic with a Collection, return a Collection of the results of each element combined with me in that expression."
+
+ ^ rcvr collect: [:element | element perform: selector with: self]!
David T. Lewis uploaded a new version of Compression to project The Trunk:
http://source.squeak.org/trunk/Compression-dtl.59.mcz
==================== Summary ====================
Name: Compression-dtl.59
Author: dtl
Time: 26 January 2022, 2:49:08.713265 pm
UUID: 879b294e-720a-41f7-a363-23c157ac41cd
Ancestors: Compression-ct.57
40X speedup for CompressedSourcesStream>>contentsOfEntireFile
CompressedSourceStream>>next: is recursive, so processing the contents in chunks can be much faster. Also enable use of a progress bar when reading the compressed contents.
=============== Diff against Compression-ct.57 ===============
Item was changed:
----- Method: CompressedSourceStream>>contentsOfEntireFile (in category 'access') -----
contentsOfEntireFile
+ ^ self uncompressedBytes: [ :bar | "bar ignored"]
+ !
- | contents |
- self position: 0.
- contents := self next: self size.
- self close.
- ^ contents!
Item was added:
+ ----- Method: CompressedSourceStream>>into:chunkSize:notifying: (in category 'private') -----
+ into: byteStream chunkSize: chunkSize notifying: progress
+ "Decompress sources into a byte stream, notifying a progress dialog.
+ Reading from the compressed sources is recursive, so reading in chunks
+ can be more efficient, and is also convenient for updating a progress bar."
+
+ self position: 0.
+ [self position < self size]
+ whileTrue: [
+ progress value: self position / self size.
+ byteStream nextPutAll: (self next: chunkSize)]
+ !
Item was added:
+ ----- Method: CompressedSourceStream>>uncompressedBytes: (in category 'access') -----
+ uncompressedBytes: progress
+
+ "ProgressInitiationException
+ display: 'reading compressed sources from a compressed .stc file'
+ during: [:bar | (SourceFiles at: 1) uncompressedBytes: bar]"
+
+ ^ ByteString streamContents: [ :strm |
+ self readOnlyCopy reset into: strm chunkSize: 50000 notifying: progress].
+
+ !
Marcel Taeumel uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-mt.978.mcz
==================== Summary ====================
Name: Collections-mt.978
Author: mt
Time: 26 January 2022, 8:33:13.286127 am
UUID: 1b55f52e-37a1-6041-823a-ab7a5c648184
Ancestors: Collections-mt.977
Updates commentary for primitive 248 to match the style of the commentary for primitive 72. (Sorry for the noise.)
=============== Diff against Collections-mt.977 ===============
Item was changed:
----- Method: Array>>elementsForwardIdentityTo: (in category 'converting') -----
elementsForwardIdentityTo: otherArray
"This primitive performs a bulk mutation, causing all pointers to the elements of the
receiver to be replaced by pointers to the corresponding elements of otherArray.
+ NOTE THAT the #identityHash of the objects in the receiver are changed, so that hashed structures that contain such objects MUST BE rehashed while structures that contain objects from otherArray are still properly indexed. See implementors of #rehash."
- The identityHashes are not copied to the target objects so that the objects in otherArray
- should still be properly indexed in any existing hashed structures after the mutation."
<primitive: 248 error: ec>
ec == #'no modification' ifTrue:
[^self modificationForbiddenFor: otherArray becomeSelector: #elementsForwardIdentityTo:].
ec == #'bad receiver' ifTrue:
[^self error: 'receiver must be of class Array'].
ec == #'bad argument' ifTrue:
[^self error: (otherArray class == Array
ifFalse: ['arg must be of class Array']
ifTrue: ['receiver and argument must have the same size'])].
ec == #'inappropriate operation' ifTrue:
[^self error: 'can''t become immediates such as SmallIntegers or Characters'].
ec == #'object is pinned' ifTrue:
[^self error: 'can''t become pinned objects'].
ec == #'insufficient object memory' ifTrue:
[self error: 'The virtual machine is out-of-date. Please upgrade.'].
self primitiveFailed!
Marcel Taeumel uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-mt.977.mcz
==================== Summary ====================
Name: Collections-mt.977
Author: mt
Time: 26 January 2022, 8:29:08.417127 am
UUID: 98f4fedb-1f96-e84c-b3a1-c689eb9244cd
Ancestors: Collections-ct.976
Updates commentary for primitive 72. Complements Kernel-mt.1443. Thanks to Florin and Vanessa for the pointer.
=============== Diff against Collections-ct.976 ===============
Item was changed:
----- Method: Array>>elementsForwardIdentityAndHashTo: (in category 'converting') -----
elementsForwardIdentityAndHashTo: otherArray
+ "This primitive performs a bulk mutation, causing all pointers to the elements of the receiver to be replaced by pointers to the corresponding elements of otherArray.
+ NOTE THAT the #identityHash of the objects in otherArray are changed, so that hashed structures that contain such objects MUST BE rehashed while structures that contain objects from the receiver are still properly indexed. See implementors of #rehash."
- "This primitive performs a bulk mutation, causing all pointers to the elements of the
- receiver to be replaced by pointers to the corresponding elements of otherArray.
- The identityHashes remain with the pointers rather than with the objects so that
- the objects in this array should still be properly indexed in any existing hashed
- structures after the mutation."
<primitive: 72 error: ec>
ec == #'no modification' ifTrue:
[^self modificationForbiddenFor: otherArray becomeSelector: #elementsForwardIdentityAndHashTo:].
ec == #'bad receiver' ifTrue:
[^self error: 'receiver must be of class Array'].
ec == #'bad argument' ifTrue:
[^self error: (otherArray class == Array
ifFalse: ['arg must be of class Array']
ifTrue: ['receiver and argument must have the same size'])].
ec == #'inappropriate operation' ifTrue:
[^self error: 'can''t become immediates such as SmallIntegers or Characters'].
ec == #'object is pinned' ifTrue:
[^self error: 'can''t become pinned objects'].
ec == #'insufficient object memory' ifTrue:
[self error: 'The virtual machine is out-of-date. Please upgrade.'].
self primitiveFailed!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1443.mcz
==================== Summary ====================
Name: Kernel-mt.1443
Author: mt
Time: 26 January 2022, 8:27:24.209127 am
UUID: be651821-32ae-dd44-8e1d-7bdbdbb65cf0
Ancestors: Kernel-mt.1442
Further improve commentary on #becomeForward: whose behavior is changed since 4/15/2020, that is, after the Squeak 5.3 release.
Thanks to Vanessa (codefrau) for the pointer!
=============== Diff against Kernel-mt.1442 ===============
Item was changed:
----- Method: Object>>becomeForward: (in category 'system primitives') -----
becomeForward: otherObject
"Primitive. All variables in the entire system that used to point to the receiver now point to the argument. Fails if either argument is an immediate such as a SmallInteger, or if the receiver is read-only.
+ NOTE THAT the #identityHash of the receiver IS NOT copied to the argument so that hashed structures that contain the argument are still properly indexed BUT the ones with the receiver MUST BE rehashed. See implementors of #rehash and #becomeForward:copyHash:.
+ NOTE THAT before 4/15/2020, the hash of the receiver was indeed copied over to the argument."
- NOTE THAT the identityHash of the receiver IS NOT copied to the argument so that the argument should still be properly indexed in any existing hashed structures after the mutation. See #becomeForward:copyHash:."
{self} elementsForwardIdentityTo: {otherObject}!