[UPDATES] 50 more for 2.8alpha

Dan Ingalls Dan.Ingalls at disney.com
Sat Mar 25 07:13:12 UTC 2000

Folks -

I've just stored out a number of updates from both the Squeak Central queue and also a number culled by Stefan from recent messages and other postings.

Something in update #1954 makes MVC scrollbars hard to use (they do not hold control as you move across the border into them).  If you are an MVC user I suggest waiting to update until we can publish a fix for this.

If you are an MVC hot-shot, please DO update and fix this bug, and then send out the fix.  [I would take a crack at it but I'm out of time tonight].  I will give immediate service to publishing the fix, and I will send out an "all clear" message as soon as it is fixed.  Thanks in advance for any solutions.

Here below follows a summary of the changeSets...

	- Dan

1920msgSetParse-sw -- Scott Wallace -- 1 March 2000
Makes MessageSet.parse:toClassAndSelector: tolerent of missing classes.   If the class indicated by the input string is not found in the image, then the csBlock is evaluated with nil for class and selector.  This fixes a bug that could crop up during auto-updating of browsers, in cases where the class of a method seen in one window has been removed from the system by a gesture in some different window."

1921deletedClassFix-sw -- Scott Wallace -- 8 March 2000
Fixes a couple of related bugs that can arise when a change set thinks it remembers a change to a method for a class that no longer exists."

1922miscFixes-sw -- Scott Wallace -- 8 March 2000
Fixes bug that had put up redundant second set of optional handles on halos.
Fixes a nil-size bug introduced in update 1898"

1923collapseEtc-sw -- Scott Wallace -- 8 March 2000
Allows any morph residing on the world to be 'collapsed', just like a window.  A collapsed morph is (for the moment) represented by a collapsed system window.  When you click on the expand control, the morph returns to its usual view.
Allows morphs living directly on the 'world' to participate in the find-window logic -- this works whether or not the morph is collapsed.  The list of 'naked morphs' (i.e. morphs on the desktop that are not Windows) is shown beneath the lists of windows.
When a naked morph is selected from the find-window menu, it will put up a halo -- an aid in finding morphs in a cluttered world."

1924projectMenuItems-sw -- Scott Wallace -- 8 March 2000
Restores the traditional position of 'previous project' and 'jump to project...' items at the top of the world menu, as per Alan's request.
Also, adds a new 'project' branch to the world menu, in which will be found all the project-related menu items.  Most of these items are also still available in their former locations as well."

1925scriptableSlider-sw -- Scott Wallace -- 8 March 2000
Adds tile-scripting hookup for a Slider.
Places a Slider and a Holder into the Supplies flap."

1926danExport-tkNR -- Dan Ingalls, Ted Kaehler -- 6 March 2000
Sundry fixes to project export code.
In addition to the postscript it is necessary to...
	Browse to Space, PONG, Bumpin', gearing, Follow Path.
	In each one, click on 'parts', then 'paint', then (toss).
This should eliminate refs to ObsoletePartsViewers.

1927avoidAnnoyance-sw -- Scott Wallace -- 10 March 2000
Fixes the long-standing annoyance that when you attempted to remove a method whose only sender was itself, you still got the warning message about there being an outstanding sender."

1928VarDeclFix-ar -- Andreas Raab -- 10 March 2000
Fixes a zillion problems trying to compile the VM after change set 1908 (hey, has anyone ever tested 1908?).

1929FastPrimFailures -- Stephan Rudloff & Andreas Raab -- 10 March 2000
The change set provides ultra fast failure response for any external primitives which are not found when looked up. Based on Stephans VM_cachingMissingModules.8.cs change set with slight modifications.
The fast failure is achieved by rewriting the primitive index in the method cache with zero if the lookup fails (e.g., on any further activation the method is treated as if there would be no primitive at all).
Also, the change set adds a primitive for invalidating the current (plugin) session ID, thus forcing a reload of all primitives that were not found before (using Smalltalk>>setNewPluginSessionID).
The modifications to Stephans code are minimal. Basically, two things have been changed: The class that is added to the mcache is explicitly stored in #addToMethodCacheSel:class:method:primIndex: to document the side effect for #primitiveExternalCall and the session ID is hidden from the ST level as an instVar in Interpreter. The latter is necessary for backward compatibility. Older images would crash when run with a recent VM since the session ID was stored in the special objects array.

1930UnloadModules -- Stephan Rudlof & Andreas Raab -- 10 March 2000
This change set adds unloading of external modules. It requires an additional (platform specific) function
int ioUnloadModule(int moduleNameIndex, int moduleNameLength);
for unloading the specified external module. Note that only the module itself needs to be unloaded by the support code (everything else is handled by the interpreter). If unloading is not supported the function should #primitiveFail.
The functionality provided by this change set is intended for development purposes only, since unloading modules might not be supported on all platforms or so poorly implemented that it might crash the system.
You have been warned..."

1931More1908Fixes -- Andreas Raab -- 10 March 2000
More fixes for problems originating from change set 1908."

1932TinyFix -- Andreas Raab -- 12 March 2000
Fixes a bounding box computation in B3DBox."

1933projectUrl-tkNT -- Ted Kaehler -- 13 March 2000
Fixes for writing out and bringing in Projects from a server.  Ability to find and jump to sub-projects even if they do not have URLs with them."


1935sliderTweaksEtc-sw -- Scott Wallace -- 14 March 2000
Makes it possible for sliders, scrollbars, etc.,to have their smaller values at either end.  (Formerly, vertical sliders always had to have the smaller value at the top; now it can be at the bottom)
Changes the default behavior of the sliders in parts bins to have zero at the bottom.
In the etoy system, the ascending/descending behavior of a slider is now directly controllable via the Viewer.
Makes the control that determines whether a slider should assume only integer values ('truncate') accessible to the etoy system.
Makes the wording of menu items relating to sliders be dynamic, so that persistent menus will tell the truth.
The default precision for 'cursor' readouts (Pasteups/Holders) and 'numericValue' readouts (Slider) is set to give two decimal places.  This works both for Viewers and Watchers."


1937InvalidRects-ar -- Andreas Raab -- 14 March 2000
Please call 'super invalidRect:'"

1938DropShadowNil-ar -- Andreas Raab -- 14 March 2000
Fixes a problem with a nil shadow offset."

1939TurtleTrails-ar -- Andreas Raab -- 14 March 2000
Fixes strange turtle trails when moving a playfield around"

1940TwoFixes-ar -- Your Name -- 15 March 2000
This change set started out with reclassifying Interpreter but then lead to fixing the error message when renaming a file to something that already exists. Hey, you know how this works..."

1941SetRotCenter-di -- Dan Ingalls -- 19 March 2000
This changeSet enables the rotation center of sketchMorphs to be set independently of the forward direction.
It also keeps the direction and center handles in front of the morph after scaling and rotation interactions.

1942ThreeDSFixes-ar -- Andreas Raab -- 19 March 2000
Two small orientation fixes for 3DS import."


1944FastHandDrag-di -- Dan Ingalls -- 20 March 2000
An attempt at better use of the caching canvas and cachedCanvasHasHoles logic in handMorph.
Dragging windows in morphic is significantly faster.

1945BitBltSpeedup -- Dan Ingalls -- 21 March 2000
Enables code from long ago that saves time when skew=0.  Net effect is that simple copies run about 10% faster in 16 and 32 bits.

1946NonlocalRetnFix -- Dan Ingalls -- 21 March 2000
Modifies the VM to catch non-local returns out of, eg, ensure-blocks before actually unwinding the stack.  This same fix was submitted about a year ago by Craig Latta, as part of his exceptioin package."

1947debuggerFix-tfei -- Paul McDonough -- 20 March 2000
Context ensure: is implemented with some tricky coding that actually breaks the calling chain.  This allows the debugger to show the stack above where it was stitched.  It restores your ability to see the whole stack.  Very useful when you interrupt to see what is happening."

1948stackTrim-tfei -- Paul McDonough -- 20 March 2000
Context ensure: is implemented with some tricky coding that goes through several extra calls before executing the user's block.  This change hides those stack frames in the debugger.  (valueUninterruptably and its callees)"

1949FasterWorldMenu -- Dan Ingalls -- 22 March 2000
Makes 'self world project' run incomparably faster most of the time.


1951PaintBoxFocus -- Andreas Raab -- 23 March 2000
The change set adds a designated focus for a paint box morph so that the queries for
	self world findA: SketchEditorMorph
can go away and other morphs can utilize the PaintBox facilities. Also, the messages send from the paint box to the focus morph have been cleaned up to avoid side effects and allow for easier integration into other morphs"

1952PaintBoxFix -- Andreas Raab -- 23 March 2000
Fixes a problem from the last change set."

1953EvtSysFixes-sma -- Stefan Matthias Aust -- 11 March 2000
Fixes a stupid bug, adds EventModel class and some class comments."

1954MenuRefactorings-sma -- Stefan Matthias Aust -- 11 March 2000
This started out as a fix to update 1879 and ended as a complete refactoring of the MouseMenuController class and its subclasses.  Be careful as that class doesn't work with PopupMenus anymore but requires SelectionMenus.  Overwrite #getPluggableYellowButtonMenu: to answer that menu."

1955SpawnNewProc-ls -- Lex Spoon -- 5 March 2000
Attempts to make spawnNewProcessIfNeeded both faster and (hopefully) correct.
Lex explained below what he did. As Bob approved it, I includeded it --sma.
I'm not completely sure how to fix this, but perhaps it is obvious to
someone else.  The goal is that if a background thread has a fault, then
no new UI process should be started.  However, if the UI thread has a
fault, then the UI thread is now dead and thus a new UI process *should*
be started.
The current way to decide this is literally, wait 1 second and see if
the UI thread goes througha t least one loop during this interval.  This
is incorrect, because in extreme circumstances 1 iteration of the
Morphic UI really can take longer than 1 second.  Furthermore, it's
annoying in the common case, becasue you have to wait a full 1 second
before the UI comes back to life.
Below is an attempt to fix it.  The spawnNewProcessIfNeeded is now given
a parameter, which is the process which just got axed.  However, I'm not
completely sure if activeProcess is exactly what I think it is...."

1956Bezier3SegmentFix-dsm -- Duane Maxwell -- 10 March 2000
Fixes bug in computation of number of quadratic bezier segments to
approximate a cubic bezier curve for certain straight lines crossing the y

1957CelesteLineWrap-ls -- Lex Spoon -- 10 March 2000
For outgoing email, Celeste wraps lines to 72 or so columns.  Unfortunately Celeste is a little too zealous.  This small patch causes Celeste to wrap a few less lines:
	- if a line begins with '>', then it is left alone
	- if a line begins with  '====', then all following lines are left alone

1958LinearFit-jrm -- John-Reed Maffeo -- 11 March 2000
This set of changes affects GraphicSymbol, GraphicSymbolInstnace, LinearFit, and
Path. It was developed to display aLinearFit out of aGraphicSymbolInstance."


1960SetExplore-bf -- Bert Freudenberg -- 16 March 2000
Shows contents instead of implementation details for Sets in ObjectExplorer (as already done for OrderedCollection, FloatArray and Dictionary)"

1961Unimplemented-bf -- Bert Freudenberg -- 16 March 2000
There are a lot of sent but unimplemented methods (Smalltalk browseAllUnimplementedCalls) so I fixed some of the calls. There are more, a lot methods are probably just dead code and can be removed."

1962MoreUnimplemented-sma -- Stefan Matthias Aust -- 15 March 2000
As previous changeset, removal of sends of unimplemented methods, either dead code, remains of porting code from other Smalltalks or simply spelling mistakes."

1963TwoDigitYear-sma -- Stefan Matthias Aust -- 15 March 2000
Bert Freudenberg noticed that 'Date today printFormat: #(2 1 3 47 1 2)' will show a single 0 as year.  This looks strange so I suggest to print years always with at least two digits."

1964InspectorEnh-svp -- Stephen Pair -- 14 March 2000
This is a simple little change set that will display an error
message (in red) in the contents pane of an inspector in the 
event that there was a problem in printing the selected object
(the current behavior pops open a debugger, which can be
frustrating at times)."

1965LabelDraggin-sma -- Stefan Matthias Aust -- 15 March 2000
Leandro Caniglia suggested a fix to disable the #relabel function, that is you can normally drag a window if you click on the window's label.  This was already implemented for Morphic by Scott Wallace, so I took the opportunity and implemented the same for MVC.
Use 'Preferences clickOnLabelToEdit' to toggle the behavior.  If you shift-click, you still get the old (relabel) behavior."

1966QuoFix-th -- Torge Husfeldt -- 6 February 2000
Why should Smallinteger quo: fail only
because it has to answer a LargePositiveInteger?"

1967CornerRounder-hmm -- Hans-Martin Mosner <hmm at heeg.de> -- 11 March 2000
Fixes 2 issues with the CornerRounder:
1. recursive use does work now
2. beveled borders are correctly rounded (for widths 1 and 2)"

1968WarnCorruptedSource-hg -- Henrik Gedenryd -- 13 March 2000
Disables the new sources warning when the class uses a custom parser, like
Prolog (or Squeak will warn you on every method you click on even if they
are ok).
Also adds Mac-specific info on the probable cause--if Bruce's recent tweak
makes this never pop up, then so much for the better, but it should be
there, still. 
Note that this problem may concern both .sources and .changes files."


More information about the Squeak-dev mailing list