[UPDATES] More for 2.7alpha

Dan Ingalls Dan.Ingalls at disney.com
Mon Dec 6 22:41:09 UTC 1999


Folks -

Here follow summaries of a recent spate of updates.  These include many of STP's goodies, mostly hooked up to preferences, plus a number of little fixes (like Interval>>includes: and ProtoObject dNU:.), Lex's service to mankind (reworks dozens of blocks to eliminate out-of-scope references to block variables), a reorganization and my first pass at Environments.

Note this includes a LONG recompilation of every metaclass which may take 10 minutes or so.  Also, due to the notifier, if you are in MVC, you may need to cmd-. and restore the display after it is all done.  Sorry about that.

	- Dan
---------------------------
1687imgSegByte-tkME -- Ted Kaehler -- 6 December 1999
This will be a  New Format for Image Segments, both swapped and exported.
When a new VM is issued, bring all segments in with an old VM, then get new VM, then let them out again.
Two bits are now encoded in the version word of an Image Segment.  (1) whether 4-byte words are bigEndian or littleEndian (2) whether byte objects are stored bigEndian or littleEndian.  How can a byte object be stored the wrong way, since both VMs store it correctly?  If the entire segment was word-reversed along the way, it may be correct, but the byte objects will be backwards. We now allow DataStream|rTetraByteArray to always read bigEndian.  If the file came from the opposite polarity, this is a reversal of byte objects."

1688FasterSorting-STP -- Stephen T. Pope -- 6 December 1999
SortedCollections assign a default sort block if none is provided. Since
90% of these blocks are the same, we can save one block activation per
sort comparison if we code the comparison directly for collections where
the sort block is nil. The attached change set implements this; the
speed-up is quite significant for large collections (>100% for 50000
items in random order).

1689ScrollBarPrefs-STP -- Stephen T. Pope (tweaked by DI) -- 6 December 1999
Provides preference control over whether or not to include menu buttons at the top of scroll bars.  For those who don't use control keys, use of option-click in the pane can still be used to bring up the pane menu when there is no menu button.
Provides preference control over whether to use narrow scrollbars.
Provides preference control over left/right placement of scrollbars independent of inboard/outboard selection.

1690TimeProfileBrowser-STP -- Stephen T. Pope -- 6 December 1999
Adds a browsing interface to MessageTally results.
For a demonstration, evaluate the following expression
	TimeProfileBrowser onBlock: [2000 timesRepeat: 
			[Transcript show: Float pi printString]]

1691PackageBrowser-STP -- Stephen T. Pope -- 6 December 1999
Makes a package browser available.  This separates major and minor divisions of the SystemOrganization.  To use this 6-pane browser in place of the normal one, enable the preference, #browserShowsPackagePane.

1692SundryFixes -- Dan Ingalls and fellow Squeakers -- 6 December 1999
Implements AbstractSound>>asSampledSound (Mark Guzdial)
Adds PluggableTextMorphWithModel (Mark Guzdial)
Fixes typo in nextLitteEndian method and its sender (Andrew Greenberg)
Defines ProtoObject>>doesNotUnderstand: (Iam Piumarta)
Restores Interval>>includes to reasonable behavior (Mostly Bob Jarvis)

1693BlockArgAccess-LS -- Lex Spoon -- 5 December 1999
Remove many instances in the code where a block argument is accessed
outside of its block.  Such access is allowed by the current compiler,
but it probably shoudln't be."

1694PreEnvironmentFixes-DI -- Dan Ingalls -- 6 December 1999
Two fixes and one default implementation needed for SqueakEnvironments1.

1695SqueakEnvironments1-DI -- Dan Ingalls -- 28 November 1999
Adds 'environment' and 'category' to all classes
Makes cachedClassNames be an instVar of SystemDictionary.
Defines a new class Environment -- (see class comment)
Define doesNotUnderstand: for Environments so they can find things before they have been defined as exports (via messages).
Refactors the SystemOrganization so it can easily be grouped...
		Kernel (incl numbers)
		Collections
		Graphics
		Tools (used to be called interface)
		System (incl files)
		--------------
		ST80 (old MVC stuff)
		Morphic
		Sound
		Network
		Postscript
		Squeak (VM support stuff)
		Balloon (incl Flash and TT)
		Baloon3D (incl Alice, Wonderland and VRML)
Above the line are only distinctions in the system organization -- all those classes are still in the environment called Smalltalk.  Below the line, each category is its own environment (dictionary like Smalltalk).
Defines Environment reorganizeEverything.  This converts the old Smaalltalk SystemDictionary to a sub instance of Environment.  Then it runs through SystemOrganization making up a new Environment for each non-kernel major category.  Moves the class associations into the envt, and points the class's environment slot at its new home.
Adds the capability to the parser to track source code locations of variable references (it used to do this only for complete messages).
Defines Smalltalk rewriteIndirectReferences.  This rumbles through every method in the system identifying those that make global references that are out of their new direct access scope.  For each of these (there are about 340 of them), it parses them with the compiler in 'lenient' mode (will resolve references out of scope) to determine the exact source code location of the each reference.  With these as a guide, and knowing the name of the dictionary in which the remote reference can be found, it updates the source code and recompiles it with proper remote reference patterns.
In the process, it also adds the proper export methods to the environments being so accessed.

1696reorganize





More information about the Squeak-dev mailing list