Hm, I posted this Sunday and the list seems to be back up now, but I don't see it, so here it is again...
-------- Original Message -------- Subject: [UPDATES] 57 for Squeak3.7alpha Date: Sun, 29 Feb 2004 20:07:21 -0500 From: dway@mailcan.com To: squeak-dev@lists.squeakfoundation.org, dway@mailcan.com
The latest batch of updates... whew. (This one seemed to take longer than usual for various reasons, probably 5-6 hours.) Lots of goodies here, including the SM2 update, PNG writing, snapshot cleanup, Genie removal, etc.
We're still shooting for moving to beta this Friday, March 5th. I'll send out a separate email making more of an announcement about that.
- Doug
------------------------------
5708SM1Removal-gk -- Göran Krampe -- 12 February 2004 This update removes old SM1 from the image and stores the installedPackagesDictionary in a global for subsequent retrieval in the next update that installs SM2." "Begin by toasting the old SMLoader if present in image. We also close any open loaders." (Smalltalk hasClassNamed: #SMLoader) ifTrue: [ (Smalltalk at: #SMLoader) allInstances do: [:e | e myDependents: #(). e delete]. SystemOrganization removeSystemCategory: 'SM-Loader']. "Remember installed packages if we have them and toast old SM." (Smalltalk hasClassNamed: #SMSqueakMap) ifTrue: [ Smalltalk at: #SM1InstalledPackagesDictionary put: (Smalltalk at: #SMSqueakMap) default installedPackagesDictionary. "This is a brutal hack, need to figure out why it is needed..." (Smalltalk at: #SMSqueakMap) setName: #SMSqueakMap. SystemOrganization removeSystemCategory: 'SM-domain']
5709SM2Install-gk -- Göran Krampe -- 12 February 2004 This changeset installs SM2 into the image if it has not been installed already, by contacting the SM2 server at map1.squeakfoundation.org and asking it for the URLs to the packages to download and install. It first installs VersionNumber and MCInstaller if needed." | repDir server stream installedMC installedVN map | (Smalltalk hasClassNamed: #SMPackage) ifFalse: [ installedVN _ false. "Install first versions of VersionNumber for SM2 if it is missing, we can't rely on using old SM because it is now removed." (Smalltalk hasClassNamed: #VersionNumber) ifFalse: [ ChangeSorter newChangesFromStream: ((('http://map1.squeakfoundation.org/sm/package/35e02e3a-48e2-4843-94ee- e86d651aeafe/autoversion/1/downloadurl') asUrl retrieveContents content) asUrl retrieveContents content unzipped readStream) named: (ChangeSet uniqueNameLike: 'VersionNumber'). installedVN _ true]. "Load the new SM base, using available Monticello or MCInstaller, and installing MCInstaller otherwise" stream _ HTTPClient httpGet: ('http://map1.squeakfoundation.org/sm/package/c4c13ea3-e376-42c7-8d9e-d c23b09f9f29/autoversion/6/downloadurl' asUrl retrieveContents content). installedMC _ false. (Smalltalk hasClassNamed: #MCMczReader) ifTrue: [(MCMczReader versionFromStream: stream) load "Using Monticello"] ifFalse: [ "No Monticello installed, will use MCInstaller and install it first if needed" (Smalltalk hasClassNamed: #MczInstaller) ifFalse: [ ChangeSorter newChangesFromStream: ((('http://map1.squeakfoundation.org/sm/package/af9d090d-2896-4a4e-82d0- c61cf2fdf40e/autoversion/2/downloadurl') asUrl retrieveContents content) asUrl retrieveContents content unzipped readStream) named: (ChangeSet uniqueNameLike: 'MCInstaller'). installedMC _ true]. MczInstaller installStream: stream]. "This clears the default map, but keeps info on installed packages if there where any" (Smalltalk hasClassNamed: #SMPackage) ifTrue: [ map _ (Smalltalk at: #SMSqueakMap) default. map installedPackagesDictionary: (Smalltalk at: #SM1InstalledPackagesDictionary ifAbsent: [nil]). Smalltalk removeKey: #SM1InstalledPackagesDictionary ifAbsent: [nil]. "Remove old SM Package Loader, if present" map clearInstalledPackageWithId: '047a3b12-7e52-4c5d-be8b-d06635fc4f1c'. "Remove old SqueakMap Base, if present" map clearInstalledPackageWithId: 'fffa45d3-2459-4b7d-b594-9cfae17c864d'. "Remove old SqueakMap loadscript, if present" map clearInstalledPackageWithId: '4f0b9db6-8add-43aa-8d6b-53e6a0ea8442'. "Add that we now have versions of SqueakMap2 base, VersionNumber and MCInstaller installed" map noteInstalledPackageWithId: 'c4c13ea3-e376-42c7-8d9e-dc23b09f9f29' autoVersion: '6'. installedVN ifTrue: [map noteInstalledPackageWithId: '35e02e3a-48e2-4843-94ee-e86d651aeafe' autoVersion: '1']. installedMC ifTrue: [map noteInstalledPackageWithId: 'af9d090d-2896-4a4e-82d0-c61cf2fdf40e' autoVersion: '2']. "Make sure map is updated" map loadUpdates] ifFalse: [self error: 'Installation of "SqueakMap base" failed']. "Install new SMLoader using SM2 itself." map installPackageWithId: '941c0108-4039-4071-9863-a8d7d2b3d4a3' autoVersion: '2']
5710snapshotSavingCleanups -- tim@sumeru.stanford.edu -- 15 February 2004 Some important cleanups in the saving of snapshots and initialising of FileDirectory. Makes it possible to save the snapshots in a different directory than the original snapshot file came from (ie you can start up /var/squeak/squeak.image and save ~joesixpack/joesworking.image). This version built for post-update 5707, compensating for the effects of recent KCP changes in the area of image saving and some changes in the 5707 updates"
5711AttrStreamFix-gk -- Göran Krampe -- 12 February 2004 After having looked at Boris Gaertner's fix for Scamper I agree with the override AttributeTextStream class>>new. No need to make any other changes to that class at this time. Just added a comment etc."
5712pathPartsFixes-tpr -- tim@sumeru.stanford.edu -- 9 February 2004 Some mild improvements to users of FileDirectory>pathParts. Revised per Frank Shearer's discovery of stupidity in respect to ServerDirectory>pathParts"
5713FileOutCategory-jf -- Julian Fitzell -- 7 February 2004 #fileOutCategory:asHtml: would try to create files without first validating the file names. This was a problem if you had a system category with a / in it for example. Fix this by adding a call to #asFileName on the file name string."
5714UTF8String-JO -- Jonas Öhrn -- 16 September 2002 Two small methods added to String for conversion between ISO-8859-1 and UTF-8.
5715CopyObjectMethod-tpr -- tim@sumeru.stanford.edu -- 14 February 2004 Revised Object>copyFrom: to use numbered optional prim 168 to copy objects"
5716GifReadWriterDecode-klc -- Ken Causey -- 26 January 2004 It seems that someone started some changes to handle comment blocks in GIF files but never finshed it. The code was completely unused and buggy (the block terminator was not being processed) and there was no way to tell what the goal of it was, so I removed it. This fixes a problem with reading GIF files with comments."
5717TextPropertiesMorph-fc -- Frank Caggiano -- 12 February 2004 Ned Konz added revert for extent as well. TextMorph 'text color...' interface 'cancel' button doesn't work Not just a problem with the cancel button. The TextMorph created inside the TextPropertiesMorph (activeTextMorph) and the TextMorph being edited (myTarget) were sharing the same attributes. Certain changes (color, text style) to the activeTextMorph were immeditely set in myTagret. This could be seen by forcing myTagret to redraw itself even while the textPropertiesMorph was still up (for example clicking the wrap button or covering and uncovering the target text morph). There still might be an issue with the wrap button. I'm not really sure how it is suppose to work."
5718MessageListDragFix-nk -- Ned Konz -- 15 February 2004 Fixes message dragging from MessageLists.
5719GIFReadingFixes-nk -- Ned Konz -- 15 February 2004 A few small fixes and enhancements for the GIF readers. * Add an 'offset' instVar to get rid of Undeclared refs. * Open either an ImageMorph or AnimatedImageMorph as appropriate from a FileList. * Allow opening GIFs from remote servers in the FileList. "
5720UrlTestFixes-gk -- Göran Krampe -- 12 February 2004 A bunch of extra tests for FileUrl given the FileUrlRewrite."
5721indentClipText-bf -- Bert Freudenberg -- 9 February 2004 When copying the text of an indented list via the red halo menu, the individual items where not indented, making the result illegible. Fixed."
5722FixObsoleteChronlgy-nk -- Ned Konz -- 15 February 2004 The Chronology changes weren't done correctly, so there are a number of bindings that refer to the old ZTime, etc. classes. This CS fixes those. | baddies | baddies _ ClassBuilder reallyObsoleteClasses asArray select: [ :ea | ea name first = $Z ]. baddies do: [ :bad | | newName | newName _ bad name allButFirst asSymbol. Smalltalk at: newName ifPresent: [ :newClass | ClassBuilder new recompile: false from: bad to: newClass mutate: false ] ]. Behavior flushObsoleteSubclasses.
5723ChangedWith-nk -- Ned Konz -- 17 February 2004 This adds #changed:with: and #update:with: to Object, as discussed on 2 and 3 December 2003. This is also VisualWorks compatible, for those packages that are ported from VW.
5724tests-reorganize-md -- Marcus Denker -- 16 February 2004 The unit-test from the Tests package have been added to the image. This changeset now renames all Tests-* categories to be *-Tests. Rational: When breaking stuff out (e.g. make a MC package Network-Url) then we sure want the tests be part of that, not continue to be part of the image. Some Tests* categories remain, e.g. Tests-KCP and Tests-Bugz.
5725timeSecondsPrintOn-brp -- Brent Pinkney -- 16 February 2004 Time printString should only show second precision."
5726SCN-compileInobtrsv-avi -- Avi Bryant -- 17 February 2004 Just a simple fix that adds an overlooked send to #uniqueInstance when referencing SystemChangeNotification in ClassDescription>>compileInobtrusively:classified:."
5727SmaCC-RuntimeSM-md -- Marcus Denker -- 16 February 2004 upate the SmaCC Runtime from SM"
5728fixPreferencesCat-md -- Marcus Denker -- 15 February 2004 Three methods in Preferences were categorized to be *Refactory. This changeset moves them to their correct catefory"
5729TestInteger-bg -- Boris Gaertner -- 2 February 2004 Peter Wiliam Lount found a problem when he constructed integers from four bytes and Bert Freudenberg published a fix. This test case checks the correct construction of value around SmallInteger maxVal."
5730DecorateDebuggerBtns-nk -- Ned Konz -- 18 February 2004 Makes the debugger's inheritance button colored like in the Browsers.
5731acceptCodeFix-bg -- Boris Gaertner -- 3 February 2004 KLC - I removed the commented out send in Browser>>selectOriginalCategoryForCurrentMethod otherwise identical. this change set fixes a bug that was reported on the list at Feb 03, 2004 by arj . A day later arj reported two additional ways to demonstrate undesired behavior of the brower. "
5732AccunyEdit-nk -- Ned Konz -- 19 February 2004 Edits the smallest two Accuny fonts to distinguish between the lower-case L and the number 1 glyphs. (commented out the demonstration display of the before & after glyphs. -dew) "((TextMorph new contentsAsIs: ((Text fromString: 'l1l1l1l1l1 Before') addAttribute: (TextFontReference toFont: (TextStyle named: 'Accuny') defaultFont); addAttribute: TextFontChange font1 from: 1 to: 2; addAttribute: TextFontChange font2 from: 3 to: 4; addAttribute: TextFontChange font3 from: 5 to: 6; addAttribute: TextFontChange font4 from: 7 to: 8; addAttribute: (TextFontChange fontNumber: 5) from: 9 to: 10; yourself)) imageForm magnifyBy: 4) asMorph position: ActiveHand position; openInWorld."
5733FileUrlRewrite-gk -- Göran Krampe -- 12 February 2004 Note: This changeset may have side effects, we simply need to test drive it (Filelist with FTP etc). A problem that cropped up with Scamper was a fix Markus made in update 5414. Markus made FileUrl>>pathForFile and #pathForDirectory to prepend the pathName delimiter if the FileUrl is absolute. The refinement is to avoid prepending if the file url has a path that starts with a DOS style drive letter, since such paths are absolute per definition. This triggered a BIG make-over of FileUrl, where it was made much more proper by using 'file://' as the prefix instead of 'file:'. According to the RFCs a file URL can not have relative file paths, the isAbsolute etc still works but the result sending toText (which I didn't bother to change even though it has a strange name) will be proper and does not reflect isAbsolute. I have taken care of adding 'smarts' on how FileUrl creates itself given a non valid String representation - it tries to be quite helpful. This is partly based on what Mozilla does in this regard. Now it is IMHO much improved, seems to work, has a bunch of new tests (posted separately), and Scamper works fine from filelist on DOS drives.
5734DebuggerHighlightFix-nk -- Ned Konz -- 20 February 2004 This fixes the misalignment between the displayed text in the Debugger and the highlighted PC range, when you have the browseWithPrettyPrint Preference enabled.
5735FixServerDirectories-nk -- Ned Konz -- 12 December 2003 Change Set 5605CleanupUpdateServers-dew did not clean up the ServerDirectory servers dictionary properly. This quickie will remove the bad servers. | badOnes | badOnes _ Dictionary new. ServerDirectory servers keysAndValuesDo: [ :k :v | (v isKindOf: ServerDirectory) ifFalse: [ badOnes at: k put: v ] ]. badOnes keysDo: [ :k | ServerDirectory servers removeKey: k ].
5736nilTrueFalseLiteralArr-avi -- Avi Bryant -- 16 February 2004 Modifies Scanner>>scanLitVec to be ANSI-compliant and treat #(nil true false) as a collection of an UndefinedObject and two Booleans, rather than as three Symbols. Includes a test case (which also ensures that #(#nil #true #false) and #(#'nil' #'true' #'false') still contain symbols)."
5737hour12fix-avi -- Avi Bryant -- 21 February 2004 #hour12 in Time and DateAndTime was using a strange algorithm that gave incorrect results - for example, (Time fromString: '3:00 pm') hour12 gave 4 instead of 3. This fixes the problem.
5738SeparateCommentPane-nk -- Ned Konz -- 15 February 2004 This adds (for Morphic only, currently) a separate class comment pane instead of the combined class comment and class definition introduced in 5681browseWithComments-ls The 15 Feb. version avoids the search through the dependents, and avoids re-creating the comment pane morph. (merged Browser>>messageCategoryListIndex: with 5731acceptCodeFix-bg. -dew)
5739TextEmpahsis-fc -- Ned Konz -- 15 February 2004 Every time we change the Preferences class, we hold onto the old versions in individual preferences. This CS repairs existing Preferences to point to the current Preferences class. | obsoletePrefs | Smalltalk garbageCollect. obsoletePrefs _ Preference allSubInstances select: [ :ea | | ci | ci _ (ea instVarNamed: 'changeInformee'). ci isBehavior and: [ ci isObsolete ] ]. obsoletePrefs do: [ :pref | | ci | ci _ (pref instVarNamed: 'changeInformee'). pref instVarNamed: 'changeInformee' put: (Smalltalk at: ci name ifAbsent: []) ]. Behavior flushObsoleteSubclasses.
5740StartDragFix-nk -- Ned Konz -- 17 February 2004 Ghanges the start-drag logic to send the mouse-down event, instead of the event that is detected as the start of drag. This avoids the 10 pixel offset that can sometimes lead to incorrect behavior when dragging from PluggableListMorphs.
5741IntervalNewFromTests -- stephane ducasse -- 21 February 2004 another test for interval creation"
5742SyntaxMorphAddNoiseStr-fbs
5743MorphFileInFix-bf -- Bert Freudenberg -- 13 February 2004 Loading a morph from file opened the file in read/write mode, resulting in the inability to load a read-only morph file. Fixed."
5744FileContentsBrowser2-nk -- Ned Konz -- 18 February 2004 Changes isMetaClass to isMeta in PseudoClass and PseudoMetaclass to avoid problems with browsing code files that include classes that aren't already defined.
5745PosStream-upToEnd -- Boris Gaertner -- 19 February 2004 When reading past the end of a stream, our implementations of #next answer the value nil, which is certainly questionable. The method PositionableStream>>upToEnd checks for nil to detect the end of a stream which is certainly wrong. It has to use atEnd. "
5746FixObsoletePrefs-nk -- Ned Konz -- 15 February 2004 Every time we change the Preferences class, we hold onto the old versions in individual preferences. This CS repairs existing Preferences to point to the current Preferences class. | obsoletePrefs | Smalltalk garbageCollect. obsoletePrefs _ Preference allSubInstances select: [ :ea | | ci | ci _ (ea instVarNamed: 'changeInformee'). ci isBehavior and: [ ci isObsolete ] ]. obsoletePrefs do: [ :pref | | ci | ci _ (pref instVarNamed: 'changeInformee'). pref instVarNamed: 'changeInformee' put: (Smalltalk at: ci name ifAbsent: []) ]. Behavior flushObsoleteSubclasses.
5747SoundSystemCleanup-gk -- Adam Spitz, Göran Krampe -- 23 February 2004 This is the first changeset intended for the update stream that comes out of Adam's monster work Cleanup.sar. I am working through it alphabetically. This update is comprised of Adam's first two changesets: - AAAMultipleSoundSystems.3.cs - DSASoundCleanup.1.cs ...rewritten quite a lot: - Renamed SoundSystem to SoundService - Renamed BadSoundSystem to DummySoundSystem. - Renamed GoodSoundSystem to BaseSoundSystem. - Move DummySoundSystem and AbstractSoundSystem to System-Support - Kept references to the recently introduced Beeper as is, Beeper is now integrated on top of SoundService. - Tweaked Beeper with simplifications and more comments etc. - Moved general checks of Preferences soundsEnabled into Dummy/BaseSoundSystem, seems smart! - Added a playSoundNamedOrBeep: method - Added a base class AbstractSoundSystem - Added class comments for all new classes. - Threw in the DSASoundCleanup into this changeset since it also has to do with sound, preamble below. - Plus probably a bunch more little things. Lets get this one in because cleaning code rot isn't fun. :) /Göran Here follows original preambles: Preamble from AAAMultipleSoundSystems:: There are lots of places in the image that play sounds but shouldn't really depend on the sound system; if sound support isn't present, they should still be able to do their jobs (just a little more quietly :). This changeset adds a class called SoundSystem, so that we can say things like: SoundSystem default playSoundNamed: 'croak'. Preamble from AAAMultipleSoundSystems:: The DigitalSignatureAlgorithm class uses the sound system for some sort of randomness-generating thingy. This changeset is a half-assed attempt to remove this dependency, so that we can eventually create images without sound support.
5748TTCfontNameWPointSize-nk -- Ned Konz -- 12 February 2004 Fix for missing method.
5749setClassSelPackagePane-avi -- Avi Bryant -- 21 February 2004 Browser>>setClass:selector: now uses #selectCategoryForClass: so that it works properly from the PackagePaneBrowser as well. This fixes the bug with out of bounds errors when defining new classes in the PackagePaneBrowser that was caused by update 5487."
5750EventRecPlayback-los -- Lothar Schenk -- 26 February 2004 Image: 3.7a Clicking on a tape in a Filelist that was recorded with the EventRecorderMorph (e.g. EventRecorder.tape) and then choosing the 'open for playback' button results in a walkback: 'MessageNotUnderstood: EventRecorderMorph>>rewind'. The reason is this call in EventRecorderMorph class>>openTapeFromFile: openTapeFromFile: fullName (EventRecorderMorph new readTape: fullName) rewind openInWorld EventRecorderMorph has no 'rewind' method or anything resembling it. Leaving out the call to 'rewind' seems to work fine (also plausible, considering that the tape has just been read in from the file). The attached change set contains a corresponding patch. Regards, Lothar
5751CategoryDefaultName-dgd -- Diego Gomez Deck DiegoGomezDeck@ConsultAr.com -- 25 February 2004 better default for category name (the selector is used instead of #none). useful for etoys translation using Babel.
5752MPEGeToyVocab-dgd -- Diego Gomez Deck DiegoGomezDeck@ConsultAr.com -- 16 February 2004 Export the current funcionality in MPEGMorph to eToys environment. The motivation is to improve the 'Active Essay' features of squeak from eToys level. Now you can play, stop and rewind; read/modify the volume and the position; change the repeat option and ask is the move/sound is running. See an example of use at: http://swiki.agro.uba.ar/small_land/uploads/1/video_from_etoys.jpeg
5753SkipListClassComment-klc
5754BrowseComprsdCodeFiles-nk -- Ned Konz -- 17 February 2004 Adds the ability to open a FileContentsBrowser on the contents of a compressed stream, both from the FileList and from the BFAV.
5755beginsEndsWith-bp -- Bernhard Pieber -- 21 February 2004 Implements beginsWith: and endsWith: for all SequenceableCollections, not only for Strings."
5756testBeginsEndsWith-fbs
5757MorphicTextEditorRegistry -- Adam Spitz -- 11 February 2004 Creates a kind of AppRegistry called MorphicTextEditor. Installs PluggableTextMorph as the default one. (The SVI package, for example, could register itself as another kind of MorphicTextEditor. This would allow programs to be SVI-compliant simply by writing 'MorphicTextEditor default' instead of 'PluggableTextMorph'.)"
5758PNGReadWriterV7 -- Andreas Raab & Ned Konz -- 10 February 2004 Provide PNGReadWriter with the ability to write files. In addition, fix some issues with transparency in PNGs which was not handled correctly. v2: Vastly improved version. Includes a test suite which ensures that we can use PNG consistently to save and load Squeak forms. v3: 2/12/2004 - Fixed CRC storage - Added CRC validation for reading - Provide logging for test images - Attempt to fix byte-sex problem v4: Some fixes for the PNG reading and writing: * don't crash Squeak when performing tests (fixed in Zlib writer). * generate Adler32 checksum in compressed image chunks so other programs can read Squeak's PNG files. * verify Adler32 checksum in compressed image chunks to detect corruption. * modify test suite so that if you have the PngSuite.zip installed we also check for detection of corrupted files. v5: * Fixed big endian color problems (thanks to Avi) * Added more tests v6: * Fixed final swizzle problems for big endian machines v7 (NK): * Fixed gzip CRC generation.
5759KCP185SpaceUsedFix -- stephane ducasse -- 1 February 2004 clema spaceUsed implementation so that we can know it on Behavior instances too and avoid the hardcoded isKindO: Metaclass so that other extensions can use it too."
5760KCP190MoveUIInteraction -- stephane ducasse -- 1 February 2004 move the methods letUserReclassify: and categoryFromUserWithPrompt: aPrompt from ClassDescription to CodeHolder the only client of this method. This way we can have a better layered system...let us hope slowly.
5761KCP195MoveUpZapAll -- stephane ducasse -- 1 February 2004 Behavior is not an abstract class. So redefine and move zapAllMethods from ClassDescription to Behavior. (removed testZapMethods for now because there is no BehaviorTest class. -dew)"
5762chronology-tests1 -- Brent Pinkney and Tom Koenig -- 16 February 2004 These are the Chronology Tests, done by Brent Pinkney and Tom Koenig. The changeset adds some good utility methods to ClassTestCase for ensuring full test coverage. md: this is a fileout of Chronology-b-Tests-SqueakAndSmalltalk80Compatibility Chronology-h-Tests-NewGeneration Chronology-k-Tests-Cleanup Tom did more tests, these will follow in an additional changeset"
5763GenieRenameFor37-nk -- Ned Konz -- 20 February 2004 This CS adds all the genie- method categories to the Genie package so we can apply Monticello changes. This preamble does the basic category renaming needed. The rest of the CS changes a few other methods, primarily ones that shouldn't be in Genie. 20 Feb: removed inspector. | pi bad | SystemOrganization renameCategory: 'Tests-Genie-Engine' toBe: 'Genie-Tests'. pi _ PackageInfo named: 'Genie'. bad _ OrderedCollection new. (ClassDescription allSubInstances reject: [ :ea | ea isObsolete ]) do: [ :cls | | org | org _ cls organization. org categories do: [ :cat | (pi includesClass: cls) ifFalse: [ ( cat asLowercase beginsWith: 'genie') ifTrue: [ (org listAtCategoryNamed: cat) do: [ :sel | org classify: sel under: ('*', cat). ChangeSet current adoptSelector: sel forClass: cls. bad add: (cls -> sel) ]. org removeEmptyCategories ]] ifTrue: [ ( cat asLowercase beginsWith: '*genie-') ifTrue: [ | newName | newName _ cat copyFrom: 8 to: cat size. newName isEmpty ifTrue: [ newName _ cat copyFrom: 2 to: cat size ]. (org listAtCategoryNamed: cat) do: [ :sel | org classify: sel under: newName. ChangeSet current adoptSelector: sel forClass: cls. bad add: (cls -> sel) ]. org removeEmptyCategories ]. ]. ]]. "(bad explore) dependents first setLabel: 'moved methods'"
5764GenieRemoval-nk -- Ned Konz -- 14 February 2004 Removes Genie so that it can be loaded later as a package. Tested with 3.7a-5707. HandMorph allSubInstancesDo: [ :ea | ea disableGenie ]. Morph allSubInstancesDo: [ :ea | ea gestureDictionaryOrName: nil ]. FileList unregisterFileReader: CRRecognizer.
<This automated message brought to you by the UpdateIncorporationTool.> <See the UpdateIncorporationTool package on SqueakMap for details.>
It seems that Doug Way wrote:
5764GenieRemoval-nk -- Ned Konz -- 14 February 2004
When I update a clean image (from 5707), this last change set doesn't finish with the traditional "File BlahBlah.cs successfully filed in to change set BlahBlah".
Should I care?
German Morales
On Tuesday, March 2, 2004, at 09:31 PM, German Morales wrote:
It seems that Doug Way wrote:
5764GenieRemoval-nk -- Ned Konz -- 14 February 2004
When I update a clean image (from 5707), this last change set doesn't finish with the traditional "File BlahBlah.cs successfully filed in to change set BlahBlah".
Should I care?
Hmm, maybe. This happens for me too, although the changeset looks okay in the changesorter. I haven't looked into why this happens. Any idea, Ned?
- Doug
Doug Way dway@mailcan.com wrote:
On Tuesday, March 2, 2004, at 09:31 PM, German Morales wrote:
It seems that Doug Way wrote:
5764GenieRemoval-nk -- Ned Konz -- 14 February 2004
When I update a clean image (from 5707), this last change set doesn't finish with the traditional "File BlahBlah.cs successfully filed in to change set BlahBlah".
Should I care?
Hmm, maybe. This happens for me too, although the changeset looks okay in the changesorter. I haven't looked into why this happens. Any idea, Ned?
Yep, look in the postscript, last line: Project spawnNewProcessAndTerminateOld: true.
Same trick I used in my SM bootStrap - it essentially kills the running Process. Possibly because Ned don't want the code running that is filing in the .cs to return - because it would possibly be running old Obsolete code etc.
So short answer is - it is intentional. :)
regards, Göran
On Tuesday 02 March 2004 11:55 pm, goran.krampe@bluefish.se wrote:
Hmm, maybe. This happens for me too, although the changeset looks okay in the changesorter. I haven't looked into why this happens. Any idea, Ned?
Yep, look in the postscript, last line: Project spawnNewProcessAndTerminateOld: true.
Same trick I used in my SM bootStrap - it essentially kills the running Process. Possibly because Ned don't want the code running that is filing in the .cs to return - because it would possibly be running old Obsolete code etc.
So short answer is - it is intentional. :)
Right. I have to make a new Hand for the World after this, or things break.
On Wednesday, March 3, 2004, at 02:16 PM, Ned Konz wrote:
On Tuesday 02 March 2004 11:55 pm, goran.krampe@bluefish.se wrote:
Hmm, maybe. This happens for me too, although the changeset looks okay in the changesorter. I haven't looked into why this happens. Any idea, Ned?
Yep, look in the postscript, last line: Project spawnNewProcessAndTerminateOld: true.
Same trick I used in my SM bootStrap - it essentially kills the running Process. Possibly because Ned don't want the code running that is filing in the .cs to return - because it would possibly be running old Obsolete code etc.
So short answer is - it is intentional. :)
Right. I have to make a new Hand for the World after this, or things break.
It looks like this will cause a minor glitch when additional updates are added to the update stream. I added an extra update in the test (internal) update stream, and if you load updates, you'll get a "Sorry that name is already used" prompt because it's trying to reload 5764GenieRemoval-nk again. It's probably trying to load this one again because it never was properly marked as being loaded the first time, since the process was terminated.
(Actually, you can see it happen just by reloading updates in a regular 5764 image.)
It's not a huge problem in this case, it just brings up the prompt and then skips trying to reload that update.
Still, we might not want to do this sort of thing in the update stream in the future. Maybe there are other ways to achieve a similar effect...
- Doug
I noticed that too.
cheers
bruce
On Fri, Mar 05, 2004 at 12:27:16AM -0500, Doug Way wrote:
On Wednesday, March 3, 2004, at 02:16 PM, Ned Konz wrote:
On Tuesday 02 March 2004 11:55 pm, goran.krampe@bluefish.se wrote:
Hmm, maybe. �This happens for me too, although the changeset looks okay in the changesorter. �I haven't looked into why this happens. �Any idea, Ned?
Yep, look in the postscript, last line: Project spawnNewProcessAndTerminateOld: true.
Same trick I used in my SM bootStrap - it essentially kills the running Process. Possibly because Ned don't want the code running that is filing in the .cs to return - because it would possibly be running old Obsolete code etc.
So short answer is - it is intentional. :)
Right. I have to make a new Hand for the World after this, or things break.
It looks like this will cause a minor glitch when additional updates are added to the update stream. I added an extra update in the test (internal) update stream, and if you load updates, you'll get a "Sorry that name is already used" prompt because it's trying to reload 5764GenieRemoval-nk again. It's probably trying to load this one again because it never was properly marked as being loaded the first time, since the process was terminated.
(Actually, you can see it happen just by reloading updates in a regular 5764 image.)
It's not a huge problem in this case, it just brings up the prompt and then skips trying to reload that update.
Still, we might not want to do this sort of thing in the update stream in the future. Maybe there are other ways to achieve a similar effect...
- Doug
Hi Bruce and all!
While I remember it - you can actually make the zipped up images smaller by doing:
SMSqueakMap default purge
..before zipping it up. This will clear out the map - but not the info about installed packages. It saves a few 100kb on the image. When the users unzip and start the image they will most likely either:
- Load a newer map they already have in their "sm" dir. - Load a newer map from the Internet.
So the map instance inside the image is most likely not up to date anyway.
regards, Göran
Actually, it looks like the update stream problem is a bit more serious... if you start with a 5707 or earlier alpha image, and load updates, it will stop at 5764 even if there are more updates in the stream after that. Kind of makes sense that that would happen, since the UI process is being terminated.
To see this in action, file in the attached seeInternalUpdates-dew.cs to see the internal/test update stream, where I've added an additional test update 5765, and then load updates (by selecting "SqC Internal Updates*"). The updates stop at 5764 since the UI process is terminated (it doesn't even redraw the screen). Then you have to go re-fetch updates again to proceed, click past the "Sorry that name is already used" dialog, to get up to 5765.
I think we should probably try to avoid this. Here are some possible solutions:
1. Re-do the postscript of 5764GenieRemoval-nk so that it no longer does a "Project spawnNewProcessAndTerminateOld: true". Is there any other way that the appropriate cleanup can happen for this changeset besides killing the UI process? I don't think any previous updates have ever killed the UI process.
2. Somehow change the behavior of the update stream loading so that it spawns a separate process for each update, so that it will still continue on even if an update kills its UI process. I'm not sure if this is easily doable.
3. Other solutions?
- Doug
Bruce O'Neel wrote:
I noticed that too.
On Fri, Mar 05, 2004 at 12:27:16AM -0500, Doug Way wrote:
On Wednesday, March 3, 2004, at 02:16 PM, Ned Konz wrote:
On Tuesday 02 March 2004 11:55 pm, goran.krampe@bluefish.se wrote:
Hmm, maybe. ?This happens for me too, although the changeset looks okay in the changesorter. ?I haven't looked into why this happens. ?Any idea, Ned?
Yep, look in the postscript, last line: Project spawnNewProcessAndTerminateOld: true.
Same trick I used in my SM bootStrap - it essentially kills the running Process. Possibly because Ned don't want the code running that is filing in the .cs to return - because it would possibly be running old Obsolete code etc.
So short answer is - it is intentional. :)
Right. I have to make a new Hand for the World after this, or things break.
It looks like this will cause a minor glitch when additional updates are added to the update stream. I added an extra update in the test (internal) update stream, and if you load updates, you'll get a "Sorry that name is already used" prompt because it's trying to reload 5764GenieRemoval-nk again. It's probably trying to load this one again because it never was properly marked as being loaded the first time, since the process was terminated.
(Actually, you can see it happen just by reloading updates in a regular 5764 image.)
It's not a huge problem in this case, it just brings up the prompt and then skips trying to reload that update.
Still, we might not want to do this sort of thing in the update stream in the future. Maybe there are other ways to achieve a similar effect...
- Doug
'From Squeak3.3alpha of 18 January 2002 [latest update: #4924] on 24 July 2002 at 10:40:24 am'! "Change Set: seeInternalUpdates-sw Date: 24 July 2002 Author: Scott Wallace
Private to SqC!! File this in and your image will subsequently be able to update from the SqC internal update servers. When confronted with the prompt for which update server to use, choose the one named 'SqC Internal Updates*'
This update also includes a method for *removing* the SqC internal update stream from the list of update servers groups."!
!Utilities class methodsFor: 'fetching updates' stamp: 'sw 7/24/2002 10:19'! assureAbsenceOfInternalUpdateStream "Check to see if the SqC Internal Updates server is in the list; if it is, *remove* it. This is the *opposite* of #assureAvailabilityOfInternalUpdateStream"
UpdateUrlLists ifNil: [UpdateUrlLists _ OrderedCollection new]. UpdateUrlLists _ UpdateUrlLists select: [:pair | pair first ~= 'SqC Internal Updates*']
"Utilities assureAbsenceOfInternalUpdateStream"! !
!Utilities class methodsFor: 'fetching updates' stamp: 'sw 7/24/2002 10:13'! assureAvailabilityOfInternalUpdateStream "Check to see if the SqC Internnal Updates server is in the list; if not, add it"
UpdateUrlLists ifNil: [UpdateUrlLists _ OrderedCollection new]. UpdateUrlLists do: [:pair | (pair first = 'SqC Internal Updates*') ifTrue: [^ self]].
UpdateUrlLists addFirst: #('SqC Internal Updates*' #('update.squeakfoundation.org/external/'))
"Utilities assureAvailabilityOfInternalUpdateStream"! !
"Postscript:" Utilities assureAvailabilityOfInternalUpdateStream. !
On Friday 05 March 2004 3:36 pm, Doug Way wrote:
Actually, it looks like the update stream problem is a bit more serious... if you start with a 5707 or earlier alpha image, and load updates, it will stop at 5764 even if there are more updates in the stream after that. Kind of makes sense that that would happen, since the UI process is being terminated.
To see this in action, file in the attached seeInternalUpdates-dew.cs to see the internal/test update stream, where I've added an additional test update 5765, and then load updates (by selecting "SqC Internal Updates*"). The updates stop at 5764 since the UI process is terminated (it doesn't even redraw the screen). Then you have to go re-fetch updates again to proceed, click past the "Sorry that name is already used" dialog, to get up to 5765.
I think we should probably try to avoid this. Here are some possible solutions:
- Re-do the postscript of 5764GenieRemoval-nk so that it no longer does
a "Project spawnNewProcessAndTerminateOld: true". Is there any other way that the appropriate cleanup can happen for this changeset besides killing the UI process? I don't think any previous updates have ever killed the UI process.
I'll take a look at it.
- Somehow change the behavior of the update stream loading so that it
spawns a separate process for each update, so that it will still continue on even if an update kills its UI process. I'm not sure if this is easily doable.
- Other solutions?
On Friday 05 March 2004 3:36 pm, Doug Way wrote:
Actually, it looks like the update stream problem is a bit more serious... if you start with a 5707 or earlier alpha image, and load updates, it will stop at 5764 even if there are more updates in the stream after that. Kind of makes sense that that would happen, since the UI process is being terminated.
Attached is a CS that fixes this problem.
It also removes the unnecessary instance variable in the Hand.
On Saturday, March 6, 2004, at 12:56 PM, Ned Konz wrote:
On Friday 05 March 2004 3:36 pm, Doug Way wrote:
Actually, it looks like the update stream problem is a bit more serious... if you start with a 5707 or earlier alpha image, and load updates, it will stop at 5764 even if there are more updates in the stream after that. Kind of makes sense that that would happen, since the UI process is being terminated.
Attached is a CS that fixes this problem.
It also removes the unnecessary instance variable in the Hand.
Thanks Ned, just tried it in the test/internal update stream.
It does fix the termination-related problems, but unfortunately an error occurs afterward: "MessageNotUnderstood: HandMorph>>isGenieRecognizing" ...I've attached the debug log.
After closing the debugger, things go back to normal. (makes sense, since closing the debugger ends the UI process which had the problems)
To reproduce this:
- start with a fresh 5707 or earlier alpha image - load my seeInternalUpdates changeset which I posted yesterday - load updates from the "SqC Internal Updates*" stream
- Doug
----------------------------------------- MessageNotUnderstood: HandMorph>>isGenieRecognizing 6 March 2004 1:41:06 pm
VM: Mac OS - a SmalltalkImage Image: Squeak3.7alpha [latest update: #5765]
HandMorph(Object)>>doesNotUnderstand: #isGenieRecognizing Receiver: a HandMorph(3216) Arguments and temporary variables: aMessage: isGenieRecognizing Receiver's instance variables: bounds: 235@289 corner: 251@305 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 235@289 corner: 251@305 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: a TextMorphForEditView(3763) eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [238@308 235@289 mouseMove 581508] targetOffset: 98@7 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 581508 238 308 0 0 0 0)
[] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents. h isGenieRecognizing ifTrue: [r...]} Arguments and temporary variables: aWorld: a PasteUpMorph(1622) [world] recognizing: false h: a HandMorph(3216)
Array(SequenceableCollection)>>do: Receiver: #(a HandMorph(3216)) Arguments and temporary variables: aBlock: [] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents. h isGenieRecognizing ifTrue: [r...]}...etc... index: 1 indexLimiT: 1 Receiver's instance variables: #(a HandMorph(3216)) WorldState>>handsDo: Receiver: a WorldState Arguments and temporary variables: aBlock: [] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents. h isGenieRecognizing ifTrue: [r...]}...etc... Receiver's instance variables: hands: #(a HandMorph(3216)) activeHand: a HandMorph(3216) viewBox: 0@0 corner: 800@600 canvas: a FormCanvas on: DisplayScreen(800x600x16) damageRecorder: a DamageRecorder stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1379))(a PreDebugWind...etc... lastStepTime: 581571 lastStepMessage: nil lastCycleTime: 581421 commandHistory: a CommandHistory alarms: a Heap() lastAlarmTime: 581571 remoteServer: nil multiCanvas: nil
--- The full stack --- HandMorph(Object)>>doesNotUnderstand: #isGenieRecognizing [] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents. h isGenieRecognizing ifTrue: [r...]} Array(SequenceableCollection)>>do: WorldState>>handsDo: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WorldState>>DoItwith: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]} [] in BlockContext>>newProcess {[self value. Processor terminateActive]}
On Saturday 06 March 2004 10:53 am, Doug Way wrote:
Thanks Ned, just tried it in the test/internal update stream.
It does fix the termination-related problems, but unfortunately an error occurs afterward: "MessageNotUnderstood: HandMorph>>isGenieRecognizing" ...I've attached the debug log.
After closing the debugger, things go back to normal. (makes sense, since closing the debugger ends the UI process which had the problems)
Well...
The attached CS kills off the active UI process, but makes sure that the update number is registered first, and that the updates continue from that point.
Which means that you won't see the right number of 'files processed', as the first one of these (up to and including 5764) won't be displayed.
But at least we'll update everything.
On Saturday, March 6, 2004, at 03:59 PM, Ned Konz wrote:
The attached CS kills off the active UI process, but makes sure that the update number is registered first, and that the updates continue from that point.
Which means that you won't see the right number of 'files processed', as the first one of these (up to and including 5764) won't be displayed.
But at least we'll update everything.
This seems to work reasonably well... I've added it to the regular update stream (replacing the old 5764 changeset).
- Doug
On Saturday 06 March 2004 12:59 pm, I wrote:
Which means that you won't see the right number of 'files processed', as the first one of these (up to and including 5764) won't be displayed.
But at least we'll update everything.
The attached does several things that .15 didn't:
* it doesn't blow away Genie without asking first * it allows you to abort cleanly if you have gesture dictionaries defined * even if you decide to blow away Genie it will save your gesture dictionaries * it won't register as an update if you load it separately
I recommend replacing the one in the update stream with this one.
The change set name is already in use. Filing the change set in without a change set name works though.
Also Genie is not on SqueakMap. Shouldn't packages be registered on SqueakMap before they are removed.
Bryce
Hi,
This now lives at:
ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.7alpha/Squeak3.7a-5764.zip
cheers
bruce
Doug Way dway@mailcan.com wrote:
Date: Tue, 02 Mar 2004 11:03:11 -0500 From: Doug Way dway@mailcan.com Subject: [UPDATES] 57 for Squeak3.7alpha To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org reply-to: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org content-length: 25400
Hm, I posted this Sunday and the list seems to be back up now, but I don't see it, so here it is again...
-------- Original Message -------- Subject: [UPDATES] 57 for Squeak3.7alpha Date: Sun, 29 Feb 2004 20:07:21 -0500 From: dway@mailcan.com To: squeak-dev@lists.squeakfoundation.org, dway@mailcan.com
The latest batch of updates... whew. (This one seemed to take longer than usual for various reasons, probably 5-6 hours.) Lots of goodies here, including the SM2 update, PNG writing, snapshot cleanup, Genie removal, etc.
We're still shooting for moving to beta this Friday, March 5th. I'll send out a separate email making more of an announcement about that.
- Doug
5708SM1Removal-gk -- Gsran Krampe -- 12 February 2004 This update removes old SM1 from the image and stores the installedPackagesDictionary in a global for subsequent retrieval in the next update that installs SM2." "Begin by toasting the old SMLoader if present in image. We also close any open loaders." (Smalltalk hasClassNamed: #SMLoader) ifTrue: [ (Smalltalk at: #SMLoader) allInstances do: [:e | e myDependents: #(). e delete]. SystemOrganization removeSystemCategory: 'SM-Loader']. "Remember installed packages if we have them and toast old SM." (Smalltalk hasClassNamed: #SMSqueakMap) ifTrue: [ Smalltalk at: #SM1InstalledPackagesDictionary put: (Smalltalk at: #SMSqueakMap) default installedPackagesDictionary. "This is a brutal hack, need to figure out why it is needed..." (Smalltalk at: #SMSqueakMap) setName: #SMSqueakMap. SystemOrganization removeSystemCategory: 'SM-domain']
5709SM2Install-gk -- Gsran Krampe -- 12 February 2004 This changeset installs SM2 into the image if it has not been installed already, by contacting the SM2 server at map1.squeakfoundation.org and asking it for the URLs to the packages to download and install. It first installs VersionNumber and MCInstaller if needed." | repDir server stream installedMC installedVN map | (Smalltalk hasClassNamed: #SMPackage) ifFalse: [ installedVN _ false. "Install first versions of VersionNumber for SM2 if it is missing, we can't rely on using old SM because it is now removed." (Smalltalk hasClassNamed: #VersionNumber) ifFalse: [ ChangeSorter newChangesFromStream:
((('http://map1.squeakfoundation.org/sm/package/35e02e3a-48e2-4843-94ee- e86d651aeafe/autoversion/1/downloadurl') asUrl retrieveContents content) asUrl retrieveContents content unzipped readStream) named: (ChangeSet uniqueNameLike: 'VersionNumber'). installedVN _ true]. "Load the new SM base, using available Monticello or MCInstaller, and installing MCInstaller otherwise" stream _ HTTPClient httpGet: ('http://map1.squeakfoundation.org/sm/package/c4c13ea3-e376-42c7-8d9e-d c23b09f9f29/autoversion/6/downloadurl' asUrl retrieveContents content). installedMC _ false. (Smalltalk hasClassNamed: #MCMczReader) ifTrue: [(MCMczReader versionFromStream: stream) load "Using Monticello"] ifFalse: [ "No Monticello installed, will use MCInstaller and install it first if needed" (Smalltalk hasClassNamed: #MczInstaller) ifFalse: [ ChangeSorter newChangesFromStream: ((('http://map1.squeakfoundation.org/sm/package/af9d090d-2896-4a4e-82d0- c61cf2fdf40e/autoversion/2/downloadurl') asUrl retrieveContents content) asUrl retrieveContents content unzipped readStream) named: (ChangeSet uniqueNameLike: 'MCInstaller'). installedMC _ true]. MczInstaller installStream: stream]. "This clears the default map, but keeps info on installed packages if there where any" (Smalltalk hasClassNamed: #SMPackage) ifTrue: [ map _ (Smalltalk at: #SMSqueakMap) default. map installedPackagesDictionary: (Smalltalk at: #SM1InstalledPackagesDictionary ifAbsent: [nil]). Smalltalk removeKey: #SM1InstalledPackagesDictionary ifAbsent: [nil]. "Remove old SM Package Loader, if present" map clearInstalledPackageWithId: '047a3b12-7e52-4c5d-be8b-d06635fc4f1c'. "Remove old SqueakMap Base, if present" map clearInstalledPackageWithId: 'fffa45d3-2459-4b7d-b594-9cfae17c864d'. "Remove old SqueakMap loadscript, if present" map clearInstalledPackageWithId: '4f0b9db6-8add-43aa-8d6b-53e6a0ea8442'. "Add that we now have versions of SqueakMap2 base, VersionNumber and MCInstaller installed" map noteInstalledPackageWithId: 'c4c13ea3-e376-42c7-8d9e-dc23b09f9f29' autoVersion: '6'. installedVN ifTrue: [map noteInstalledPackageWithId: '35e02e3a-48e2-4843-94ee-e86d651aeafe' autoVersion: '1']. installedMC ifTrue: [map noteInstalledPackageWithId: 'af9d090d-2896-4a4e-82d0-c61cf2fdf40e' autoVersion: '2']. "Make sure map is updated" map loadUpdates] ifFalse: [self error: 'Installation of "SqueakMap base" failed']. "Install new SMLoader using SM2 itself." map installPackageWithId: '941c0108-4039-4071-9863-a8d7d2b3d4a3' autoVersion: '2']
5710snapshotSavingCleanups -- tim@sumeru.stanford.edu -- 15 February 2004 Some important cleanups in the saving of snapshots and initialising of FileDirectory. Makes it possible to save the snapshots in a different directory than the original snapshot file came from (ie you can start up /var/squeak/squeak.image and save ~joesixpack/joesworking.image). This version built for post-update 5707, compensating for the effects of recent KCP changes in the area of image saving and some changes in the 5707 updates"
5711AttrStreamFix-gk -- Gsran Krampe -- 12 February 2004 After having looked at Boris Gaertner's fix for Scamper I agree with the override AttributeTextStream class>>new. No need to make any other changes to that class at this time. Just added a comment etc."
5712pathPartsFixes-tpr -- tim@sumeru.stanford.edu -- 9 February 2004 Some mild improvements to users of FileDirectory>pathParts. Revised per Frank Shearer's discovery of stupidity in respect to ServerDirectory>pathParts"
5713FileOutCategory-jf -- Julian Fitzell -- 7 February 2004 #fileOutCategory:asHtml: would try to create files without first validating the file names. This was a problem if you had a system category with a / in it for example. Fix this by adding a call to #asFileName on the file name string."
5714UTF8String-JO -- Jonas hrn -- 16 September 2002 Two small methods added to String for conversion between ISO-8859-1 and UTF-8.
5715CopyObjectMethod-tpr -- tim@sumeru.stanford.edu -- 14 February 2004 Revised Object>copyFrom: to use numbered optional prim 168 to copy objects"
5716GifReadWriterDecode-klc -- Ken Causey -- 26 January 2004 It seems that someone started some changes to handle comment blocks in GIF files but never finshed it. The code was completely unused and buggy (the block terminator was not being processed) and there was no way to tell what the goal of it was, so I removed it. This fixes a problem with reading GIF files with comments."
5717TextPropertiesMorph-fc -- Frank Caggiano -- 12 February 2004 Ned Konz added revert for extent as well. TextMorph 'text color...' interface 'cancel' button doesn't work Not just a problem with the cancel button. The TextMorph created inside the TextPropertiesMorph (activeTextMorph) and the TextMorph being edited (myTarget) were sharing the same attributes. Certain changes (color, text style) to the activeTextMorph were immeditely set in myTagret. This could be seen by forcing myTagret to redraw itself even while the textPropertiesMorph was still up (for example clicking the wrap button or covering and uncovering the target text morph). There still might be an issue with the wrap button. I'm not really sure how it is suppose to work."
5718MessageListDragFix-nk -- Ned Konz -- 15 February 2004 Fixes message dragging from MessageLists.
5719GIFReadingFixes-nk -- Ned Konz -- 15 February 2004 A few small fixes and enhancements for the GIF readers.
- Add an 'offset' instVar to get rid of Undeclared refs.
- Open either an ImageMorph or AnimatedImageMorph as appropriate from a
FileList.
- Allow opening GIFs from remote servers in the FileList.
"
5720UrlTestFixes-gk -- Gsran Krampe -- 12 February 2004 A bunch of extra tests for FileUrl given the FileUrlRewrite."
5721indentClipText-bf -- Bert Freudenberg -- 9 February 2004 When copying the text of an indented list via the red halo menu, the individual items where not indented, making the result illegible. Fixed."
5722FixObsoleteChronlgy-nk -- Ned Konz -- 15 February 2004 The Chronology changes weren't done correctly, so there are a number of bindings that refer to the old ZTime, etc. classes. This CS fixes those. | baddies | baddies _ ClassBuilder reallyObsoleteClasses asArray select: [ :ea | ea name first = $Z ]. baddies do: [ :bad | | newName | newName _ bad name allButFirst asSymbol. Smalltalk at: newName ifPresent: [ :newClass | ClassBuilder new recompile: false from: bad to: newClass mutate: false ] ]. Behavior flushObsoleteSubclasses.
5723ChangedWith-nk -- Ned Konz -- 17 February 2004 This adds #changed:with: and #update:with: to Object, as discussed on 2 and 3 December 2003. This is also VisualWorks compatible, for those packages that are ported from VW.
5724tests-reorganize-md -- Marcus Denker -- 16 February 2004 The unit-test from the Tests package have been added to the image. This changeset now renames all Tests-* categories to be *-Tests. Rational: When breaking stuff out (e.g. make a MC package Network-Url) then we sure want the tests be part of that, not continue to be part of the image. Some Tests* categories remain, e.g. Tests-KCP and Tests-Bugz.
5725timeSecondsPrintOn-brp -- Brent Pinkney -- 16 February 2004 Time printString should only show second precision."
5726SCN-compileInobtrsv-avi -- Avi Bryant -- 17 February 2004 Just a simple fix that adds an overlooked send to #uniqueInstance when referencing SystemChangeNotification in ClassDescription>>compileInobtrusively:classified:."
5727SmaCC-RuntimeSM-md -- Marcus Denker -- 16 February 2004 upate the SmaCC Runtime from SM"
5728fixPreferencesCat-md -- Marcus Denker -- 15 February 2004 Three methods in Preferences were categorized to be *Refactory. This changeset moves them to their correct catefory"
5729TestInteger-bg -- Boris Gaertner -- 2 February 2004 Peter Wiliam Lount found a problem when he constructed integers from four bytes and Bert Freudenberg published a fix. This test case checks the correct construction of value around SmallInteger maxVal."
5730DecorateDebuggerBtns-nk -- Ned Konz -- 18 February 2004 Makes the debugger's inheritance button colored like in the Browsers.
5731acceptCodeFix-bg -- Boris Gaertner -- 3 February 2004 KLC - I removed the commented out send in Browser>>selectOriginalCategoryForCurrentMethod otherwise identical. this change set fixes a bug that was reported on the list at Feb 03, 2004 by arj . A day later arj reported two additional ways to demonstrate undesired behavior of the brower. "
5732AccunyEdit-nk -- Ned Konz -- 19 February 2004 Edits the smallest two Accuny fonts to distinguish between the lower-case L and the number 1 glyphs. (commented out the demonstration display of the before & after glyphs. -dew) "((TextMorph new contentsAsIs: ((Text fromString: 'l1l1l1l1l1 Before') addAttribute: (TextFontReference toFont: (TextStyle named: 'Accuny') defaultFont); addAttribute: TextFontChange font1 from: 1 to: 2; addAttribute: TextFontChange font2 from: 3 to: 4; addAttribute: TextFontChange font3 from: 5 to: 6; addAttribute: TextFontChange font4 from: 7 to: 8; addAttribute: (TextFontChange fontNumber: 5) from: 9 to: 10; yourself)) imageForm magnifyBy: 4) asMorph position: ActiveHand position; openInWorld."
5733FileUrlRewrite-gk -- Gsran Krampe -- 12 February 2004 Note: This changeset may have side effects, we simply need to test drive it (Filelist with FTP etc). A problem that cropped up with Scamper was a fix Markus made in update 5414. Markus made FileUrl>>pathForFile and #pathForDirectory to prepend the pathName delimiter if the FileUrl is absolute. The refinement is to avoid prepending if the file url has a path that starts with a DOS style drive letter, since such paths are absolute per definition. This triggered a BIG make-over of FileUrl, where it was made much more proper by using 'file://' as the prefix instead of 'file:'. According to the RFCs a file URL can not have relative file paths, the isAbsolute etc still works but the result sending toText (which I didn't bother to change even though it has a strange name) will be proper and does not reflect isAbsolute. I have taken care of adding 'smarts' on how FileUrl creates itself given a non valid String representation - it tries to be quite helpful. This is partly based on what Mozilla does in this regard. Now it is IMHO much improved, seems to work, has a bunch of new tests (posted separately), and Scamper works fine from filelist on DOS drives.
5734DebuggerHighlightFix-nk -- Ned Konz -- 20 February 2004 This fixes the misalignment between the displayed text in the Debugger and the highlighted PC range, when you have the browseWithPrettyPrint Preference enabled.
5735FixServerDirectories-nk -- Ned Konz -- 12 December 2003 Change Set 5605CleanupUpdateServers-dew did not clean up the ServerDirectory servers dictionary properly. This quickie will remove the bad servers. | badOnes | badOnes _ Dictionary new. ServerDirectory servers keysAndValuesDo: [ :k :v | (v isKindOf: ServerDirectory) ifFalse: [ badOnes at: k put: v ] ]. badOnes keysDo: [ :k | ServerDirectory servers removeKey: k ].
5736nilTrueFalseLiteralArr-avi -- Avi Bryant -- 16 February 2004 Modifies Scanner>>scanLitVec to be ANSI-compliant and treat #(nil true false) as a collection of an UndefinedObject and two Booleans, rather than as three Symbols. Includes a test case (which also ensures that #(#nil #true #false) and #(#'nil' #'true' #'false') still contain symbols)."
5737hour12fix-avi -- Avi Bryant -- 21 February 2004 #hour12 in Time and DateAndTime was using a strange algorithm that gave incorrect results - for example, (Time fromString: '3:00 pm') hour12 gave 4 instead of 3. This fixes the problem.
5738SeparateCommentPane-nk -- Ned Konz -- 15 February 2004 This adds (for Morphic only, currently) a separate class comment pane instead of the combined class comment and class definition introduced in 5681browseWithComments-ls The 15 Feb. version avoids the search through the dependents, and avoids re-creating the comment pane morph. (merged Browser>>messageCategoryListIndex: with 5731acceptCodeFix-bg. -dew)
5739TextEmpahsis-fc -- Ned Konz -- 15 February 2004 Every time we change the Preferences class, we hold onto the old versions in individual preferences. This CS repairs existing Preferences to point to the current Preferences class. | obsoletePrefs | Smalltalk garbageCollect. obsoletePrefs _ Preference allSubInstances select: [ :ea | | ci | ci _ (ea instVarNamed: 'changeInformee'). ci isBehavior and: [ ci isObsolete ] ]. obsoletePrefs do: [ :pref | | ci | ci _ (pref instVarNamed: 'changeInformee'). pref instVarNamed: 'changeInformee' put: (Smalltalk at: ci name ifAbsent: []) ]. Behavior flushObsoleteSubclasses.
5740StartDragFix-nk -- Ned Konz -- 17 February 2004 Ghanges the start-drag logic to send the mouse-down event, instead of the event that is detected as the start of drag. This avoids the 10 pixel offset that can sometimes lead to incorrect behavior when dragging from PluggableListMorphs.
5741IntervalNewFromTests -- stephane ducasse -- 21 February 2004 another test for interval creation"
5742SyntaxMorphAddNoiseStr-fbs
5743MorphFileInFix-bf -- Bert Freudenberg -- 13 February 2004 Loading a morph from file opened the file in read/write mode, resulting in the inability to load a read-only morph file. Fixed."
5744FileContentsBrowser2-nk -- Ned Konz -- 18 February 2004 Changes isMetaClass to isMeta in PseudoClass and PseudoMetaclass to avoid problems with browsing code files that include classes that aren't already defined.
5745PosStream-upToEnd -- Boris Gaertner -- 19 February 2004 When reading past the end of a stream, our implementations of #next answer the value nil, which is certainly questionable. The method PositionableStream>>upToEnd checks for nil to detect the end of a stream which is certainly wrong. It has to use atEnd. "
5746FixObsoletePrefs-nk -- Ned Konz -- 15 February 2004 Every time we change the Preferences class, we hold onto the old versions in individual preferences. This CS repairs existing Preferences to point to the current Preferences class. | obsoletePrefs | Smalltalk garbageCollect. obsoletePrefs _ Preference allSubInstances select: [ :ea | | ci | ci _ (ea instVarNamed: 'changeInformee'). ci isBehavior and: [ ci isObsolete ] ]. obsoletePrefs do: [ :pref | | ci | ci _ (pref instVarNamed: 'changeInformee'). pref instVarNamed: 'changeInformee' put: (Smalltalk at: ci name ifAbsent: []) ]. Behavior flushObsoleteSubclasses.
5747SoundSystemCleanup-gk -- Adam Spitz, Gsran Krampe -- 23 February 2004 This is the first changeset intended for the update stream that comes out of Adam's monster work Cleanup.sar. I am working through it alphabetically. This update is comprised of Adam's first two changesets:
- AAAMultipleSoundSystems.3.cs
- DSASoundCleanup.1.cs
...rewritten quite a lot:
- Renamed SoundSystem to SoundService
- Renamed BadSoundSystem to DummySoundSystem.
- Renamed GoodSoundSystem to BaseSoundSystem.
- Move DummySoundSystem and AbstractSoundSystem to System-Support
- Kept references to the recently introduced Beeper as is, Beeper is now
integrated on top of SoundService.
- Tweaked Beeper with simplifications and more comments etc.
- Moved general checks of Preferences soundsEnabled into
Dummy/BaseSoundSystem, seems smart!
- Added a playSoundNamedOrBeep: method
- Added a base class AbstractSoundSystem
- Added class comments for all new classes.
- Threw in the DSASoundCleanup into this changeset since it also has to
do with sound, preamble below.
- Plus probably a bunch more little things.
Lets get this one in because cleaning code rot isn't fun. :) /Gsran Here follows original preambles: Preamble from AAAMultipleSoundSystems:: There are lots of places in the image that play sounds but shouldn't really depend on the sound system; if sound support isn't present, they should still be able to do their jobs (just a little more quietly :). This changeset adds a class called SoundSystem, so that we can say things like: SoundSystem default playSoundNamed: 'croak'. Preamble from AAAMultipleSoundSystems:: The DigitalSignatureAlgorithm class uses the sound system for some sort of randomness-generating thingy. This changeset is a half-assed attempt to remove this dependency, so that we can eventually create images without sound support.
5748TTCfontNameWPointSize-nk -- Ned Konz -- 12 February 2004 Fix for missing method.
5749setClassSelPackagePane-avi -- Avi Bryant -- 21 February 2004 Browser>>setClass:selector: now uses #selectCategoryForClass: so that it works properly from the PackagePaneBrowser as well. This fixes the bug with out of bounds errors when defining new classes in the PackagePaneBrowser that was caused by update 5487."
5750EventRecPlayback-los -- Lothar Schenk -- 26 February 2004 Image: 3.7a Clicking on a tape in a Filelist that was recorded with the EventRecorderMorph (e.g. EventRecorder.tape) and then choosing the 'open for playback' button results in a walkback: 'MessageNotUnderstood: EventRecorderMorph>>rewind'. The reason is this call in EventRecorderMorph class>>openTapeFromFile: openTapeFromFile: fullName (EventRecorderMorph new readTape: fullName) rewind openInWorld EventRecorderMorph has no 'rewind' method or anything resembling it. Leaving out the call to 'rewind' seems to work fine (also plausible, considering that the tape has just been read in from the file). The attached change set contains a corresponding patch. Regards, Lothar
5751CategoryDefaultName-dgd -- Diego Gomez Deck DiegoGomezDeck@ConsultAr.com -- 25 February 2004 better default for category name (the selector is used instead of #none). useful for etoys translation using Babel.
5752MPEGeToyVocab-dgd -- Diego Gomez Deck DiegoGomezDeck@ConsultAr.com -- 16 February 2004 Export the current funcionality in MPEGMorph to eToys environment. The motivation is to improve the 'Active Essay' features of squeak from eToys level. Now you can play, stop and rewind; read/modify the volume and the position; change the repeat option and ask is the move/sound is running. See an example of use at: http://swiki.agro.uba.ar/small_land/uploads/1/video_from_etoys.jpeg
5753SkipListClassComment-klc
5754BrowseComprsdCodeFiles-nk -- Ned Konz -- 17 February 2004 Adds the ability to open a FileContentsBrowser on the contents of a compressed stream, both from the FileList and from the BFAV.
5755beginsEndsWith-bp -- Bernhard Pieber -- 21 February 2004 Implements beginsWith: and endsWith: for all SequenceableCollections, not only for Strings."
5756testBeginsEndsWith-fbs
5757MorphicTextEditorRegistry -- Adam Spitz -- 11 February 2004 Creates a kind of AppRegistry called MorphicTextEditor. Installs PluggableTextMorph as the default one. (The SVI package, for example, could register itself as another kind of MorphicTextEditor. This would allow programs to be SVI-compliant simply by writing 'MorphicTextEditor default' instead of 'PluggableTextMorph'.)"
5758PNGReadWriterV7 -- Andreas Raab & Ned Konz -- 10 February 2004 Provide PNGReadWriter with the ability to write files. In addition, fix some issues with transparency in PNGs which was not handled correctly. v2: Vastly improved version. Includes a test suite which ensures that we can use PNG consistently to save and load Squeak forms. v3: 2/12/2004
- Fixed CRC storage
- Added CRC validation for reading
- Provide logging for test images
- Attempt to fix byte-sex problem
v4: Some fixes for the PNG reading and writing:
- don't crash Squeak when performing tests (fixed in Zlib writer).
- generate Adler32 checksum in compressed image chunks so other programs
can read Squeak's PNG files.
- verify Adler32 checksum in compressed image chunks to detect
corruption.
- modify test suite so that if you have the PngSuite.zip installed we
also check for detection of corrupted files. v5:
- Fixed big endian color problems (thanks to Avi)
- Added more tests
v6:
- Fixed final swizzle problems for big endian machines
v7 (NK):
- Fixed gzip CRC generation.
5759KCP185SpaceUsedFix -- stephane ducasse -- 1 February 2004 clema spaceUsed implementation so that we can know it on Behavior instances too and avoid the hardcoded isKindO: Metaclass so that other extensions can use it too."
5760KCP190MoveUIInteraction -- stephane ducasse -- 1 February 2004 move the methods letUserReclassify: and categoryFromUserWithPrompt: aPrompt from ClassDescription to CodeHolder the only client of this method. This way we can have a better layered system...let us hope slowly.
5761KCP195MoveUpZapAll -- stephane ducasse -- 1 February 2004 Behavior is not an abstract class. So redefine and move zapAllMethods from ClassDescription to Behavior. (removed testZapMethods for now because there is no BehaviorTest class. -dew)"
5762chronology-tests1 -- Brent Pinkney and Tom Koenig -- 16 February 2004 These are the Chronology Tests, done by Brent Pinkney and Tom Koenig. The changeset adds some good utility methods to ClassTestCase for ensuring full test coverage. md: this is a fileout of Chronology-b-Tests-SqueakAndSmalltalk80Compatibility Chronology-h-Tests-NewGeneration Chronology-k-Tests-Cleanup Tom did more tests, these will follow in an additional changeset"
5763GenieRenameFor37-nk -- Ned Konz -- 20 February 2004 This CS adds all the genie- method categories to the Genie package so we can apply Monticello changes. This preamble does the basic category renaming needed. The rest of the CS changes a few other methods, primarily ones that shouldn't be in Genie. 20 Feb: removed inspector. | pi bad | SystemOrganization renameCategory: 'Tests-Genie-Engine' toBe: 'Genie-Tests'. pi _ PackageInfo named: 'Genie'. bad _ OrderedCollection new. (ClassDescription allSubInstances reject: [ :ea | ea isObsolete ]) do: [ :cls | | org | org _ cls organization. org categories do: [ :cat | (pi includesClass: cls) ifFalse: [ ( cat asLowercase beginsWith: 'genie') ifTrue: [ (org listAtCategoryNamed: cat) do: [ :sel | org classify: sel under: ('*', cat). ChangeSet current adoptSelector: sel forClass: cls. bad add: (cls -> sel) ]. org removeEmptyCategories ]] ifTrue: [ ( cat asLowercase beginsWith: '*genie-') ifTrue: [ | newName | newName _ cat copyFrom: 8 to: cat size. newName isEmpty ifTrue: [ newName _ cat copyFrom: 2 to: cat size ]. (org listAtCategoryNamed: cat) do: [ :sel | org classify: sel under: newName. ChangeSet current adoptSelector: sel forClass: cls. bad add: (cls -> sel) ]. org removeEmptyCategories ]. ]. ]]. "(bad explore) dependents first setLabel: 'moved methods'"
5764GenieRemoval-nk -- Ned Konz -- 14 February 2004 Removes Genie so that it can be loaded later as a package. Tested with 3.7a-5707. HandMorph allSubInstancesDo: [ :ea | ea disableGenie ]. Morph allSubInstancesDo: [ :ea | ea gestureDictionaryOrName: nil ]. FileList unregisterFileReader: CRRecognizer.
<This automated message brought to you by the UpdateIncorporationTool.> <See the UpdateIncorporationTool package on SqueakMap for details.>
squeak-dev@lists.squeakfoundation.org