links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
updates for 3.3
Last updated at 4:42 pm UTC on 16 January 2006
Date: Fri, 11 Jan 2002 17:01:38 -0800
From: Dan Ingalls
Subject: [updates] On to 3.3alpha
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

Folks -

As planned...

[done] 1. Get all appropriate VM changes from Andreas and JohnMc
into the update stream.

[done] 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

I'm part way through the routine pre-release cleanups to the 3.2 image – let me know of any tweaks you would like made.

In a separate message I'm exhorting the harvesters to assemble the recent submissions. Besides bringing us up to date, they can flag any fixes that should also be included in 3.2 before the door closes.

The files just posted include...






4653Squeak3-2NowGamma – Dan Ingalls – 7 December 2001
This is the last update for version 3.2alpha. In its postscript is an executable statement that will set the version forward either to 3.2gamma (in order to receive final fixes for 3.2) or to 3.3alpha (in order to continue receiving interesting but risky enhancements.

Date: Tue, 29 Jan 2002 23:15:32 -0800
From: Dan Ingalls
Subject: [updates] 36 or so including... MODULES!
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

The first dozen updates are mostly cleanups and bug fixes. Then 4665 introduces modules and gives you a chance to stop there if you're faint of heart or have a critical project due next week.

Yes, folks, we're finally dragging Squeak, kicking and screaming, into the 21st century. Having modules in Squeak should finally allow us to embrace more diversity without having to fill the image with redundant and confusing stuff.

Things to do, now that we have modules, include...

1. I will be issuing a bunch of further updates from the harvesters, so this should flush out any lurking problems with incremental updating.

2. We need to start the process of decomposing the release image into a clean kernel and a bunch of reasonable modules.

3. We need to define a module storage format that is reasonably compact, can be loaded reasonably quickly, and includes its own source code browsing mechanism (so that loading and unloading a module does not pollute the .changes file).

4. Move on to the related goal of modular projects so that loading and unloading a project will leave the host image unchanged.

I want to thank Henrik, especially, for jumping in, and everyone else for a lot of useful discussion. Now it's time to start using the tool, fix it if it needs fixing, and start cleaning up the image. Note that Henrik and Stephane are co-chairs of an official SqF project to do exactly this. In anticipation of a fair amount of traffic on this topic, let's use the [modules] banner for further discussion on this topic.

Onward and upward...

- Dan

[PS regarding the registering FileList that is part of these updates, almost the first thing I tried revealed that some of that code (putUpdate:, which I fixed) predates #4178 of 6/26/2001, so it would be good if someone can do a quick pass to see if there are any other gotchas involving recent changes to the FileList]
4654dragNDropHandler-mir – Michael Rueger – 10 January 2002
Extends the handling of external drop events to also look for file extensions.
Let's you register handlers for types or extension without the need to modify PasteUpMorph.
Look at ExternalDropHandler class default handler messages to see how to use this mechanism."

4655include-sw – Scott Wallace – 22 January 2002
As per request via Kim, the wording on the 'append' and 'prepend' tiles is changed to feature the word 'include'"

4656misc-sw – Scott Wallace – 22 January 2002
Removes gratuitous occurrences of '..' from four methods.: 
Include a stay-up item in the shifted selector-list menu of a message list.
4000 methods!) but at least it now works again.: 
Stop putting up that annoying 'no change made' msg when the user backs out of a rename in a change sorter"

4657someRemovals-sw – Scott Wallace – 22 January 2002
Removes fifty disused methods."

4658DataStreamFix-ar – Andreas Raab – 25 January 2002
Fixes a problem with DataStream reading in word classes whose size differs from their basicSize."

4659SndPlayerFeeback-ar – Andreas Raab – 25 January 2002
Allow feedback from the KlattSynthesizer to use by other applications (e.g., spectrum analyzers etc)."

4660BBAlphaFix-ar – Andreas Raab – 25 January 2002
Fixes a problem in BitBlt when using constant blending mode with 32bpp forms."

4661chatInitFix-raa – Bob Arning – 28 January 2002
provide another image for the parts bin to avoid getting the local ip address before the network is initialized (can mess things up)"


4663nilOwnerFix-raa – Bob Arning – 29 January 2002
  1. colorForInsets seems to be called earlier these days. deal with it."

4664transcriptFromFlap-sw – Scott Wallace – 29 January 2002
Fixes the bug that a transcript obtained from a Tools flap when not in the top project would not behave properly. Replaces the errant Tools Flap with one that does not have the bug, provided the user has the preference governing the reinitialization of flaps set to true. Also fixed is the less-well-known bug that an Objects Tool that was created in one project and then transferred to another via a flap would also deliver up a flawed Transcript. (Preexisting instances of the Object Tool may however retain the flaw.)"

4665TheModulesAreComing – Dan Ingalls – 29 January 2002
Warn the faint of heart about the Module conversion.

4666Modules-1-hg – Henrik Gedenryd – 12 September 2001
This is the start for a Module system, based on Dan Ingalls' Environments code. The core is in the category System-Modules, it is rather small.
Note that this is for now a 'weak' module scheme that allows the standard scheme using #Smalltalk to continue working like before.
After filing in all change sets, in the Explorer that opens on the module hierarchy, try:
Module convertSystemOrganizationToModules.
(Note that this is installs 'weak modules' and is irreversible.) Then
FromVersion0p0000to0001 run
This applies a first set of refactorings of the system, based on a reusable framework for applying (and contributing!) refactorings.
You can also try
Module root declareExternalRefs
Now look at the externalModuleRefs of various modules (use the opened Explorer).
Then try the messages in the ModuleExplorer on different modules. Use exploreIt or printIt to get the results that are returned from them.




4670ModuleReorgTools-hg – Henrik Gedenryd – 3 September 2001
Code and tools for analyzing and reorganizing the system under the modules scheme to remove dependencies. Very much a work in progress."




4674preserveAssociations-hg – Henrik Gedenryd – 4 December 2001
Some tweaks to preserve associations when moving across dictionaries, when renaming, and so on. Under the hood much of the system depends on preserving the individual Association objects that are used for global (now module) variables."

4675Modules-Compat-hg – Henrik Gedenryd – 6 September 2001
Make system compatible with modules, including weak/strong modules.
Preamble has a dirty hack to change instvar name without recompiling 1000+ classes"
Class setInstVarNames: (Class instVarNames copyReplaceAll: #('environment') with: #('module')).

4676Modules-2-hg – Henrik Gedenryd – 6 September 2001
Install sensitive methods that rely on others already being in place."


4678ModulesPostOopsla-hg – Henrik Gedenryd – 31 October 2001
This change set contains various changes that have been made since the OOPSLA version at Oct 15. Note that this file was hand-edited."

4679betterModuleScoping1-hg – Henrik Gedenryd – 28 November 2001

4680betterModuleScoping2-hg – Henrik Gedenryd – 28 November 2001
Make the sensitive switch to the new scoping methods."




4684RegFileList-hgglsd – Henrik Gedenryd, Gerald Leeb and Stephane Ducasse – 10 November 2001
Version 3.0 - 16 Nov 2001
HookForRemoveFromSystem.cs version 1.
SUnit any version
This changeset introduces an important architectural change in the design of the FileList. The FileList now proposes a registration mechanism to which any tools the filelist use MUST register. This way it is possible to load dynamically a new tool or unload and to have the FileList automatically updated. This change supports a decomposition of Squeak and removes problem with dead reference to classes after a major shrink.
Tools should implement the method fileReaderServicesForSuffix: suffix
(look for sender in the image) and register to the FileList calling the class method registerFileReader: aProvider when they load in. There is a testSuite called FileListTest that presents some example.
A tool register by providing a SimpleEntryService. It is composed by a class, a menu label and a method selector having one argument. See example below. The convention right now is that the argument is the path of the selected file when one file is selected and the fileList itself when no file is selected. It seems an arbitrary choice but this is the one that avoid to declare method with explicit reference to file list in reader. Hence decouple the most the reader and the file list.
Note that this regsitration mechanism relies on the fact that the file list is on the image. In the future we may introduce another object that we know will be always in the image.
To do list:
look for
- self flag: #shouldBeChangedToReflectThatToolsCanBeRemoved.
- self flag: #ViolateNonReferenceToOtherClasses.

Stef 10 November 2001.
>from the class side but there was an instance methods returned
it directly. This would have returned nil instead of an empty collection.
for that purpose I introduced a hook method in the Class>>removeFromSystem: that per
default does nothing. But using this hook instead of specializing removeFromSystem: does not let the responsibility to the class developer to call super removeFromSystem:
To do:
Check all the code and add some flag: method to indicate future work to do.
check for example flag: #ViolateNonReferenceToOtherClasses and
The method FileList>>itemsForFileEnding: retrieves the menu entries via ReaderServices.
Each class can register itself as ReaderService with:
FileList registerFileReader: self.
The FileList collects the service entries for a file suffix by the message
  1. fileReaderServicesForSuffix: of each ReaderService.
FlashMorphReader>>fileReaderServicesForSuffix: suffix
^(suffix = 'swf') | (suffix = '')
ifTrue: [
provider: self
label: 'open as Flash'
selector: #openAsFlash:}]
ifFalse: [#()]

4685topologicalSort-hg – Henrik Gedenryd – 17 December 2001
This adds topological sorting capabilities to SortedCollection, with no claims to great efficiency (and simplifies some code in the same class). Best used with
aCollection topologicallySortedUsing: sortBlock
A topological sort arranges items according to a partial order, i.e., when some pairs of items do not have any comparison. A new Boolean methods, ==>(implicature, a.k.a. if...then...) is helpful for defining such relationships.
aString topologicallySortedUsing: [:a :b | (a isUppercase == b isUppercase) == [a = b]]
This only specifies an alphabetical order between letters of the same case, try e.g.
('ThisIsMyString' topologicallySortedUsing: [:a :b | a isUppercase == b isUppercase == [a = b]]) as: String
Note that an ordinary sort will do this incorrectly:
('ThisIsMyString' asSortedCollection: [:a :b | a isUppercase == b isUppercase == [a = b]]) as: String "

4686someModuleTests-hg – Henrik Gedenryd – 2 January 2002
The ModuleTests and ModuleStorageTests should pass, but especially the latter tests are incomplete as yet.
The DeltaModuleTests are obviously far from done.
The PoolTests are obsolete and should really be removed.
The ModuleSystemIntegrityTests are not unit tests as such. Moreover the stock image has non-readonly bindings for pool vars and some globals, causing one integrity test to fail."

4687deltaImprovements-hg – Henrik Gedenryd – 27 January 2002
Tests for DeltaModules and storage, fixes that make them pass, and more."
"some classes weren't exported due to an intermediate state"
Module root deepSubmodulesDo: [:m |
m definedNames keysAndValuesDo: [:k :v |
(m exportedNames at: k ifAbsent: [nil]) ifNil: [
(m ~~ Module smalltalk and: [v isKindOf: Class]) ifTrue: [m exportName: k]]]].



Date: Wed, 30 Jan 2002 15:56:23 -0800
From: Dan Ingalls Dan@SqueakLand.org>
Subject: [updates] On a roll...
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

Folks -

I have just posted another 37 updates, being all the ones I got from the harvesters (unless I forgot something), plus Ned's from today. The good news is that I only had to tweak one file for module compliance (a class def with an obsolete category string).

I'm about to leave for a few days, and won't be able to do much more than scan messages. I'm asking Scott Wallace in the meantime to push through any important bug fixes. He also said he would be willing to oversee the process of culling the 3.3 updates that should go into 3.2 before it goes final, so you can expect a message about that.

Thanks to the many contributors represented here, to the harvesters who helped get them together, and to y'all for flying the plane after these latest improvements ;-).

- Dan

4690includesIdentity-sw – Scott Wallace – 30 January 2002
Fixes up one missed reference to References in the module work."

4691chatGlitchFix-raa – Bob Arning – 30 January 2002
Minor fixup so that Forms can be in the anchoredMorph in TextAnchors as they once were"

4692ParagraphEdExploreIt – Robert Hirschfeld – 6 December 2001
Adds an exploreIt item to the text editor menu. The command key for that already worked..."

4693FileNameFrmItemFix-rh – Robert Hirschfeld – 14 November 2001
Fixes a problem with FileList>>fileNameFromFormattedItem: that does not work when files in a file list are sorted by name and the file to be opened contains at least one $( character in its name. To reproduce the problem, insert a $( character in a file name and then try to open it with a file browser/list..."

4694TextLinkClickErr-rr-dew – Robert Rosenbaum and Doug Way – 22 November 2001
BugFixing Party @ Camp Smalltalk OOPSLA 2001.
Fixes a 'Object is not in the collection' error when clicking a few pixels to the left of a text link, for example in the Welcome to... window. The error also happens if you open a new workspace, type in one word and create a new link from it (via alt-6), and then click anywhere in the workspace.
This fix doesn't address the problem that the link cursor sometimes shows up when it shouldn't. (I simplified Robert's original fix version a bit. -dew)"

4695readDocumentPref-ls – Lex Spoon – 10 November 2001
Honor the readDocumentAtStartup preference. "

4696mailOutUserName-ls – Lex Spoon – 21 October 2001
Don't put quotes and such around the email address supplied by Celeste – that can fail if the Celeste address already contains some delimiters."

4697celesteFixes-ls – Lex Spoon – 11 November 2001
Two quick fixes for Celeste:
- use Bert Freudenberg's quoted-printable decoder instead of Lex's
- make all MailMessage's printable with printString"

4698fixScrollbarOnRight-sm – Simon Michael – 30 November 2001
Outboard scrollbars on the right have not been usable in browsers, because they appeared behind the neighboring pane to the right and disappeared when you moused over them. This change attempts to remedy that by bringing the current pane (and it's owner, for the class pane in browsers) to the front when showing a scroll bar."

4699StarSqueakFixes-hh – Helge Horch – 26 August 2001
Fixes a couple of StarSqueakPatch neighbor methods to cascade #x: and #y: setters instead of sending the (unimplemented) #x:y:.
Also fix missing return in StarSqueakTurtle>patchBrightness."

4700selectionRects-ls – Lex Spoon – 3 November 2001
Undo an optimization that doesn't work when TextIndent's are being used: the left margin can change from line to line within a paragraph. For example, open Scamper and go to a page with lists on it, and then try to select over the list – it will act funny"

4701TTContourConst-hmm – Hans-Martin Mosner – 18 December 2001
TTF contours may legally consist of only off-curve points (which define implicit on-curve points between them). This change set modifies one method to support this."

4702ScamperContentType-ff – Felix Franz – 15 November 2001
fixes Scamper to ignore additional characters after a semicolon in the content type. Example: 'text/html; charset=us-ascii' is now treated as 'text/html'.
w3.org uses the above content-type. "

4703TransformMorphRotFix – Joshua Gargus – 1 November 2001
MatrixTransformMorphs deal with center of rotation differently than other morphs, but forgot to take this into account in #setRotationCenterFrom:. This is now fixed."

4704DigitLogicFix-hmm – Hans-Martin Mosner hmm@heeg.de> – 7 January 2002
Fixes a problem with digit logic involving large integers with different sign.
The class method testing various digit logic cases has been refactored into a SUnit test.
To test, print the result of:
IntegerDigitLogicTestCase suite run

4705DoitButton – David N. Smith harvested by sd – 14 January 2002
Add DoItSimpleButton that is like a SimpleButtonMorph except that evaluate a string when pressed"

4706fontForBalloon – stephane Ducasse – 5 December 2001
Allows to specify a font for the balloon based on the morph. Per default the default font is the one defined on BalloonMorph. Look at the tests TestBalloonFont "

4707Interval-extent – steven-pope harvested by stephane ducasse – 23 December 2001
Add the method extent that returns the range of an interval"

4708NoHardCodedBrowserClass – stephane ducasse – 5 January 2002
Ready for 4599
This changeset changes all the Browser hardcoded reference in the Browser class methods into self and for the instance methods into self class . This way subclasses can work!!!"

4709setToEndFix – Leandro Caniglia – 4 January 2002
Fixes the following bug:
stream _ WriteStream with: ''.
stream nextPutAll: 'hello'.
stream position. -> 5
stream setToEnd.
stream position -> 0 wrong!!
Simple TestCase included.

4710setVersionFIX-jet – John Tobler – 26 December 2001
Fixes a minor 'Date not indexable' bug in SystemVersion setVersion."

4711SUnitCSAllTestSelsFix – Robert Hirschfeld – 5 January 2002
Narrows down the collection of SUnit test selectors to those that match 'test' AND that take zero arguments. (Test included...)"

4712WhatIsUnimplemented – Joshua Gargus – 1 November 2001
The #notYetImplemented popup now tells you what is not implemented."

4713TTSampleStrRotFix-mdr – Mike Rutenberg – 19 December 2001
Change MatrixTransformMorph to always initialize the variable transform. This fix prevents a walkback when you rotate TTSampleStringMorph.

4714BraceExplainer-rao – Richard A. O'Keefe – 15 November 2001
Tell ParagraphEditor how to explain {}"

4715ShrinkWrapObjTool-nk – Ned Konz – 7 December 2001
This makes the Objects Tool adapt its vertical size to its contents."

4716ircEmote-ls – Lex Spoon – 4 July 2001
Make emote's look proper"

4717CharBlockScannerFix-slg – Steve Gilbert – 10 January 2002
This change fixes a problem that I discovered running Scamper against System 3.2alpha #4646.
Grab a virgin instance of Scamper (pointing to browser:about).
Move the mouse to the area with the 4 bulleted and highlighted items.
A walkback occurs due to the lack of setting of the leftMargin attribute of CharacterBlockScanner.
This change moves the self setStopConditions below the the leftMargin setting code again to correct the problem.

4718ProcessBrowser-menuFix – Leandro Caniglia – 7 January 2002
Fixes a minor problem encountered in MVC while trying to pop the ProcessBrowser menu up.

4719AssureExistPath-cmm – Chris Muller – 21 January 2002
A one-method fix to FileDirectory>>assureExistanceOfPath:, which did not previously account for platform-specific differences in case-sensitivity, causing it to take a path of logic that quickly leads to a primitive failure on Win32 machine (attempting to create a directory that already exists). (Note: the spelling of these methods should be corrected to 'existence' after 3.2 is released. -dew)"

4720DeepCopy-RB – Ross Boylan – 27 December 2001
Get the semantics right for a model's dependents when doing a veryDeepCopy."

4721FileList2MDialogs-LC – Leandro Caniglia – 6 January 2002
Before this change set if the user deleted a modal dialog in FileList2, then the answer wasn't nil but the selected file or folder. Now the answer is not nil only if the user accepts the dialog. (typo in test class name fixed -dew)
TestCases included.

4722fixScrollbarOnRight-sm – Simon Michael – 30 November 2001
Outboard scrollbars on the right have not been usable in browsers, because they appeared behind the neighboring pane to the right and disappeared when you moused over them. This change attempts to remedy that by bringing the current pane (and it's owner, for the class pane in browsers) to the front when showing a scroll bar. (Additional fix by Doug Way for inboard hiddenScrollBars.)"

4723initMorphicOffset-ls – Lex Spoon – 19 January 2002
Initialize the morphicOffset variable, so that the comment of HtmlFormatter class>>example1 now works."

4724StringTruncate-fcs – Frank Sergeant – 20 January 2002
SequenceableCollection>>forceTo:paddingStartWith: blows up (at least in version 3.2a-4599) when shortening the string
'catfish' forceTo: 5 paddingStartWith: $This change set fixes it."

4725ModBrowseProtocolFix-nk – Ned Konz – 30 January 2002
This fixes the 'browse protocol' on class-side definitions in change set browsers. This bug was introduced in the Modules code, so this change set should only be applied to 4689 or later images.
It probably fixes some other things."

4726ZipsInFileListFix-nk – Ned Konz – 30 January 2002
The FileList changes in 4684RegFileList-hgglsd included registration of ZipArchive. Unfortunately, it was registered for .gz and .gzip files, even though ZipArchive has nothing to do with either file format.
This change set fixes that, and moves the responsibility for viewing zips (and making and viewing new ones) to ArchiveViewer, where it belongs.
There still is an issue in the FileList registration having to do with registering a tool for any file type (like 'add to zip'). In my opinion, there should be a callback for type ''.

Date: Wed, 30 Jan 2002 22:16:56 -0800
From: Dan Ingalls
Subject: [updates] 4 more; mostly whiplash
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

Folks -

I've just posted 4 more updates, but they are mostly repairs for my having missed some important input from the harvesters.

- Dan
4727initLeftMargin-ls – Lex Spoon – 14 January 2002
Make sure leftMargin gets initialized in CharacterScanner; this bug was brought out recently when Scamper is showing a page with indentation, and the mouse is waved over an indented line."

4728includesIdentity-sw – Scott Wallace – 30 January 2002
Fixes up one missed reference to References in the module work."

4729existenceOfPath-cmm – Chris Muller, Scott Wallace – 25 January 2002
The crux of this update is Chris's fix to FileDirectory>>assureExistanceOfPath:, which did not previously account for platform-specific differences in case-sensitivity, causing it to take a path of logic that quickly leads to a primitive failure on Win32 machine (attempting to create a directory that already exists).
The 'existance' misspelling is corrected to 'existence' and the other method name with the same misspelling is also fixed, as of course are all senders."

4730FixUpdateGlitches-di – Dan Ingalls – 30 January 2002
In merging the various submissions from harvesters, I omitted several useful tweaks and reviewed decisions. This update attempts to set them straight, with apologies to Scott Wallace for my oversights.
In particular,
Restored the solution of 4728includesIdentity
4272InitLeftMargin supplants CharacterBlockScannerFix (simpler, more general)
ShrinkWrapObjectsTool withdrawn until we can find a way to avoid jerkiness.
Retracted 4705 and 4707.
Improved wording of Brace explanation in 4714.

Date: Fri, 01 Feb 2002 12:22:29 -0800
From: Scott Wallace
Subject: [updates] five for 3.3a
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

The following five updates have now been posted to the public servers for 3.3a.

– Scott

4731GraphicsTwkFix-tk – Ted Kaehler – 31 January 2002
Fix two bugs in Andreas' 4640GraphicsTweaks-ar.
SyntaxUpdatingStringMorph>>drawOn: computes a font (f), and then does
not use it in the loop (fails when font is nil).
If Morph>>insetColor asks owner for colorForInsets, which asks its
owner for a color. One too many layers of owner are asked.
And a fix of mine.

4732HandRedrawFix – Andreas Raab – 1 February 2002
A fix for incremental updates in HandMorph.

4733firstModuleFixes-hg – Henrik Gedenryd – 31 January 2002
Some quick fixes to make module unloading work better.
Moving some classes that were sent to the wrong places due to bad
category strings.

4734nameForRef-sw – Scott Wallace – 1 February 2002
Fixes a bug recently introduced into Object.uniqueNameForReference;
thanks to Bob Arning for zeroing in on this.

4735prefDirRefix-mir – Michael Rueger – 1 February 2002
Change set 4668ServerCode-fixes-hg reinstalled an old version which
forced the creation of a prefs folder on startup. This reverts to the
correct version again.

Date: Sun, 03 Feb 2002 01:38:25 -0800
From: Scott Wallace
Subject: [UPDATES] three more for 3.3a
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

A further trickle...

4736 openProjFix - Bob Arning - 2 February 2002
Some file services would rather have the directory and local file
name. This change set restores that option.

4737 FailingTestCases-dew - Doug Way - 3 February 2002
Disables the two SUnit tests (#testFailureDebugUI and #testDebugUI)
which simply test to make sure the SUnit UI handles failure. By
default, doing a RUN ALL tests in the UI should have all tests pass,
so it's silly to have these two purposely fail. These tests can be
re-enabled by uncommenting out the appropriate code.
Also removes two recently added tests in FileList2ModalDialogsTest
which never worked.
After filing this in, doing 'TestRunner runTests' should result in
all tests passing, at least in 3.2.

4738classVarRefs-sw - Scott Wallace - 3 February 2002
Reverts a method that was blocking access to class-var-refs queries,
as per Henrik's instructions.

– Scott

Date: Tue, 5 Feb 2002 09:03:05 -0800
From: Dan Ingalls
Subject: [updates] 6 for 3.3a
To: squeak-dev@lists.squeakfoundation.org
reply-to: squeak-dev@lists.squeakfoundation.org

Folks -

We have just posted 6 more updates for 3.3a to the servers. The first 5 are mostly fixes. The last is a major release of XML and YAX, with SAX and DOM, which is a SPW any way you slice it.

- Dan

PS: Thanks to Scott Wallace for taking over updates over the weekend (including these). He's really better at it than I.
4739UUIDFixes-ar – Andreas Raab – 3 February 2002
Fixes a horrible problem in UUIDPlugin (which could easily break your system if you called the primitive on, e.g., UUID basicNew initialize) and changes the header file declaration to use sqUUID rather than a Mac-specific definition."

4740JPEGRW2Fixes-ar – Andreas Raab – 3 February 2002
Change includes to use 'libjpeg/jinclude.h' etc. so that libjpeg can reside in its own directory (just ln-s it to the location of the plugin). Also includes the extra files in the translation process."

4741TranslateUpdate-ar – Andreas Raab – 3 February 2002
Update plugins generated."

4742textEditMenus-sw – Scott Wallace – 3 February 2002
Text-editing menus in morphic, whether invoked via yellow-button, via clicking on a halo handle, or by clicking on the menu icon the scroll bar, now do not allow keyboard-menu-control, so that the text selection to which the menu items apply will remain visible as the menu is being used."

4743appendRevisited-sw – Scott Wallace – 3 February 2002
Some adjustments to the choices of which 'append' variants are available in etoy viewers in which situations. All users will see 'include', which is generic; the other two choices, 'append' and 'prepend', are shown as well when not in eToyFriendly mode. The balloon help for these commands is improved."

4744YAXO – Duane Maxwell, Andres Valloud, Michael Rueger – 25 January 2002
YAX is yet another XML parser.
This version is an effort to further integrate the original yax version with the Exobox implementation. The original yax version already was based on some ideas in the Comanche tokenizer and the Exobox parser.
The YAX homepage is at http://www.squeaklet.com/Yax/index.html.
This change set includes a XMLParser with SAX and DOM support and a XMLWriter.
The SAXDriver/Handler implements the revised SAX2 API.
The parser is what somebody dubbed semi-verifying. It handles internal entity declaration and expands them but does no verification against any DTD declarations.
What's missing/buggy:
  • inline expansion of external references/files
  • 16 bit character support
  • XMLWriter character escapes
The parser passes a lot of the standalone SUnit tests, but also fails (too) many for (none) well formedness.
There are several ways to use this implementation to parse XML files:
  • use the DOM parser. It returns a hierarchical data structure containing the XML elements.
  • subclass SAXHandler (XMLDOMParser does that too) and override the callbacks. This avoids the overhead associated with building a complete DOM structure in memory.
  • subclass XMLTokenizer and overwrite the handle callbacks. Not really recommended although for compatibilty reasons the Exobox XMLParser does this.
You can do incremental parsing by repeatedly calling nextEntity on the parser.
XMLDOMParser addressBookXMLWithDTD
parses the same example into a DOM structure using the SAXDriver and the DOMParser being an implementation of a SAXHandler.
Parsing from a file:
XMLDOMParser parseDocumentFromFileNamed: 'examples\dream.xml'.
Parsing from a stream:
XMLDOMParser parseDocumentFrom: XMLTokenizer addressBookXMLWithDTD readStream.