22 new updates

Dan Ingalls DanI at wdi.disney.com
Tue Mar 30 15:29:39 UTC 1999


Folks -

On the way to 2.4, we have some more updates.

Note that there is significant chance of incompatibility with 765-8:
	A couple of changes to prevent gratuitous responses to inappropiate messages.
		'abc' asNumber no longer responds with 0.
		123 size no longer responds with 0.
		nil size no longer responds with 0.
	All these are now errors.
	Attempts to use at:, or at:put: with non-indexable objects no longer complain
		about subscript bounds, but properly complain about indexability.
	Includes a couple of fixes for code that relied on the above improprieties.

The real impact of these changes will not be felt until you run with a new VM, as the current VM allows size to be sent to nil and SmallIntegers -- in fact to anything.  I will put out an interim VM in a couple of days for people to try.

FYI - we have a couple of internal tasks going right now, so it will probably be a week more before I can get 2.4 out for real.  The upside is that all the segment swapping code seems to work (already in these updates, with new VM).

	- Dan

Here below is a summary of these latest updates...
-------------------------
747UpdateTweaks-di -- Dan Ingalls -- 28 January 1999
Fixes an update-1000 bug in Utilities>>broadcastUpdatesFrom:to:except:
Enhances ChangeSet summaryString to deal with offset numbering.

748AcornFixes-TPR -- Tim Rowledge -- 19 February 1999
Fixes sh-cmd-keys on Acorn.
Also defines AcornFileDirectory>>fullNameFor:

749TranscriptCharacterLimit
Increases the Transcript text buffer size to 20000

750ScrollBarFix-dew -- Doug Way -- 17 March 1999
Fixes a small bug, so that if a 100% full scrollbar is clicked on, the
contents will always completely scroll into view."

751B3DRenameFix-ar

752WorldRestore-ar

753DebuggerFix-di -- Dan Ingalls -- 22 March 1999
Made a new class MessageAsTempNode to clarify the situation where a message node masquerades as a temporary variable in order to provide access to temporary variables when executing do-its in the debugger.
Included in this class the new protocol required for variable scoping thus restoring the ability to execute blocks in the context of a debugger.

754trashFromHalo-sw -- Scott Wallace -- 23 March 1999
When the user hits the 'dismiss' halo handle, move the behaloed object to the trash rather than just clobbering it.
The 'dismiss' halo handle is made pink-with-an-x, like various other go-away controls elsewhere in morphic, and it is given a natural button-like action when moused in, rather than irreversibly activating on the initial mouse down.
When the Trash is open for manipulation, it now sports a button allowing you to empty it.
The header of the open Trash window now reports on how many pages of trash there are.
Along the way, fixes a long-standing bug in Morph.replaceSubmorph:by:, which, while remembering to start stepping the new object itself, did not start stepping any submorphs which it in turn might have."

755TwoFixes-ar -- Andreas Raab -- 24 March 1999
Two small fixes for the Balloon stuff."

756ImageSegments2-di -- Dan Ingalls -- 24 March 1999
This changeSet provides code for saving and loading image segments.
	It is implemented in a class called ImageSegment.
	It can do a fast deepCopy of some object, OB, by evaluating, eg,
		(ImageSegment new roots: (Array with: OB)) segmentCopy
It also implements a facility for recovering from faults due to the replacement
	of classes by root stubs that will reload a class from a remote segment.
	Changed Interpreter>>lookupMethodInClass: to test for methodDict == nil
	In this case it will send cannotInterpret: to self with the original message.
	Added Smalltalk specialObjectsArray at: 35 put: #cannotInterpret: for the above.
	Added two methods, induceMDFault and recoverFromMDFault to test this
	Added a handler for cannotInterpret: for the above as well.
	See the comment in ClassDescription>>induceMDFault
This version provides much faster remapping of oops in the storeSegment.

757categoryFixes-sw -- Scott Wallace -- 23 March 1999
Fixes two bugs reported on 3/23/99 by Chris Norton:
(1)  When you used the 'change category' feature in a browser to change the category of a method from 'as yet unclassified' to something else, it could drop you into a debugger if the change left no items remaining unclassified.
(2)  Attempts to move a classified method back into the 'as yet classified' category were not being honored."

758flapEconomy-sw -- Scott Wallace -- 25 March 1999
When user turns off the useGlobalFlaps preference, put up a dialog offering her the opportunity to clobber the actual flap structures.  If she chooses to preserve the existing structures, flaps will come back much faster when they are reenfranchised, and also they will reflect any modifications she made to them.  If she chooses to clobber the existing structures, it will save considerable space in memory, but if she should subsequently choose to use flaps again, it will take time to reinstantiate them afresh, and the new flaps will not reflect any changes she may have earlier made to the old ones.
Also in this change set: the action for toggling an item in the Preferences editor is improved -- the color of the 'true' or 'false' changes when you mouse down on it, but no actual change is made until the mouse comes back UP while the cursor is in the same item.
Also included is a minor refactoring of the code for programatically creating the default left flap, eliminating hard-coded positions, and a couple of other flap-related cleanups."

759SuperSaver-di -- Dan Ingalls -- 25 March 1999
[FileOut note:  It is VITAL that the doit in the postscript be copied into any fileOut of this changeSet within the very chunk that redefines Message.  This is because doesNotUnderstand: gets invoked by the Preferences mechanism during fileIns, and it will crash if Message gets redefined without also getting reinstalled in the specialObjects array].
This changeSet provides for preservation of information in case doesNotUnderstand: or cannotInterpret: are encountered during a super-send.
	1.	Extends Message instances to include a lookupClass
	2.	VM resends of doesNotUnderstand: and cannotInterpret: now set that variable
	3.	Defines a new primitive, Object>>perform:withArguments:inSuperclass:
		that starts its lookup in the specified superclass.
	4.	Reimplements Message>>sentTo: to use this new superclass perform
		if the value of lookupClass if it is not nil
Also promotes 'rename change set' to the unshifted menu of ChangeSorters.

760SegmentFaults-di -- Dan Ingalls -- 26 March 1999
This changeSet finally assembles the ability to save and load image segments with the ability to detect message faults and methodDict faults.  It also defines two formats for segments on disk, one that is very fast, and one that would save more space in the host image, but that requires rehashing because Symbols could get new oops.
Various informal tests in ImageSegment include
	Discovering inactive classes by inducing them to fault on null methodDicts.
	Computing a deepCopy of every class in the system.
	Writing all inactive classes out to disk in segments by category.
	Writing all projects other than the current one out to disk in segments.

761WithoutWithout-di -- Dan Ingalls -- 28 March 1999
This renames the keyword, 'withOutPointers:', which can be read as 'withoutPointers:' to be 'outPointers:'.  Requested by Ted Kaehler."

762SegmentByteOrder-di -- Dan Ingalls -- 28 March 1999
This changeset adds a check for compatible version number and correct byte order to the image segment save/load mechanism.

763adpcmCodec-jhm -- John Maloney -- 28 March 1999
Adds a simple ADPCM (adapative delta pulse code modulation) codec.
This general audio codec can decode all Flash .swf file compressed
sound formats, namely: mono and stereo ADPCM compressed sound at
2, 3, 4, and 5 bits/sample. The encode/decode primitives have been
translated into C and they are extremely fast. It will require a new
VM to see this speed, of course.
Note that this change set does not change the Flash parser to use
the new ACPCM codec; that will be done by a later change set. One
other incompleteness: stereo ADPCM encoding is not yet implemented.
It also adds the C code for the GSM codec plugin to the interpreter support
code class to allow folks to build this plugin on other machines. It is a
single portable C file of about 100K.
Fixes a small bug in InterpreterArray that caused any negative
numbers stored in it to be off by -2. This was causing glitches in
the Flash sound decoding."

764network-tkJS

765Sundry-di -- Dan Ingalls -- 29 March 1999
A couple of changes to prevent gratuitous responses to inappropiate messages.
	'abc' asNumber no longer responds with 0.
	123 size no longer responds with 0. (requires new VM)
	nil size no longer responds with 0. (requires new VM)
All these are now errors, as they should be.
Attempts to use at: or at:put: with non-indexable objects no longer complain about subscript bounds, but properly complain about indexability.

766Sundry2-di -- Dan Ingalls -- 29 March 1999
[This is a re-release of an incomplete changeSet]
A couple of changes to prevent gratuitous responses to inappropiate messages.
	'abc' asNumber no longer responds with 0.
	123 size no longer responds with 0.
	nil size no longer responds with 0.
All these are now errors.
Attempts to use at:, or at:put: with non-indexable objects no longer complain about subscript bounds, but properly complain about indexability.
Includes a couple of fixes for code that relied on the above improprieties.

767Sundry3-di -- Dan Ingalls -- 29 March 1999
A few more size bugs discovered posting the last update.

768Sundry4-di -- Dan Ingalls -- 29 March 1999
More fixes on the bug-tail of nil size being an error.





More information about the Squeak-dev mailing list