Hello,
In 6.0, method #initializeMessageList: is implemented in RecentMessageSet and, as a consequence, the preference MessageSet useUnifiedMessageLabels has no effect there.
It seems that this method can simply be removed to fix the problem.
Stef
Hi Stef --
We cannot remove that method because Tim changed the OrderedCollection to Set in 2020 in the superclass, which Eliot then fixed RecentMessageSet to retain the incoming order.
I think we should revert that change from 2020 in MessageSet and use an OrderedCollection again.
Best, Marcel Am 03.08.2022 14:35:09 schrieb Stéphane Rollandin lecteur@zogotounga.net: Hello,
In 6.0, method #initializeMessageList: is implemented in RecentMessageSet and, as a consequence, the preference MessageSet useUnifiedMessageLabels has no effect there.
It seems that this method can simply be removed to fix the problem.
Stef
Le 04/08/2022 à 12:40, Marcel Taeumel a écrit :
Hi Stef --
We cannot remove that method because Tim changed the OrderedCollection to Set in 2020 in the superclass, which Eliot then fixed RecentMessageSet to retain the incoming order.
Another idea: there is already a isOrdered test in MessageSet>>#initializeMessageList:
We could just add a query to the class itself, like so:
isOrdered := (anArray size > 1 and: [anArray second isMethodReference] and: [anArray second stringVersion first = Character space]). isOrdered := isOrdered or: [self class isAlwaysOrdered]
and then implement #isAlwaysOrdered in MessageSet class (returning false) and in RecentMessageSet (returning true).
Stef
isOrdered := isOrdered or: [self class isAlwaysOrdered]
Hmpf. That was just a workaround. Let's not escalate that to something like #isAlwaysOrdered. Let's just remove that isOrdered workaround and go back to OrderedCollection again... at least for 6.1alpha.
Best, Marcel Am 04.08.2022 13:42:52 schrieb Stéphane Rollandin lecteur@zogotounga.net: Le 04/08/2022 à 12:40, Marcel Taeumel a écrit :
Hi Stef --
We cannot remove that method because Tim changed the OrderedCollection to Set in 2020 in the superclass, which Eliot then fixed RecentMessageSet to retain the incoming order.
Another idea: there is already a isOrdered test in MessageSet>>#initializeMessageList:
We could just add a query to the class itself, like so:
isOrdered := (anArray size > 1 and: [anArray second isMethodReference] and: [anArray second stringVersion first = Character space]).
isOrdered := isOrdered or: [self class isAlwaysOrdered]
and then implement #isAlwaysOrdered in MessageSet class (returning false) and in RecentMessageSet (returning true).
Stef
squeak-dev@lists.squeakfoundation.org