[UPDATES] 9 for 3.6alpha
Doug Way
dway at riskmetrics.com
Sat Jun 21 06:56:35 UTC 2003
These should be all of the current outstanding [approved] items in the
bug fixes archive. (At least they were according to the
BugFixesArchiveViewer.)
- Doug Way
---------------------------
5270MailSenderFix-ads -- Adam Spitz -- 10 May 2003
A fix for a silly bug that I created while mucking with the Celeste
Removal code. This change set does nothing except change the one sender
of #preferred to send #default instead."
5271FileContentsBrwsr-tpr -- tim at sumeru.stanford.edu -- 2 June 2003
As of a 5240 image, FileContentsBrowsers need this small change to keep
#senders working"
5272GIFAnim-bf -- Bert Freudenberg -- 29 May 2003
Write animated GIFs - see GIFReadWriter>>exampleAnim.
This is some old code (from 1996) resurrected. "
5273SmallIntegerTypo-md -- Marcus Denker -- 5 June 2003
Repost of the typo-fix as a changeset, Original message to the list was:
Subject: [FIX] SmallInteger digitAt:put:
Author: shane at shaneroberts.com
Date Posted: 14 February 2003
Comments: The SmallInteger class has a typographical error in the error
message for the digitAt:put method."
5274permutationsDo-dtl -- David T. Lewis -- 31 May 2003
The example in the method comment of
SequenceableCollection>>permutationsDo: does not work. Adding a
#permutationsDo: method to class Interval fixes this. The interval is
converted to an Array to produce the intended behavior.
MD: removed the testcase. Testcase has been added to BaseImageTests."
5275UnionSetFix-raok -- Richard A. O'Keefe's Little Helper (Joshua
Gargus) -- 7 June 2003
Richard discovered a bug in the behavior of Collection>>union:, and
supplied a fix. I merely changesetized it. Everything below is copied
from his email (method comments removed due to quotes).
In Squeak 3.0, 3.2, and 3.4alpha(5108) (and 3.6a - 'lil helper) we find
the same implementation of #union:
Collection>>
union: aCollection
^self asSet addAll: aCollection; yourself
This is the *only* implementation of #union: in those versions of
Squeak. There are three implementations of #asSet,
Collection>>asSet
^Set withAll: self
Bag>>asSet
^contents keys
Set>>asSet
^self
The method comment in Collection says that the answer is a Set, but for
bags it may be a Set or an IdentitySet, and for sets it may be a Set,
an IdentitySet, or a PluggableSet.
Collections other than sets always answer a new object to #asSet; sets
of all kinds never answer a new object.
The problem is that the point of #union: is to return a new object
without mutating any existing objects. But, irony of ironies, if the
receiver already is some kind of set, it IS mutated.
x := #(3 1 4 1) asSet<print it>
=> a Set(1 3 4)
x union: #(5 9 6)<print it>
=> a Set(1 3 4 5 6 9)
x<print it>
=> a Set(1 3 4 5 6 9)
The first problem to sort out is what the semantics of #asSet is
supposed to be. #asIdentitySet always returns an IdentitySet, not some
other kind of set. 'as: Set' always returns a new object that is
precisely a Set, not any other kind of set. The method comment in
Collection suggests that the author thought #asSet always returned a
Set.
The simplest change that could possibly work is 'add a colon'.
Collection>>
union: aCollection
^(self as: Set) addAll: aCollection; yourself
This would eliminate the unintended mutation bug. It would also make
the result always be a Set, not any other kind of set. Less happily,
it would be less efficient for bags.
What I actually propose is a 'bigger' change that makes much less
difference to the observable behaviour. In particular, the change I
propose
+ does not alter any existing method
+ does not change the costs or results of #union: for anything except
sets.
? still allows the kind of set you get to depend on the class of the
receiver, and in the same way as before.
The correction is to add a new method:
Set>>union: aCollection
^self copy addAll: aCollection; yourself
5276InspectElement-tk -- Ted Kaehler -- 5 June 2003
In an Inspector, if the selected item is a SequenceableCollection, the
menu offers 'inspect element...'. With this improvement, the 'inspect
element...' menu shows the printString of each element along with its
index. This helps the user pick the right element to inspect. The
print string is limited to 25 characters."
5277PasswordFont-ar
5278FileListDnD-nk -- Ned Konz -- 19 June 2003
rev. 4: made drops into current directory work right.
rev. 3: added keyboard handling.
The TransferMorph now polls the shift state in its step method to
update its copy state (shift pressed = should copy).
And if you hit the Escape key while dragging, it aborts the drag
operation.
rev. 2: made drop on file list be ignored.
Adds drag'n'drop to the FileList2 and FileList. You can drag from the
file list (the upper right list) to the directory/volume list (the
upper left list) to move or copy files.
Hold down the SHIFT key before you start dragging if you want to copy.
You can also drag between two different FileLists.
Use with a single list is probably more useful with FileList2 because
you can see more directories at once.
(note: this CS also incorporates FileList2Pref-nk, which had the
following comments:)
This also adds a Preference (general/useFileList2) that lets you use
the enhanced file browser from the World menu.
It also allows entry of multiple patterns into a file list browser.
You can separate patterns by newlines (like in a FileList2),
or by a semicolon ($;), like in a FileList.
So for instance you could view any .changes or .image files at once.
Preferences addPreference: #useFileList2 categories: #(general)
default: true balloonHelp: 'if true, then when you open a file list
from the World menu, it''ll be an enhanced one'
More information about the Squeak-dev
mailing list
|