[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