[squeak-dev] The Inbox: Collections-ct.950.mcz

Marcel Taeumel marcel.taeumel at hpi.de
Wed Jun 30 09:06:21 UTC 2021


Hmm... I would prefer to just patch Generator instead of Stream:

s := self environment allClasses readStream.
[s reset; take: 3000] bench

AFTER: '5,700 per second. 175 microseconds per run. 7.59848 % GC time.' 
BEFORE: '143,000 per second. 6.99 microseconds per run. 33.90644 % GC time.' 

Best,
Marcel
Am 30.06.2021 01:06:49 schrieb commits at source.squeak.org <commits at source.squeak.org>:
A new version of Collections was added to project The Inbox:
http://source.squeak.org/inbox/Collections-ct.950.mcz

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

Name: Collections-ct.950
Author: ct
Time: 30 June 2021, 1:06:39.38741 am
UUID: 58b871bc-ace9-184b-8e98-305453096350
Ancestors: Collections-mt.945

Fixes Stream >> #take:. Unlike in #any:, we must not return nil values from #next here but the enumeration earlier. See CollectionsTests-ct.361.

=============== Diff against Collections-mt.945 ===============

Item was changed:
----- Method: Stream>>take: (in category 'collections - accessing') -----
take: maxNumberOfElements
"See Collection protocol."
+
+ | aCollection |
+ aCollection := OrderedCollection new.
+ maxNumberOfElements timesRepeat: [
+ self atEnd ifTrue: [^ aCollection].
+ aCollection addLast: self next].
+ ^ aCollection!
-
- ^ self any: maxNumberOfElements!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210630/659de4ff/attachment.html>


More information about the Squeak-dev mailing list