[updates] 47 for 3.2alpha
beoneel at bluewin.ch
Thu Jan 10 14:30:21 UTC 2002
Thanks to Henrik this is now up on the ftp site.
Dan Ingalls <Dan at SqueakLand.org> wrote:
> Folks -
> Happy New Year, all!
> Herewith a number of updates from December, mostly from SqC. I'm hoping now to resume the process of releasing 3.2 that got stalled for various reasons over the holidays.
> My plan for the near term is...
> 1. Get all appropriate VM changes from Andreas and JohnMc
> into the update stream.
> 2. Issue a version change to 3.3alpha.
> 3. Prepare to release 3.2 by doing all the normal cleanups
> and issuing an image for test. If there's anything
> badly wrong, we can put it out in the 3.2 update
> stream, and we can re-post an updated image any
> time we feel the need.
> 4. Press on with 3.3, meaning...
> Issue Henrik's modules
> Issue Joshua's bounds changes (so they don't get stale).
> Encourage the harvesters to bring us up to date
> So the idea is basically to wrap up 3.2, and press on with 3.3. Hopefully by front-loading most major changes early in the cycle, 3.3 will reach a stable state well before we feel the need for another release.
> - Dan
> 4600ViaSUnit-3-tk -- Ted Kaehler -- 10 December 2001
> Bug exhibited by a GeeMailMorph. If you choose 'make scrollbar inboard', and then later choose 'make scrollbar retractable', it gets recursive errors, and you have to leave Squeak.
> The problem is that the scrollbar's owner is not nilled, and Morph>>privateAddMorph:atIndex: can't find it in the submorphs. My fix bulletproofs privateAddMorph:atIndex:.
> Also corrected the root problem by nilling the owner of the scrollbar when it is made retractable.
> The recent menu keys addition got a error if no menu existed. Just put in a check for nil in the right place."
> 4601minorly-sw -- Scott Wallace -- 11 December 2001
> * Titles for slot-info menus in viewers now (again) show the slot-name rather than the getter.
> * Makes it possible for any of the anticipated individual-category-defining methods to be missing when Morph class #additionsToViewerCategories is run. This circumvents a recurring and annoying method-ordering problem."
> 4602stackFeatures-sw -- Scott Wallace -- 11 December 2001
> Adds five new commands to the black-dot menu for a Stack. The primary intent here is to ease the importing of external data into a Squeak 'Stack':
> * 'add cards from clipboard' - Provides a mechanism for importing records from tab- and return-delimited strings such as can be obtained from word processors, spreadsheets, etc.. The data are expected to be one card's worth per line, with the data order on each line being exactly the same as the order of the instance variables in the cardPlayer, and with values for successive fields being separated by tabs, and with return characters demarcating the lines. To get the instance variables of your card to correspond in the correct order with the data you are importing, you might need to use the next command:
> * 'change inst var order' - Provides a ui for rearranging the order of instance variables in the uniclass of a stack.
> * 'be defaults for new cards' - A one-touch UI for making the current values seen on a card become the defaults for their respective fields in new instances
> * 'sort cards by...' Lets you sort the cards in the stack on any single sort key.
> * 'delete all cards *except* this one' - Allows you quickly to cleanse a stack of unwanted cruft."
> 4603SecureBorderStyle-ar -- Andreas Raab -- 11 December 2001
> Secure morphs against the use of invalid border styles."
> 4604baseGraphic-sw -- Scott Wallace -- 12 December 2001
> Makes a SketchMorph keep track of a 'baseGraphic' -- normally its original picture, but settable by the user. Support is provided via new items in the #graphics category of the Viewer and new items in a Sketch's halo menu for reverting to the baseGraphic and for changing what the baseGraphic is."
> 4605outOfUES-sw -- Scott Wallace -- 12 December 2001
> Caution: standalone and plugin images require different versions of this.
> Two items inspired by recent activity at UES
> (1) Because of intractable performance problems, the isOverColor test is made unavailable. This REALLY slowed things down in a Viewer open to the tests category.
> (2) Makes the do-it receiver in a textual scriptor be the same as the 'self' referred to in the code; thus, one can evaluate Smalltalk expressions inside a scriptor and have the right 'self' pertain."
> 4606LessFullGCs-ar -- Andreas Raab -- 12 December 2001
> Remove the need for garbage collections in two cases.
> Case #1: File operations required (possibly full) garbage collections on certain operations. These are unneeded if the file registry does not contain a file with the same name. In this case, the failure to perform the operation cannot be due to a dangling file handle and thus we don't need a GC.
> Case #2: Socket creation required a full GC if the creation failed. This can only happen if the number of open sockets is above a critical threshold (and therefore exceed OS resources) and some sockets are dangling (and could be used to free up resources). A registry threshold can prevent execution of a full GC until we have at least a certain number of sockets open.
> 4607tileFixes-sw -- Scott Wallace -- 13 December 2001
> A host of bug fixes relating to 'classic' tile-scripting. Some of these bugs have been with us for quite a long time!
> * Makes color:sees: not fail if the object being tested is not in the world.
> * Fixes the long-standing bug that had invited certain spurious and error-producing drops (which would always eventually lead to trouble,) into CompoundTileMorphs.
> * Fixes the long-standing bug that had often made Scriptor panes not open up a tall-enough space for phrases they are inviting in -- most conspicuously seen in a TEST pane, when the value being dragged over has just been grabbed from a Viewer.
> * Fixes the long-standing bug that could make a TEST pane sometimes not accept the drop of a perfectly reasonable boolean-valued phrase.
> * Fixes a bug revealed in update 4604: the position adjustment when setting a new form into a SketchMorph was not taking flexing into account. The result was that the flex could be broken (i.e. flexee no longer had its position in local coords) and things would not come right until you picked the object up.
> * Fixes the long-standing bug that a coerced-to-boolean slot retrieval in a TEST pane, if subsequently removed and then dropped on the desktop, would spawn a new scriptor around it.
> * Temporarily reverts the handling of action-when-mouse-is-up imparted by 4572DragVsClick to ScriptEdtiorMorph.step, which was producing a serious problem in newly-launched CompoundTileMorphs.
> * Adds some limited interoperatbility between plugin and standard images regarding types in TilePadMorph, eliminating a kind of horrible problem that could be seen when loading an etoy project created under the plugin-in into a standard image and then trying to do some further tile editing in it."
> 4608DropZonesFix-ar -- Andreas Raab -- 14 December 2001
> Fixes a problem with tracking the drop zones in eToys which resulted from ScriptEditors running the tracking code when they appeared in the world. The problem wasn't seen before the drag vs. click update because the step method turned itself of after some time. The changes make tracking the drop zones a separate stepping method which is turned on and off independently from the 'main' step method.
> 4609ColoredStencil-ar -- Andreas Raab -- 14 December 2001
> Fixes a problem when using stenciling on color forms. Found when attempting to add a drop shadow to the trash can."
> 4610BorderedStringMorph -- Andreas Raab -- 15 December 2001
> Adds a so-called 'bordered' string morph using Bob Arnings hack for how labels in project views are drawn. Generally useful for labeling objects requiring some background contrast."
> 4611BorderedImage -- Andreas Raab -- 15 December 2001
> Enable the use of common border styles around image like morphs. As an example, you can now use our border styles for framing project views."
> 4612LaunchNamed -- Andreas Raab -- 15 December 2001
> Three changes for PartsBins:
> #1: Use BorderedStringMorph for the label rather than NameStringInHalo.
> #2: Use the name of the quad defining the object when it is launched. As an example, the 'Picture' in the parts bin used to come up in the world as 'Image'. Now consistency with the parts bin description is enforced.
> #3: Make objects in parts bins bottom-center aligned to have all the labels at the same height.
> 4613PartsBinButtons-ar -- Andreas Raab -- 15 December 2001
> The change set makes all elements in parts bins 'real' buttons, by adding mouse feedback. This change is experimental - if you don't like it take out the #buttonSetup call and look at the post script to see how the existing setup might be removed.
> Also, because items in the parts bin are now real buttons, they act on mouse ***UP***. This behavior is intentional - while some people might now be used to dragging objects out of parts bins almost every 'normal' user will be most surprised by this behavior if the object looks and feels like a button."
> 4614TextAndFonts-ar -- Andreas Raab -- 17 December 2001
> Various improvements for text:
> * Alignment can now be set for each paragraph in a text individually (e.g., the text style does no longer dominate the alignment for the entire document).
> * Fonts can now be set for each character individually (e.g., the text style does no longer dominate the font for the entire document).
> * Morphs can be anchored either #inline (behaving like characters) or #paragraph (relative to the enclosing paragraph) or #document (relative to the enclosing document). The anchoring scheme can be set for each morph individually.
> Needless to say, this CS contains a bunch of major fixes and modifications to the character scanner classes - which means that some old things might be broken."
> 4615jpegMovieCreation-jm -- John Maloney -- 14 December 2001
> Adds a menu button to MPEGMoviePlayerMorph. The 'Rate'
> and 'Repeat' buttons have become menu commands. Added
> menu commands for creating JPEG movies:
> a. from an MPEG movie
> b. from a SqueakTime movie
> c. from a folder full of image files
> Adds menu commands to remove or add a JPEG movie
> soundtrack with various compression options.
> Other improvements:
> a. better random access in ADPCM sound streams
> b. faster saving of AIFF files
> c. better movie audio/video sync
> d. handy methods for saving and converting audio files"
> 4616MIDIStoreWAV-jm -- Mark Guzdial and John Maloney -- 16 December 2001
> Implements ScorePlayer>duration so that you can store a MIDI score to
> a WAV file. Here's an example:
> score _ MIDIFileReader scoreFromFileNamed: 'riff.mid'.
> player _ ScorePlayer onScore: score.
> player storeWAVOnFileNamed: 'riff.wav'.
> Mark did the first version, John made it work for MIDI files
> containing tempo changes.
> 4617soundSaving-jm -- John Maloney -- 16 December 2001
> Juan Manuel introduced storeWAVOnFileNamed:, which allowed
> any sound, including a MIDI ScorePlayer to be stored as WAV
> audio file. This changeset extends that facility to allow saving
> sounds as AIFF or Sun audio files as well. In addition, several
> optimizations were added:
> 1. SampledSounds and LoopedSampledSounds store their
> sample buffers directly when possible
> 2. writes sound buffers directly to a filestream in the
> appropriate endianness
> Menu commands allow one to store audio files in any of these
> formats from a ScorePlayerMorph.
> Note: It is a little quicker to store WAV files on Windows
> and AIFF files on Macs, since that avoids a byte reversal.
> 4618movieReorg-jm -- John Maloney -- 17 December 2001
> Reorganize the movie player class categories.
> 4619TextFontFix-ar -- Andreas Raab -- 17 December 2001
> Fixes an off-by-one problem when changing the font."
> 4620AlignFromHandle-ar -- Andreas Raab -- 17 December 2001
> Fix alignment changes from handle."
> 4621movieReorg2-jm -- John Maloney -- 17 December 2001
> Reorganize the movie player class categories, part 2.
> Changed parts bin description of MPEGMoviePlayerMorph to mention JPEG movies.
> 4622kbdFocus-sw -- Scott Wallace -- 17 December 2001
> Provides variant calls to various menu functions so that the seizing of keyboard focus can be avoided when necessary, such as when asserting text-style changes via a halo menu"
> 4623menuFix-sw -- Scott Wallace -- 18 December 2001
> Repairs a flaw in update 4622 regarding SelectionMenu by removing one method"
> 4624sampleForms-raa -- Bob Arning -- 18 December 2001
> Adds a sample thumbnail for EToySenderMorph so that it does not cause network initialization when rebuilding the objects tool (or flaps??). Image provided is one-half normal size to save space."
> 4625Postscript-tk -- Ted Kaehler -- 12 December 2001
> Postscript printing knew nothing about installing the card-specific morphs of a StackMorph before printing each page.
> Also, extended ^m to handle the case when people write (aa max:bb) with no space after the colon.
> Ensure that changes in a project being loaded do not go into the current changeSet.
> Ensure that 'file into new changeSet' always goes back to the old changeSet, even if there is an error, or the user aborts a Bumper. This holds for updating from the server also.
> When getting a Fancy Number Watcher from the Master Parts Bin, and placing it in the background of a stack, don't get an error. (Let it be OK to be unnamed and have no variable.)
> Name the three kinds of number tiles and their parts appropriately. Recognise those names as 'generic' and not specifically named by the user. By default they will not have card specific values until the user renames them.
> Method for StackMorph to add tab delimited cards from a file.
> Repair a bug in Find... in a StackMorph when it is invoked with Cmd-f.
> Feedback when no match is found, or when then only instance is the one already selected."
> 4626ColoredScrollbars-ar -- Andreas Raab -- 18 December 2001
> A set of colored scrollbars for windows. Handled by the following preference...
> Preferences addPreference: #alternativeScrollbarLook categories: #(windows scrolling) default: true balloonHelp: 'When true, use scrollbars matching the #alternativeWindowLook preference'.
> 4627SliderGotcha-ar -- Andreas Raab -- 18 December 2001
> Fixes a slight gotcha with sliders."
> 4628Stationary2-ar -- Andreas Raab -- 17 December 2001
> As per Kim's request this version is the new default."
> 4629insertCardsEtc-sw -- Scott Wallace -- 18 December 2001
> Adds an item to the stack menu for loading cards from a file.
> Makes the facilities for adding cards from the clipboard and from a file share the same code."
> 4630miscIssues-sw -- Scott Wallace -- 18 December 2001
> A few minor things...
> * Fixes the bug that could generate an error when a vocabulary initialization was issued while in an mvc project (per Tim Rowledge bug report)
> * Stops noting the creation of a new change set in the transcript. (per Tim Rowledge complaint)
> * Removes an annoying 'nothing changed' informer.
> * Reformats Craig's PasteUpMorph.viewBox:, whose formatting had become somehow mangled, as per Mike Rutenberg recommendation.
> * Fixes the bug that appeared when you tried to return from an mvc project to a morphic project that had a menu open in it"
> 4632BlueUIScrollbars-ar -- Andreas Raab -- 19 December 2001
> Make the project finder dialogs adopt the blue pane color for its scrollbars."
> 4633JPEGUpdates-jmv -- Juan Manuel Vuletich -- 21 December 2001
> Note: These changes include a change to the primitive interface.
> You will need to update your JPEGReadWriter2Plugin after filing
> in these changes.
> This changeset combines several sets of updates to JPEGReadWriter2
> and it's plugin. In addition to changes from Juan Manuel Vuletich,
> it includes some fixes from Yoshiki Ohshima, some tweaks to make
> the C compiler happy from John McIntosh, and entry points allowing
> one to specify the quality and progression flag parameters when
> creating a JPEG from Robert Hirschfeld.
> New plugin features from Juan Manuel:
> Avoids generating Color transparent instead of Color black.
> Adds optional dithering when decompressing into a 16bit form.
> Includes the C support code files needed in addition to JPEG Lib.
> Includes several minor fixes and enhancements."
> 4634JPEGTweak-jm -- John Maloney -- 22 December 2001
> Fixes a bug in the plugin that caused a primitive failure when compressing.
> Minor cleanup of JPEGReadWriter2 class>putForm:quality:progressiveJPEG:onFileNamed:."
> 4635ColorFormResize-ar -- Andreas Raab -- 27 December 2001
> Fixes a problem when enlarging sketches based on ColorForms."
> 4636Misc-ar -- Andreas Raab -- 22 December 2001
> Miscellaneous issues. Fix some inconsistencies wrt. corner rounding and #innerBounds. Fix Integer>>atRandom which was perfectly usable with negative values (e.g., -5 atRandom) but got broken due to a change in #nextInt:. Fix an issue with #hasOnlySketchCostumes in 3D scripting."
> 4637StdMethodHeader-ar -- Andreas Raab -- 28 December 2001
> Fixes a problem when filing in eToy-modifications."
> 4638EToyPrepend-ar -- Andreas Raab -- 27 December 2001
> Adds a #prepend: operation for eToys - useful if you need to add a morph to a playfield which ought to be *in front* of all other morphs."
> 4639MenuKbdPref-ar -- Andreas Raab -- 27 December 2001
> Adds a preference for controling keyboard control in menus."
> Preferences addPreference: #menuKeyboardControl categories: #(morphic) default: true balloonHelp:'When true, allow keyboard control and searching in menus'.
> 4640GraphicsTweaks-ar -- Andreas Raab -- 31 December 2001
> Various changes to graphics in Morphic:
> * The CS cleans up most of the simple string drawing and measuring methods. Rather than using DisplayScanner's #quickPrint: variants the font is queried directly which is more obvious, more general, and even faster (drawing strings through canvases is now roughly twice as fast as before; measuring string sizes is about five times faster).
> * The canvas' #text:... methods have been renamed to #drawString:... to make the intent more clear.
> * An issue with overly optimistic clipping in Canvases has been fixed.
> * Methods for image warping based on some transformation have been added to canvas (the #warpImage family of methods).
> * An old issue with HandMorph leading to gribblies has finally been fixed.
> * Morph>>position: has been modified to send #layoutChanged to its owner - when a morph is moved the owner's layout needs to be recomputed.
> 4641StringWidthFix -- Andreas Raab -- 31 December 2001
> Secure #widthOfString: against a nil argument."
> 4642MaskingFix-ar -- Andreas Raab -- 31 December 2001
> Fix a problem with color map caching of fonts."
> 4643DebugLayouts-ar -- Andreas Raab -- 1 January 2002
> The CS makes it simpler to debug layout problems. If an error is encountered during layout computation the fullBounds will be stored with the receiver's bounds before the error is passed on.
> The scheme will work unless the bounds of the morph in question are screwed up (but then you're in deep trouble anyways).
> Note that the new scheme will compute the fullBounds correctly even if the exception is handled outside the exception handler established in #fullBounds."
> 4644StringMorphFont -- Andreas Raab -- 6 January 2002
> Allow for changing the font of StringMorphs and their emphasis. The CS also adds StrikeFont>>fromUser and the ability to invoke Morphic menus modal without having to resort to MVCMenuMorphs etc."
> 4645WorldRedraw-ar -- Andreas Raab -- 6 January 2002
> The change set fixes a non-apparent problem with DamageRecorder's policy for handling invalidated regions. Under various circumstances the damage recorder would hold overlapping and even otherwise completely covered rectangles which led to repeated redraw operations of one and the same morph. The behavior was observed in a case where redrawing the full morph took roughly 100ms whereas the morphic redraw cycle took roughly 250ms - caused exclusively by overlapping damage rectangles.
> This change set fixes the issue in the world's redraw cycle rather than in the damage recorder. The reasoning is that a *lot* of damage may be reported so the recording code needs to be kept fast. Redrawing the world on the other hand is done exactly once per cycle so we may well spent a few cycles to re-order the damage rects to be unique and non-overlapping.
> In addition, the change set optimized the process of corner rounding significantly for damage regions which do not overlap an entire morph. Before these changes, the rounder would perform its operation on all corners - even those where we know beforehand that they are not visible at all.
> 4646showTilesFix-rhi -- Robert Hirschfeld -- 4 January 2002
> There was a typo in CodeHolder>>showTiles: that wasn't detected by the compiler since the instance variable named 'contents' masked the symbol #contents to be used in the change notification."
More information about the Squeak-dev