[Updates] 57 more

Dan Ingalls Dan.Ingalls at disney.com
Tue Jun 6 17:49:26 UTC 2000


The rest of the updates are now out, these mostly from all of you, will careful culling by Stefan, and some review at SqC, especially by Scott W.

Here are the summaries...

	- Dan
-----------------------------
2243pasteUpClip-sw -- Scott Wallace -- 5 June 2000
Makes pasteUpMorphs do a much better job of clipping when mouse-handling, both for mouseover dispatch and for mouse-down dispatch.
A concomitant of these changes is that the #minimumExtent and minimumExtent: methods are elevated from SystemWindow to generic Morph."

2244removals-sw -- Scott Wallace -- 4 June 2000
A couple of removals, with some changes to some related code to remove calls to the removees."

2245wordingInChanges-sw -- Scott Wallace -- 5 June 2000
After an unsuccessful experiment with more accurate but less familiar wording for two of the items in the changes... menu, revert to the older and more warm & fuzzy wordings for them."

2246QuickFix-ar -- Andreas Raab -- 5 June 2000
A quick fix for a missing declaration in the surface plugin."

2247tweak-sw -- Scott Wallace -- 5 June 2000
Fixes a bug that could make the Standard Parts Bin open up at an unnaturally small size."

2248noConstruction-sw -- Scott Wallace -- 5 June 2000
Removes the ancient 'construction project' item from the open menu, and removes the underlying support methods.  The day of this feature has long since come and gone.  A blank morphic project with standard flaps works a better."

2249ListTypo-ar -- Andreas Raab -- 5 June 2000
Fixes a typo in Smalltalk>>listLoadedModules."

2250BetterComment-ar -- Andreas Raab -- 5 June 2000
Adds a (hopefully) better comment to Smalltalk>>listLoadedModules and Smalltalk>>listBuiltinModules."

2251PluggableBtnEnh-acg -- Andrew C. Greenberg -- 13 March 2000
Many modern GUIs permit a user to click on a button view, and then 'mouse off' (move the cursor so it no longer appears in the button insetBoundingBox) the button view before releasing the mouse button to indicate that the user intended no transaction.  Additionally, if the button view was 'moused off,' the user may again 'mouse on' the button view before releasing the button to go ahead with the button activity.  This changeset implements that protocol.
MVC as presently implemented does not permit this -- mousing off a button view passes control to the adjacent view, which can create some cognitive dissonance or distort the view in other ways."

2252PrettyPrint-sma -- Stefan Matthias Aust -- 28 May 2000
I never understood why 'pretty print' always wanted to reformat the accepted method and not the currently edited text - so I changed that.  I also refactored pp and ppWithColor to use a common method and put the new command on Cmd+t (works only in MVC as I don't want to fiddle around with that tempCommand hack in Morphic).

2253ShowByteCodes-sma -- Stefan Matthias Aust -- 28 May 2000
I like the show bytecodes goodie (altough I think it's hacked into the system at the wrong place) but was annoying that you couldn't easily get rid of it again.  So I made it a toggle. Select it again and the normal method code is shown again.  I also refactored MessageSet so that this methods had only to be implemented once."

2254SelfDoIt-sma -- Stefan Matthias Aust -- 28 May 2000
In VisualWorks Browsers, 'self' is bound to the currently selected classes, which is really handy as you could simply eval things like ""self selections: #(yes no)"" without the need to use the class name.  This now works in Squeak browsers, too."

2255MenuRef-sma -- Stefan Matthias Aust -- 1 Juni 2000
[Version 2]
Menu refactorings. I always wanted keyboard support for PopupMenus.  Now it is implemented.  See PopUpMenu>>readKeyboard for details.  I also heavily refactored PopUpMenu and SelectionMenu, adding reformating, add comments and removing complexity.  This is only for MVC."

2256MenuFixFix-sma -- Stefan Matthias Aust -- 28 May 2000
A fix for change 2114."

2257-PrintOn-sma -- Stefan Matthias Aust -- 1 June 2000
Some refactorings of printOn: methods.  I removed hard-coded class names and removed a few methods. I also removed the last space in array constants -->  (1 2 3 )"

2258ScamperSBFix-md -- Marcus Denker -- 22 May 2000
Karl noticed: The bug was discovered when I tried to open the webbrowser (probably on a image  that it was newer used on ?) When I commented out the code in WebPageMorph>>update:aSymbol it started, but no pages were visible on loading. Uncommenting the code again with Scamper open everything worked, but Scamper will not open untill I comment the code again."

2259X11example-bf -- Bert Freudenberg -- 22 May 2000
[Seems like this a mainly a fix for the #(nil) first == #nil problem which is hopefully fixed soon. Then this change needs to be adapted --sma]
Makes the FFI drawing example for X use XQueryPointer (Andreas incorrectly assumed that 'there is no way to query the XServers mouse position directly'). Also fixes the ExternalStructureInspector to ignore nil fields which gave a walkback."

2260UglyScamperFix-sma -- Stefan Matthias Aust -- 1 June 2000
Fix a bug introduced in #2016."

2261CollectFromToFix-sma -- Stefan Matthias Aust -- 1 June 2000
Fix a bug noticed (and discussed by Stephan Rudlof and Bert Freudenberg."

2262FileDirSearching-sim -- Stewart MacLean -- 23 May 2000
For those of you without flash unix utilities like grep here is a simple file search mechanisim.
I've made the processing of directories and files(streams) pluggable so that you can do what you like with them."

2263IsSortedFix-sma -- Stefan Matthias Aust -- 1 June 2000
Henrik Gedenryd noticed a bug in ArrayedCollection>>isSorted in the case of empty collections."

2264AuthorName-sma -- Stefan Matthias Aust -- 1 June 2000
Request default author name similiar to initials only once and use this as default for the changetset template."

2265Worldstartup-bf -- Bert Freudenberg -- 23 May 2000
Makes the world resize to the Display extent on start up. Before this fix, the -fullscreen VM option caused the world to occupy only the saved window extent."

2266ScamperFonts-bolot -- Bolot Kerimbaev -- 18 May 2000
Support for font color and size in Scamper:
Font size mapping:
HTML	Squeak
1-4		1 (normal text, H4)
5		2 (H3)
6		3 (H2)
7		4 (H1)
Known issues:
- nested font specs may not work properly
- cannot reduce font size"

2267FasterAllSubclasses-sqr -- Andres Valloud -- 25 May 2000
Improved two methods in ClassDescription. Changed the implementation from recursive
(slow) to iterative (fast)."

2268LedMorph-rjf -- Ricardo J. Ferreira -- 26 May 2000
This small enhacement enables LedDigitMorph to show the minus sign. Set the instance variable ""digit"" with '-' (string) or $- (character) to make it show the minus sign.
 
I think It would break the led digit morph idea if it shows other things than digits. Then, I think it should be created the LedCharacterMorph, which would show any character. This class can be implemented with a LedDigitMorph concept variation."

2269QuoFix-sr -- Stephan Rudlof -- 28 May 2000
Exception raised by division by zero, improved code, comment."

2270emergencyEvalPlus-sma -- Stefan Matthias Aust -- 27 May 2000
One time too often, I got stuck in that black and white emergency stack listing while playing around with the UI stuff and I envied VisualWorks' because of its emergency evaluator.
Fortunately, Squeak already has a similar feature, a Transcripter, which can be used to provide a basic real-eval-print loop to fix simple problem on a command line.  The attached change adds an option to the stack listing: *** Press CR to enter that evaluator ***
Once in that evaluator, one may wish to evaluate 'Utilities revertLastMethodSubmission', a method suggested by Henrik Gedenryd, implemented by Scott Wallace, and included in this update.  The intent of calling this method is to revoke the last code submission.  The result will be:
* If the most recent method submission was a method change, revert that change.
* But if it was a brand-new method, remove that method.
Caution: #revertLastMethodSubmission does nothing special regarding change sets"

2271CelesteStatusCleanup-sge -- Steve Elkins -- 29 May 2000
These changes directly connect the change notification mechanism to updates of Celeste's 'status' instance variable."

2272ReadStreamUndo-sma -- Stefan Matthias Aust -- 1 June 2000
Undo #2192. The consequences of raising an exception for EOF during ReadStream>>next should be worked out in 2.9a but not for 2.8."

2273ClassRenameFix-bf -- Bert Freudenberg -- 31 May 2000
Renames a class even if it is declared undeclared. Huh?"

2274InfoStringMorph-sma -- Stefan Matthias Aust -- 1 June 2000
A generalized form of ClockMorph (but without an option to switch off seconds).  It's quite handy for debugging or watching globals like VM Parameters. In a better world, this morph would also have a title."

2275IntSpeedUp-sma -- Stefan Matthias Aust -- 1 June 2000
[Tweaked by Dan I. to fix a bug (last method in changeSet]
>From the profiles posted earlier, you could see that
        Interpreter translate: 'interp.c' doInlining: false
spend about 20% in method Symbol class>>intern:.  About 17% of these are caused by TVariableNode>>bindVariablesIn:.  Here, we've a case where a dictionary of strings would perform much better than a dictionary of symbols.  I first tried to reduce the number of #intern: calls by only using symbols but that fired back, making the code even slower.  So I tried to remove the need to use asSymbol (which calls intern:) in that bind... method, using only string keys in all passed dictionaries.  That worked!
I hope I found all places where the dictionaries are initialized, modified or accessed and made sure that strings are used as keys - not symbols anymore.  The change is attached.
With that change, the #intern: calls are reduced to 1.9% and the code runs about 30% faster (56 seconds instead of 73).  It still generates all 22 files without errors but I didn't try to compile the C source.  So it might be the case that I optimized too much."

2276Compiler-nm -- Mats Nygren -- 25 May 2000
The class method parserClass in compiler seems to be intended for changing to other parsers. However when a parser is actually created, in Compiler>>format:noPattern:ifFail: and Compiler>>translate:noPattern:ifFail:, Parser is used."

2277WeakValueAssocRef-mm -- MathMorphs	 -- 27 May 2000
[WARNING:  This change set has been manually modified.  You CANNOT
SAVE it again.  Keep this changeset.  It will rename classes and depends
on the order of statements shown here --sma]
There is a subtle problem with WeakValueAssociations. There
is an old mail from Gerardo Richiarte explaining the
problem. In simple words, you cannot use
WeakValueDictionaries to implement (weak) bindings. The
reason is that the virtual machine assumes that the
association answered by #bindingOf: stores its value in its
second slot. As WeakValueAssociations are currently
implemented (a WeakArray holds the value in it) this
assumption does not hold anymore.
Today, in our SqueakNic at Ezeiza, we found that
WeakValueAssociations can be implemented in such a way that
the incompatibility above disappears. After some testing we
'discovered' that when weak-subclassing a class that already
has instance variables, the resulting new subclass will be a
variable subclass having strong references in inherited
instance variables and weak references in the indexable
part. Taking this into account, we redefined
WeakValueAssociation."

2278SeqColEnh-sma -- Stefan Matthias Aust -- 1 June 2000
David N Smith suggested a few useful methods which I implemented - following Dan's suggestion to throw errors if not enough elements are available.
I also deprecated the following, already or at least now superfluous methods:
	copyWithoutFirst (no senders)
	copyLast: (2 senders)
	upTo: (a lot of senders)
Finally, I added lastIndexOf: and lastIndexOf:ifAbsent:."

2279ApplyUpdFrmDsk-sr -- Stephan Rudlof -- 30 May 2000
Applying updates can be limited now by a highest updateNumber:
	Utilities applyUpdatesFromDiskToUpdateNumber: 1234
applies only updates until (inclusive) #1234.

2280PackBrOptBnt-rh -- Robert Hirschfeld -- 28 May 2000
Fixes PackageBrowser>>openAsMorphEditing: to be sensitive to
Preferences for #annotationPanes and #optionalButtons."

2281miscTweaks-sw -- Scott Wallace -- 2 June 2000
1.  Now that the package browser can show annotation panes and optional buttons, make sure the copies in the Tools Flap and the parts bin are made right and that the tools flap copy gets replaced when the user's preference changes regarding use of those extra panes
2.  Factor out the grep functionality so that it can be called via various UIs."

2282HiddenScrollBar-dew -- Doug Way and Carl Gundel -- 23 May 2000
[Now it works also with 2.8a-2210 --sma]
This enhancment optimizes Morphic scrollbars so that they are hidden when the contents of a pane are too small to be scrolled.  This incorporates Carl Gundel's original fix for popup scrollbars, but now includes inboard scrollbars as well.  For popup scrollbars, this fix eliminates some of the choppy feel of the UI for slow computers.  For inboard scrollbars, it's more of a real-estate saving measure, allowing you to see more of the width of the pane.
(Note that a new inst var 'hasFocus' was added to ScrollPane which was needed to accurately track focus.  This inst var should probably be moved to a higher superclass (Morph?) eventually.)
Works with Squeak 2.6."

2283CategoryChgSpeedup-dvf -- Daniel Vainsencher -- 3 June 2000
Used to be the time to change categories was dependant on the DB size. Now Celeste chooses whether to select the DB or to sort the category (fast for small categories ~< 800)."

2284HiddenScrFix-sma -- Stefan Matthias Aust -- 3 June 2000
Bugfix for #112.  File-in to revert my fix to Doug's code."

2285GifFix2-bf -- Bert Freudenberg -- 3 June 2000
Fixes GIF reading to return only 1/2/4/8 bit deep forms (introduced in 2208, reported by Bolot)"

2286ScamperFixes-bolot -- Bolot Kerimbaev -- 18 May 2000
Fixes to Scamper and HTTP facilities.
- handling of 401 unauthorized fixed and refactored (since it was almost identically reproduced in three methods: postFormArgs:, postMultipartFormArgs:, retrieveContentsArgs:
- also fixed a typo in postMultipartFormArgs: (it was retrying as postFormArgs:)
- ENH: password dialog box uses password font"

2287ScamperRedirect-ls -- Lex Spoon -- 1 June 2000
[Hopefully I resolved the conflicts with #116 in retrieveContents --sma]
Makes HTTPUrl>>retrieveContents add the fragment to the returned MIMEDocument, even if a redirection is involved in the download"

2288FasterSenders-sqr -- Andres Valloud -- 31 May 2000
25% faster senders.  [Code provided by AV even if I edited every method.  I just added the code for the non-deep-array-seeking case --sma]"

2289FileDirFix-mdr -- mdr at scn.org -- 1 June 2000
Fixes FileDirectory entryAt:ifAbsent: to respect the case insensitivity of some (Windows) native file systems

2290NovmTableAt-sma -- Stefan Matthias Aust -- 3 June 2000
Method removal - no senders and vmParameterAt:put: does the same job. See
Smalltalk browseAllSelect: [:m | m primitive = 254]

2291PopupMenuFix-sma

2292FCBPPFix-sma -- Stefan Matthias Aust -- 5 June 2000
Small fix for the pretty printing in file contents browsers - PseudoClasses are asked whether some variable is in their scope. Now they ask their realClass if possible."

2293DamRecorderEnh-sma -- Stefan Matthias Aust -- 5 June 2000
Small change to the damage recorder to allow more individual damage rectangles before combining them which results in better drawing performance nowadays the typical morph has more halos then when this class once was created."

2294MorphMenuRef-sma -- Stefan Matthias Aust -- 5 June 2000
Trying to understand how a morphic menu works, I wondered which would be the right way to call it up.  There where multiple ways and all too difficult.  I reduced them to two - and this could even further reduced to just one call."

2295MVCPassword-jdr -- Javier Diaz-Reinoso -- 4 June 2000
This changeset extend the FillInTheBlank class>>requestPassword: in ScamperFixes by Bolot Kerimbaev to work in MVC.
Then changes Celeste>>popPassword to use then new method."

2296PackBrowserFix-ak -- Andreas Kuckartz -- 4 June 2000
Classes with categories which do not contain a hyphen were not displayed in the class list.
TODO: The switches do not work as expected for such classes."

2297CustomFilterMove-dvf -- Daniel Vainsencher -- 4 June 2000
(Karl made me think...)
Filtering read mail is now quick and painless -
Pressing the new Custom F. Move button will present a subset of the custom filters defined - those named like an existing category. Choosing a filter will move all matching messages to the appropriate category.
A category menu option called edit category filter allows you to immidiately define/edit a filter for that category.
Remember to close and open Celeste so it'll create the new button."

2298HandMorph-jwh -- Jim Heyne -- 5 June 2000
Minor efficiency improvements and simplification in HandMorph positioning. Minor, but on my machine, this code gets hit about 17 times per second.
Synchronize temporaryCursor and temporaryCursorOffset. If temporaryCursor isNil ignore temporaryCursorOffset (rather than forcing it to 0 at 0 and doing unnecessary arithmetic).
Also includes minor code simplification."

2299bookMenuMerge-sw







More information about the Squeak-dev mailing list