[updates] 51 for 3.1 alpha

Dan Ingalls Dan at SqueakLand.org
Tue Oct 2 06:23:53 UTC 2001


Folks -

As promised, here are a bunch of recent updates from SqC, along with 35 others harvested from the past by Doug Way (many thanks, Doug!).  This brings us pretty much up to date, and I plan to take 3.1 to beta tomorrow, as per my message yesterday ("Re: About Squeak evolution").

Enjoy
	- Dan

PS: Remember, we're looking for volunteers to nail a nice lid on 3.1 (meaning finding and fixing any remaining bugs as we go into beta test for the next week or two).  After I issue the version change, perhaps Bruce will put the new 3.1 beta on the ftp site.
------------------------
4348CoercionFix-ar -- Andreas Raab -- 25 September 2001
Hack to keep stupid, stupid C compilers happy. Oh well..."

4349unreferencedVars-sw -- Scott Wallace -- 27 September 2001
Adds a command to report unreferenced class vars (see in shifted class-pane menu of browser and change sorter).
Also fixes a long-standing bug in the code for finding unreferenced inst vars -- had formerly not worked correctly on class side."

4350wakeUpAnnotation-sw -- Scott Wallace -- 27 September 2001
Refresh annotation panes on window activation so that they will automatically reformat if the user has changed annotation preferences while the window was inactive."

4351propertyDefault-sw -- Scott Wallace -- 27 September 2001
Adds Morph.valueOfProperty:default: which obtains the value of a property, and if it is found that the property does not exist, it creates one and gives it the value determined by evaluated the default-block argument.  This brings a convenient style already long in use for system parameters and project parameters to the general handling of morph properties"

4352noteCompilation-sw -- Scott Wallace -- 27 September 2001
Adds a notification when a method is compiled, so that state in other objects that may be dependent on the presence and/or the content of particular methods can be updated or invalidated.
The immediate benefit is that one no longer needs to call 'Vocabulary initialize' whenever one changes an #additionsToViewerCategories method.
CAUTION: order in the update file is important, and has been hand-jimmied"

4353miscellanea-sw -- Scott Wallace -- 27 September 2001
*	Restores's the upper-case alphabet-bin to the Widgets flap.
*	Elevates #actWhen to generic status, so that any morph, thought of as a button, can have this trait set."

4354typeVocabularies-sw -- Scott Wallace -- 27 September 2001
Establishes a regime of first-class type vocabularies for the etoy system and beyond.  This scheme replaces a large amount special-purpose type-handling code with a general mechanism that allows the type objects themselves to make the decisions.  Among other things, this provides a modular design so that new types can be easily added without having to mess with any generic methods.
This update also fixes numerous bugs and provides may other cleanups regarding etoys and vocabularies."

4355booleanTileFix-sw -- Scott Wallace -- 28 September 2001
Fixees a couple of just-introduced drop-related bugs concerning the types of PhraseTileMorphs"

4356undefaulting-sw -- Scott Wallace -- 28 September 2001
Changes the wording of selectors for three retrieval-with-default queries from using 'default:' to using 'ifAbsentPut:', as per Andreas's suggestion."

4357StringHashPrim-ar -- Andreas Raab -- 29 September 2001
Add a primitive for String>>hash. The primitive can be tremendously helpful when dealing with dictionaries of Strings/Symbols."

4358FFIRecompileAll -- Andreas Raab -- 30 September 2001
This CS has only a preamble; recompiling all external structures. For some unknown reason one or more external structures were badly initialized. The following fixes this:"
ExternalStructure compileAllFields.

4359twoFixes-sw -- Scott Wallace -- 1 October 2001
* The window labels of FileContentsBrowsers, after any selection was made in them, were inappropriate both as to tool name and to class selection (this bug came into FileContentsBrowsers when code was added to update the title of SystemBrowsers).  This fixes that.
* Fixes bug in the code for moving class changes from one side to another of a Dual Change Sorter; formerly, if the move were denied for any reason, the deletion from the original change set still took place, potentially resulting in actual loss."

4360translSmooth-sw -- Scott Wallace -- 1 Oct 2001
Smooths out the mechanism for adding new natural-language translations of standard vocabularies -- less hard-coding, more self-configuring.  A class-variable in Vocabulary holds on to the available-language list, so adding new languages can be done dynamically without needing to modify any base system methods.
If you add a new natural language and you want it to be available in the 'set language' menu, have your file-in do a do-it of the following form, substituting your language name for XX:
Vocabulary setTranslationInitializer: #addXXVocabulary forLanguageSymbol: #XX

4361UniTile10-tk -- Ted Kaehler -- 1 October 2001
Allow Detailed variable watchers and ordinary variable watchers to be numeric fields in stacks.
CardPlayer classes now do have source code recorded.  To keep the names of temps and the comments in scripts.
Viewers for CardPlayers have 'self' instead of 'Card1' as the first part of tiles.  This is so a script written for one card works for the rest of the cards of that background.  Make drag out a tile to start a script work with 'self' in a tile.
Renaming a script is kept in the scripts category.
If a holds-separate-data object is embedded in a simple morph (Rectangle), it is still recognised and has its data changed when you go to the next card.  The holding morph must be in the background also.
Changing a script name finds and changes all buttons that fire that script."

4362SensorInMorphic-di -- Dan Ingalls -- 1 October 2001
Prevents dropping keyboard input when using, eg,
	Sensor keyboardPressed
in Morphic by changing a flush of the eventQueue to a selective flush.
This allows the InterpreterSimulator (and, eg, ST-72) to run in Morphic on a Mac.

4363BitBltExampleFixes-jrm -- John-Reed Maffeo -- 18 September 2001
Fixes a couple of non-working BitBlt examples, and adds comments. (tweaked by dew)"

4364BlockCannotReturn-JW -- Jesse Welton -- 17 May 2001
BlockCannotReturn>>defaultAction called Exception>>defaultAction through a super call, which in turn called #subclassResponsibility, resulting in an incorrect error message.  Fix: reparent BlockCannotReturn as a subclass of Error (which it really should be anyway).
ScorePlayerMorph>>showResumeButtonInTheWorld and InternalThreadNavigationMorph>>triggerActionFromPianoRoll called #addDeferredUIMessage: with a block including a return, resulting in a BlockCannotReturn error under certain conditions.  Fix: rewrite the blocks to simply fall through in these conditions."

4365BrowseLocal-nk -- Ned Konz -- 26 Sept 2001
This adds two items to the Browser message list menu:
browse local implementors
browse local senders
These are just like the non-local versions of these same menu items,
except they restrict their search to the selected class and its sub-
and super-classes.
26 Sept: updated for CS 4347. -dew
4 April: added ability to type in a selector if none is selected.

4366BrowserLabels-SD-dew -- Stephane Ducasse and Doug Way -- 15 September 2001
Cleans up the titlebar labels of various non-system browsers when classes are selected (Hierarchy Browser, FileContentsBrowser)."

4367ChasePointersMenu-dew -- Doug Way -- 19 September 2001
Adds the useful 'chase pointers' menu item to the Inspector (in addition to the ProcessBrowser), which uses the PointerFinder to track down a global which points to the inspected object.  Great for figuring out why an object hasn't been garbage collected."

4368CmdKeyComment-dew -- Doug Way -- 19 March 2001
Improve the comment of ParagraphEditor class>>initializeCmdKeyShortcuts to mention the alt-key."

4369collapseFix-bf -- Bert Freudenberg -- 22 May 2001
Removes collapse handle for submorphs to prevent accidentally messing up the morph hierarchy."

4370CollapseInPlace-svp -- Stephen Pair -- 21 August 2001
This change set adds a Preference (in the windows category) which allows you to collapse and expand SystemWindows in place.  The collapsed bounds are located at the same origin, and have the same width as the full bounds.  (Similar to 'windowshade' on the Mac.)"

4371CPUWatcher-nk -- Ned Konz -- 14 March 2001
CPUWatcher (a.k.a. PigWatcher) implements a simple runaway process monitoring tool that, when turned on, will suspend a process that is taking up too much of Squeak's time and allow user interaction. It watches for a Process that is taking more than 80% of the time; this threshold can be changed.  Also, the ProcessBrowser now uses the CPUWatcher to display CPU percentages for all running processes.
	CPUWatcher startMonitoring.	'process period 20 seconds, sample rate 100 msec'
	CPUWatcher current monitorProcessPeriod: 10 sampleRate: 20.
	CPUWatcher current threshold: 0.5.	'change from 80% to 50%'
	CPUWatcher stopMonitoring.
22 March:
Brought back display of the UI process; this had been removed in newer VM's by the nil-ing out of the active process suspendedContext field.
14 March:
Added automatic starting of CPUWatcher when ProcessBrowser is started, if it's available. This will provide percentage numbers. If the ProcessBrowser starts the CPUWatcher, it will stop it on exit.
Added CPUWatcher menu items to process list menu. Made CPUWatcher update time more accurate.
Added percentage time display to ProcessBrowser. If a CPUWatcher is running, it will use its statistics.
Also greatly reduced auto-update jerkiness in ProcessBrowser by using garbageCollectMost rather than garbageCollect.
Well, it ignores UI pigs now. You can use the interrupt key for those.
By the way, you can see the current tally using:
	CPUWatcher dumpTallyOnTranscript 
Note that the CPUWatcher may not catch processes with priorities at or above 6 (the priority of the IO process).
(note: this also includes a couple of ProcessBrowser fixes:
* suspended processes can now be debugged
* suspended processes can have their priority changed)
Also (earlier named CPUUsageTally-nk):
Compute CPU usage using a 10-msec sample for (at least) the given number of seconds, then dump the usage statistics on the Transcript. The UI is free to continue, meanwhile.
	ProcessBrowser tallyCPUUsageFor: 10

4372crlfzip-ls -- Lex Spoon -- 6 January 2001
Changes decompression to use binary mode for reading files in a few places.  This is important if the file object is a CrLfFileStream.  (To see the problem, change FileStream>>concreteClass to return a CrLfFileStream and try decompressing files in the FileList.)
Also, it inserts a uses of withSqueakLineEndings in place of some code that intended to do the same thing."

4373ffiFixesX11-bf -- Bert Freudenberg -- 28 March 2001
Makes X11 FFI examples work with 3.0 VM. Also fixes ExternalAddress conversion to/from Integers. It grossly ignored endianness and worse, I think it even wrote to external space instead of changing the address. Besides, do we need this at all?"

4374FileContentBrowser-BJP -- Bijan Parsia -- 23 April 2001
Some minor tweaks to that most wonderful of tools, the FileContentBrowser, spurred by Richard O'Keefe's queries to the Squeak list. It (thus far) includes:
	1) 	The ability to view bytecodes of browsed methods. (updated to
		work with 3.1a-4332 by Doug Way)
	2)	Richard's proposed changes to the wording of messages provided 
		by PseudoClass>>comment and PseudoClass>>definition.
	3)	A tweak to PseudoClass>>definition so that if you click on
		the class name, it will pop up the definition already in the
		system.
	4)	Some stabs at class comments for FileContentsBrowser and
		PseudoClass"

4375FileListAlignFixes-nk -- Ned Konz -- 9 February 2001
This change set makes the FileList2 buttons and pattern
part of the same pane, so that resizing the top pane won't
result in badly sized panes."

4376FileMenuAdditions-dew -- Doug Way -- 9 February 2001
Adds 'fileIn', 'file into new change set', and 'browse code' menu items to the file (text area) menu, to go along with 'browse changes' (so that it's similar to the file list menu).  This will make it easier for people to file in and browse changesets if they open them via the open.../file... menu.  Also removes 'fileIn selection', since it's already in the shift menu."

4377FileURLFixes-nk -- Ned Konz -- 5 February 2001
Fixes some FileURL bugs, so that one slash is prepended instead of two at the appropriate times."

4378GrabRotatedMorphFix-bf -- Bert Freudenberg -- 11 September 2001
If you have a morph with holes, or that is simply non-rectangular, and you rotate it, the transparent areas won't let mouse clicks through anymore. Just paint a zig-zag line, rotate it, and you can grab it even by clicking in between the zig-zags.  This surely breaks the illusion of the 'thingness' of self-painted objects.  Fix by removing a fullBounds send in TransformMorph>>containsPoint:."

4379haloContrast-bf -- Bert Freudenberg -- 18 April 2001
Makes halo icons more contrasting with the background. Postscriptum changes recolor icon to 1 bit depth."

4380HierarchyTextItems-dew -- Doug Way -- 16 July 2001
Adds the ability for hierarchy widget items to have text emphasis (bold, etc.)  (To do this, have #asString in the ListItemMorph subclass return a Text object.)"

4381IfErrorEnhancement-mdr -- Mike Rutenberg -- 10 April 2001
Enhances ifError: to also allow error blocks which contain no arguments.  This change adds support for a form of usage which is already in the system :-) and makes it a bit easier to read and write simple error handling code.
		[-1 sqrt] ifError: [:err :rcvr | 9 ].	(old form) 
		[-1 sqrt] ifError: [ 9 ].				(new additional form)
Also corrects two minor ifError: uses which were incorrect.

4382IndentingListFont-nop -- Jay Carlson -- 10 February 2001
IndentingListItemMorphs should use the user's list font preference.  Well, really they should not be hardwiring a font selection at all, but this at least hardwires a better font."

4383KbdMorphForInput-mrm -- Martin McClure -- 16 July 2001
Fixes a layout problem with the buttons of the KeyboardMorphForInput.  To see the problem:
* Enter the project 'Fun With Music'.
* Click in a corner of the PianoRollScoreMorph to bring up a menu
* Select the last menu item, 'add keyboard'."

4384MailMessageHeaders-mdr -- Mike Rutenberg -- 9 July 2001
Adds mailing-list headers to the list of omitted headers when displaying a simple message."

4385MailOutTweaks-BJP -- Bijan Parsia and Doug Way -- 24 April 2001
Lets you use the 'mail to list' feature of changesets, without having to set up a Celeste database.  No preference is added; if a Celeste smtpServer isn't already set, you are prompted for a server and email address.
Also refactors ChangeSet>>mailOut, adds the timestamp to the beginning of the changeset (promoting #timeStamp to WriteStream), and adds the name of the author to the email from the changeset preamble (or prompts for a name if there is no preamble)."

4386PackageBrColor-sbw -- Stephan B. Wessels -- 21 August 2001
The color 'behind' the instance/class morphic buttons was incorrect when the panel
gets built in the package browser.  This caused the vertical bars that are part of the
new look to show up green instead of yellow.  (Also fixes the FileContentsBrowser)"

4387PackageBrowserSysCat-je -- Joern Eyrich -- 30 April 2001
Fixes a problem reported by Scott A Crosby when adding a Category in the Package Browser without having a Category selected.  Changes hardcoded access to category list to use subclass-overridable access method"

4388removeAllSpeedup-raok -- Richard A. O'Keefe -- 27 April 2001
Improves the performance of OrderedCollection>>removeAllSuchThat: from O(n**2) to O(n)."

4389ScorePlayerMorphFix-nk -- Ned Konz -- 8 February 2001
The ScorePlayerMorph's little '<>' button opens a menu
that allows opening a MIDI file. If there are none in the current
directory, you get a walkback. (tweaked by dew)
This fixes this problem, but it should probably open a file requester."

4390ScrollingEnh-JW -- Jesse Welton -- 21 February 2001
Enhancements to scrolling that tidy up the various xxxScrollRange methods, and to make ScrollPanes more responsive to changes in the scroll range.  Also eliminates the occasional one-pixel offset errors that can result from (implicitly) truncating the offset rather than rounding it."

4391ScrollPaneEventFix-JW -- Jesse Welton -- 22 January 2001
Little fix of circular circular event logic in ScrollPane and TwoWayScrollPane, due to lines
	self on: #mouseEnter send: #mouseEnter: to: self.
	self on: #mouseLeave send: #mouseLeave: to: self.
in #initialize.  These lines are extraneous because the EventHandler mechanism is invoked by
the shadowed definition of #mouseEnter: in Morph."

4392ServerDirectory-sbw -- Stephan B. Wessels -- 21 August 2001
Fixes a bug when using remote FTP from FileList.  The first time you select a directory on a newly added FTP server the name was decoded improperly."

4393StringMorphOptimize-nk -- Ned Konz -- 11 May 2001
This speeds up browsers and menu display by deferring
the setting of StringMorph to its default string as long as
possible. In most cases, StringMorph instances are set to
something other than 'String Morph'.
There were also two duplicate 'changed' calls in StringMorph every
time that contents: was called. This fixes this to call changed
once per contents: call:
	contents:
		fitContents
			extent
				changed
These changes resulted in a speedup of 28% on popping up the
alphabeticalMorphMenu, as measured by:
wm _ TheWorldMenu someInstance.
((1 to: 20) collect: [ :i | Smalltalk garbageCollectMost. Time millisecondsToRun: [  wm alphabeticalMorphMenu  ]]) average asFloat

4394TimeProfileFix-nk -- Ned Konz -- 20 February 2001
This fixes the display of versions from a Time Profile browser."

4395UncategorizedMethods-nk -- Ned Konz -- 12 February 2001
This is a little tweak that adds a popup menu choice
called 'categorize all uncategorized'
to the message category list menu.
This menu choice will attempt to recategorize uncategorized
methods by looking in parent classes for the method category.

4396WnldClick-bf -- Bert Freudenberg -- 25 June 2001
Makes sure camera controls exist in 1st-person mode."

4397WordingImprovement-jcg -- Joshua Gargus -- 15 May 2001
I was having some problems with my native tongue last summer, and used very poor wording in a menu item (probably unintelligible to anyone but me).   I've worked hard on my English over the last year; hopefully this is an improvement ;-)"

4398PostHarvest-di -- Dan Ingalls -- 1 October 2001
A couple of tweaks to the recent spate of harvested fixes and enhancements.  These were mostly suggested by Scott Wallace.
ChasePointersMenu-dew.cs
CodeHolder method #fieldListMenuForCollection:... was removed back in update 3871 as part of a menu refactoring, and it no longer has any senders.  Removed again, therefore.
FileContentBrowser-BJP.cs
The new #selectedBytecodes method added in this fileout is elevated to CodeHolder, and invoked by CodeHolder.contents and MessageSet.contents.
BrowseLocal-nk.cs
The following familiar foursome has been reinstated:
	senders of...
	implementors of...
	inheritance
	versions
with the new 'local' items moved to the shifted (more...) menu.  The 'tile scriptor' item has been similarly relegated to the (more...) menu.





More information about the Squeak-dev mailing list