Login  Register

Re: The Inbox: Collections-ul.933.mcz

Posted by Christoph Thiede on May 01, 2021; 5:53pm
URL: https://forum.world.st/The-Inbox-Collections-ul-933-mcz-tp5128167p5129356.html

Hi Levente,


so what is now the official interface for creating a valid collection of any kind of a certain size n? Shall we always use #ofSize:? Is this something that should be documented in the release notes?


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Dienstag, 27. April 2021 17:07:18
An: squeak-dev
Betreff: Re: [squeak-dev] The Inbox: Collections-ul.933.mcz
 
+1 I suppose =)

It's faster then:

[OrderedCollection streamContents: [:s | s nextPut: #apple]] bench  

BEFORE: '2,630,000 per second. 380 nanoseconds per run. 16.13677 % GC time.'
AFTER: '3,990,000 per second. 251 nanoseconds per run. 15.89682 % GC time.'

Best,
Marcel

Am 31.03.2021 02:19:03 schrieb [hidden email] <[hidden email]>:

Levente Uzonyi uploaded a new version of Collections to project The Inbox:
http://source.squeak.org/inbox/Collections-ul.933.mcz

==================== Summary ====================

Name: Collections-ul.933
Author: ul
Time: 31 March 2021, 2:17:52.141067 am
UUID: b290ad2c-2ed0-4d46-b2fe-12545bf5f31c
Ancestors: Collections-ul.932

- use #ofSize: instead of #new: in SequenceableCollection class >> new:streamContents:, so that it creates a stream on a non-empty collection even if the receiver is OrderedCollection.

=============== Diff against Collections-ul.932 ===============

Item was changed:
----- Method: SequenceableCollection class>>new:streamContents: (in category 'stream creation') -----
new: newSize streamContents: blockWithArg

| stream originalContents |
+ stream := WriteStream on: (self ofSize: newSize).
- stream := WriteStream on: (self new: newSize).
blockWithArg value: stream.
originalContents := stream originalContents.
+ ^originalContents size = stream position
+ ifTrue: [ originalContents ]
+ ifFalse: [ stream contents ]!
- originalContents size = stream position
- ifTrue: [ ^originalContents ]
- ifFalse: [ ^stream contents ]!




Carpe Squeak!