[squeak-dev] The Trunk: System-ul.932.mcz

Eliot Miranda eliot.miranda at gmail.com
Tue Mar 14 00:59:54 UTC 2017


On Mon, Mar 13, 2017 at 5:59 PM, Levente Uzonyi <leves at caesar.elte.hu>
wrote:

> Did it help?
>

Post 17033:
4575 run, 4304 passes, 108 expected failures, 30 failures, 133 errors, 0
unexpected passes
Post 17033 plus inbox Files-ul.168
4549 run, 4405 passes, 105 expected failures, 27 failures, 12 errors, 0
unexpected passes

Looks like you should move  Files-ul.168 to trunk asap.


> Levente
>
> On Mon, 13 Mar 2017, Eliot Miranda wrote:
>
>
>>
>> On Mon, Mar 13, 2017 at 5:30 PM, Levente Uzonyi <leves at caesar.elte.hu>
>> wrote:
>>       I have updated Files-ul.168 to the Inbox with those methods reverted
>>       along with a third one.
>>
>>
>> Thanks man!
>>
>>
>>
>>       Levente
>>
>>       On Tue, 14 Mar 2017, Levente Uzonyi wrote:
>>
>>             Hi Eliot,
>>
>>             all of those new errors seem to be related to files, so I
>> presume they are related to the changes of the Files package:
>>
>>             "
>>             FileDirectory changes:
>>
>>             - implemented #directoryContentsFor:do: in all subclasses of
>> FileDirectory, where #directoryContentsFor: was implemented
>>             - introduced #entriesDo: based on the method above
>>             - rewrote methods sending #entries to use #entriesDo: instead
>>             - simplified DirectoryEntryDirectory >> #asFileDirectory
>>             - introduced #hasEntries
>>             - #directoryEntryForName: signals InvalidDirectoryError as
>> suggested by a comment from 2007
>>             - other minor optimizations
>>             "
>>
>>             I suspect that either the DirectoryEntryDirectory >>
>> #asFileDirectory or FileDirectory >> #directoryEntryForName: is responsible
>> for the errors, but it should be easy to find the cause
>>             by debugging any of those new errors.
>>
>>             Levente
>>
>>             On Mon, 13 Mar 2017, Eliot Miranda wrote:
>>
>>                   Hi Levente,
>>
>>                   On Mon, Mar 13, 2017 at 4:44 PM, Levente Uzonyi <
>> leves at caesar.elte.hu> wrote:
>>                         Hi Eliot,
>>
>>                         I ran the tests 3 times and haven't seen any new
>> test failures or errors.
>>                         However there are some other changes in the pack
>> unrelated to SortedCollection, which I couldn't test on platforms other
>> than Linux, but may behave differently on
>>                   other platforms (e.g. changes in
>>                         Files).
>>
>>
>>                   First of all let me apologise; my stats were wrong.  I
>> see
>>                       4527 run, 4383 passes, 106 expected failures, 26
>> failures, 12 errors, 0 unexpected passes
>>                   before whack-a-mole and
>>                       4575 run, 4308 passes, 108 expected failures, 26
>> failures, 133 errors, 0 unexpected passes
>>                   after.  And this is on Mac OS X using the 64-bit VM and
>> image.  Here's the pre-whack-a-mole full report
>>
>>
>>
>>                         Can you send me the list of failures and errors
>> you see?
>>
>>
>>                   Pre whack-a-mole
>>                   failures: {AllocationTest>>#testOutOfMemorySignal .
>> ClassVarScopeTest>>#testDefinedClassMethodInGrandchild .
>> ClassVarScopeTest>>#testDefinedInstanceMethodInChild .
>>                   ClassVarScopeTest>>#testDefinedInstanceMethodInGrandchild
>> . ClassVarScopeTest>>#testInheritedClassMethodInGrandchild .
>>                   ClassVarScopeTest>>#testInheritedInstanceMethodInGrandchild
>> .
>>                   DateAndTimeLeapTest>>#testAsSeconds .
>> DecompilerTests>>#testDecompilerInClassesENtoEZ .
>> DecompilerTests>>#testDecompilerInClassesPAtoPM .
>>                   IslandVMTweaksTestCase>>#testForgivingPrims .
>>                   MorphicUIManagerTest>>#testShowAllBinParts .
>> MultiByteFileStreamTest>>#testLineEndConversion .
>> PackageDependencyTest>>#testEtoys . PackageDependencyTest>>#testMorphic .
>>                   PackageDependencyTest>>#testSound .
>>                   PackageDependencyTest>>#testSystem .
>> ReleaseTest>>#testClassesSystemCategory . ReleaseTest>>#testMethodsWithUnboundGlobals
>> . ReleaseTest>>#testNoObsoleteClasses .
>>                   ReleaseTest>>#testUndeclared .
>>                   SocketTest>>#testSocketReuse . SocketTest>>#testUDP .
>> UnixProcessAccessorTestCase>>#testRedirectStdOutTo .
>> UnixProcessTestCase>>#testCatAFile .
>>                   UnixProcessTestCase>>#testRunCommand .
>>                   WebClientServerTest>>#testListenOnInterface}
>>
>>                   errors: {BitmapStreamTests>>#testMatrixTransform2x3WithImageSegment
>> . BitmapStreamTests>>#testShortIntegerArrayWithImageSegment .
>>                   BitmapStreamTests>>#testShortPointArrayWithImageSegment
>> .
>>                   BitmapStreamTests>>#testShortRunArrayWithImageSegment
>> . BitmapStreamTests>>#testWordArrayWithImageSegment .
>> DecompilerTests>>#testDecompilerInClassesSAtoSM .
>>                   LangEnvBugs>>#testIsFontAvailable .
>>                   LangEnvBugs>>#testIsFontAvailable .
>> LocaleTest>>#testIsFontAvailable . SqueakSSLTest>>#testSSLSockets .
>> SqueakSSLTest>>#testSocketAccept .
>>                   SqueakSSLTest>>#testSocketConnect}
>>
>>                   Post whack-a-mole
>>                   failures: {AllocationTest>>#testOutOfMemorySignal .
>> ClassVarScopeTest>>#testDefinedInstanceMethodInChild .
>> ClassVarScopeTest>>#testDefinedInstanceMethodInGrandchild .
>>                   ClassVarScopeTest>>#testInheritedClassMethodInGrandchild
>> . ClassVarScopeTest>>#testInheritedInstanceMethodInGrandchild .
>> DateAndTimeLeapTest>>#testAsSeconds .
>>                   DecompilerTests>>#testDecompilerInClassesENtoEZ .
>>                   DecompilerTests>>#testDecompilerInClassesPAtoPM .
>> DecompilerTests>>#testDecompilerInClassesTAtoTM .
>> MorphicUIManagerTest>>#testShowAllBinParts .
>>                   MultiByteFileStreamTest>>#testLineEndConversion .
>>                   PackageDependencyTest>>#testEtoys .
>> PackageDependencyTest>>#testMorphic . PackageDependencyTest>>#testSUnitGUI
>> . PackageDependencyTest>>#testSound .
>>                   PackageDependencyTest>>#testSystem .
>>                   PackageDependencyTest>>#testTools .
>> ReleaseTest>>#testClassesSystemCategory . ReleaseTest>>#testMethodsWithUnboundGlobals
>> . ReleaseTest>>#testNoObsoleteClasses .
>>                   ReleaseTest>>#testSuperSubclassReferences .
>>                   ReleaseTest>>#testUndeclared .
>> SocketTest>>#testSocketReuse . SocketTest>>#testUDP .
>> UnixProcessTestCase>>#testCatAFile . WebClientServerTest>>#testList
>> enOnInterface}
>>
>>                   errors: {BitmapStreamTests>>#t
>> estMatrixTransform2x3WithImageSegment . BitmapStreamTests>>#testShortIntegerArrayWithImageSegment
>> .
>>                   BitmapStreamTests>>#testShortPointArrayWithImageSegment
>> .
>>                   BitmapStreamTests>>#testShortRunArrayWithImageSegment
>> . BitmapStreamTests>>#testWordArrayWithImageSegment .
>> BrowserTest>>#testFileOutMessageCategories .
>>                   DecompilerTests>>#testDecompilerInClassesSAtoSM .
>>                   FileDirectoryTest>>#testAttemptExistenceCheckWhenFile
>> . FileDirectoryTest>>#testDirectoryExists .
>> FileDirectoryTest>>#testDirectoryExistsWhenLikeNamedFileExists .
>>                   FileDirectoryTest>>#testNonExistentDirectory
>>                   . FileDirectoryTest>>#testOldFileOrNoneNamed .
>> FileListTest>>#testServicesForFileEnding . FileStreamTest>>#testCachingNextChunkPut
>> .
>>                   FileStreamTest>>#testCachingNextChunkPut .
>>                   FileStreamTest>>#testDetectFileDo .
>> FileStreamTest>>#testFileTruncation . FileStreamTest>>#testFileTruncation
>> . FileStreamTest>>#testNextChunkOutOfBounds .
>>                   FileStreamTest>>#testNextChunkOutOfBounds .
>>                   FileStreamTest>>#testNextLine .
>> FileStreamTest>>#testPositionPastEndIsAtEnd .
>> FileStreamTest>>#testReadIntoStartingAtCount .
>> LangEnvBugs>>#testIsFontAvailable .
>>                   LangEnvBugs>>#testIsFontAvailable .
>>                   LocaleTest>>#testIsFontAvailable .
>> MCDictionaryRepositoryTest>>#testAddAndLoad .
>> MCDictionaryRepositoryTest>>#testIncludesName .
>>                   MCDictionaryRepositoryTest>>#testStoreAndLoad .
>>                   MCDirectoryRepositoryTest>>#testAddAndLoad .
>> MCDirectoryRepositoryTest>>#testIncludesName .
>> MCDirectoryRepositoryTest>>#testStoreAndLoad .
>>                   MCMczInstallerTest>>#testInstallFromFile .
>>                   MCMczInstallerTest>>#testInstallFromFile .
>> MCMczInstallerTest>>#testInstallFromStream .
>> MCWorkingCopyTest>>#testAncestorMerge . MCWorkingCopyTest>>#testBackport
>> .
>>                   MCWorkingCopyTest>>#testDoubleRepeatedMerge .
>>                   MCWorkingCopyTest>>#testMergeIntoImageWithNoChanges .
>> MCWorkingCopyTest>>#testMergeIntoUnmodifiedImage .
>> MCWorkingCopyTest>>#testOptimizedLoad .
>>                   MCWorkingCopyTest>>#testRedundantMerge .
>>                   MCWorkingCopyTest>>#testRepeatedMerge .
>> MCWorkingCopyTest>>#testSelectiveBackport .
>> MCWorkingCopyTest>>#testSimpleMerge . MCWorkingCopyTest>>#testSnapshotAndLoad
>> .
>>                   MultiByteFileStreamTest>>#testAsciiBackChunk
>>                   . MultiByteFileStreamTest>>#testBinaryUpTo .
>> MultiByteFileStreamTest>>#testLineEnding . MultiByteFileStreamTest>>#testLineEndingChunk
>> .
>>                   MultiByteFileStreamTest>>#testLineEndingWithWideStrings
>> .
>>                   MultiByteFileStreamTest>>#testNextLine .
>> MultiByteFileStreamTest>>#testNextPutAllStartingAt .
>> MultiByteFileStreamTest>>#testNonAsciiBackChunk .
>>                   PNGReadWriterTest>>#test16Bit .
>>                   PNGReadWriterTest>>#test16BitDisplay .
>> PNGReadWriterTest>>#test16BitReversed . PNGReadWriterTest>>#test1Bit .
>> PNGReadWriterTest>>#test1BitDisplay .
>>                   PNGReadWriterTest>>#test1BitReversed .
>>                   PNGReadWriterTest>>#test2Bit .
>> PNGReadWriterTest>>#test2BitDisplay . PNGReadWriterTest>>#test2BitReversed
>> . PNGReadWriterTest>>#test32Bit .
>>                   PNGReadWriterTest>>#test32BitDisplay .
>>                   PNGReadWriterTest>>#test32BitReversed .
>> PNGReadWriterTest>>#test4Bit . PNGReadWriterTest>>#test4BitDisplay .
>> PNGReadWriterTest>>#test4BitReversed .
>>                   PNGReadWriterTest>>#test8Bit .
>>                   PNGReadWriterTest>>#test8BitDisplay .
>> PNGReadWriterTest>>#test8BitReversed . PNGReadWriterTest>>#testAlphaCoding
>> . PNGReadWriterTest>>#testBlack16 .
>>                   PNGReadWriterTest>>#testBlack32 .
>>                   PNGReadWriterTest>>#testBlack8 .
>> PNGReadWriterTest>>#testBlue16 . PNGReadWriterTest>>#testBlue32 .
>> PNGReadWriterTest>>#testBlue8 . PNGReadWriterTest>>#testGreen16 .
>>                   PNGReadWriterTest>>#testGreen32 .
>>                   PNGReadWriterTest>>#testGreen8 .
>> PNGReadWriterTest>>#testRed16 . PNGReadWriterTest>>#testRed32 .
>> PNGReadWriterTest>>#testRed8 . SqueakSSLTest>>#testSSLSockets .
>>                   SqueakSSLTest>>#testSocketAccept .
>>                   SqueakSSLTest>>#testSocketConnect .
>> SystemChangeFileTest>>#testCategoryAdded . SystemChangeFileTest>>#testCategoryAdded
>> . SystemChangeFileTest>>#testCategoryAddedBefore .
>>                   SystemChangeFileTest>>#testCategoryAddedBefore .
>> SystemChangeFileTest>>#testCategoryRemoved .
>> SystemChangeFileTest>>#testCategoryRemoved .
>>                   SystemChangeFileTest>>#testCategoryRenamed .
>>                   SystemChangeFileTest>>#testCategoryRenamed .
>> SystemChangeFileTest>>#testClassAdded . SystemChangeFileTest>>#testClassAdded
>> . SystemChangeFileTest>>#testClassCommented .
>>                   SystemChangeFileTest>>#testClassCommented .
>> SystemChangeFileTest>>#testClassModified . SystemChangeFileTest>>#testClassModified
>> .
>>                   SystemChangeFileTest>>#testClassRecategorized .
>>                   SystemChangeFileTest>>#testClassRecategorized .
>> SystemChangeFileTest>>#testClassRemoved . SystemChangeFileTest>>#testClassRemoved
>> . SystemChangeFileTest>>#testClassRenamed
>>                   .
>>                   SystemChangeFileTest>>#testClassRenamed .
>> SystemChangeFileTest>>#testExpressionDoIt .
>> SystemChangeFileTest>>#testExpressionDoIt .
>> SystemChangeFileTest>>#testMethodAdded .
>>                   SystemChangeFileTest>>#testMethodAdded .
>> SystemChangeFileTest>>#testMethodModified .
>> SystemChangeFileTest>>#testMethodModified .
>>                   SystemChangeFileTest>>#testMethodRecategorized .
>>                   SystemChangeFileTest>>#testMethodRecategorized .
>> SystemChangeFileTest>>#testMethodRemoved . SystemChangeFileTest>>#testMethodRemoved
>> .
>>                   SystemChangeFileTest>>#testProtocolAdded .
>>                   SystemChangeFileTest>>#testProtocolAdded .
>> SystemChangeFileTest>>#testProtocolDefault .
>> SystemChangeFileTest>>#testProtocolDefault .
>>                   SystemChangeFileTest>>#testProtocolRemoved .
>>                   SystemChangeFileTest>>#testProtocolRemoved .
>> SystemChangeFileTest>>#testProtocolRenamed .
>> SystemChangeFileTest>>#testProtocolRenamed .
>>                   TraitFileOutTest>>#testCondenseChanges .
>>                   TraitFileOutTest>>#testFileOutCategory .
>> TraitFileOutTest>>#testFileOutTrait . UnixProcessAccessorTestCase>>#testDupTo
>> . UnixProcessAccessorTestCase>>#testRedirectStdOutTo
>>                   .
>>                   UnixProcessTestCase>>#testCatFromFileToFiles .
>> UnixProcessTestCase>>#testRunCommand}
>>
>>                   And all those duplications confuse me.  And the sources
>> seem to have been killed by running the tests.
>>
>>                   HTH
>>
>>
>>
>>
>>                         Levente
>>
>>                         On Mon, 13 Mar 2017, Eliot Miranda wrote:
>>
>>                               Hi Levente,
>>                                   the SortedCollection whack-a-mole [ :-)
>> :-) ] update appears to have caused a significant uptick in Squeak trunk
>> test suite errors, from about 26 to over
>>                   80.  Are you aware of
>>                               this?  Are you addressing
>>                               the errors?
>>
>>                               I was a little bit inconvenienced by this
>> because I was testing Slang changes to the VM and mistook these errors as
>> evidence of bugs in my Slang changes.
>>                   That's life and I'm happy to
>>                               accept the situation.
>>                               But I would like to see the errors come
>> back down to around 26 or less :-)
>>
>>                               Cheers
>>                               Eliot
>>
>>                               On Mon, Mar 13, 2017 at 8:00 AM, <
>> commits at source.squeak.org> wrote:
>>                                     Levente Uzonyi uploaded a new version
>> of System to project The Trunk:
>>                                     http://source.squeak.org/trunk
>> /System-ul.932.mcz
>>
>>                                     ==================== Summary
>> ====================
>>
>>                                     Name: System-ul.932
>>                                     Author: ul
>>                                     Time: 13 March 2017, 3:10:17.453603 pm
>>                                     UUID: 7a305614-9a4b-47f8-a68f-79fcf6
>> f90a80
>>                                     Ancestors: System-eem.931
>>
>>                                     - SortedCollection Whack-a-mole
>>                                     - introduced #classVarNames and
>> #classInstVarNames in PseudoClass, because they had senders
>>                                     - removed #startTimerInterruptWatcher
>> from messages to keep lists
>>
>>                                     =============== Diff against
>> System-eem.931 ===============
>>
>>                                     Item was changed:
>>                                       ----- Method: ChangeSet
>> class>>traitsOrder: (in category 'fileIn/Out') -----
>>                                       traitsOrder: aCollection
>>                                             "Answer an OrderedCollection.
>> The traits
>>                                             are ordered so they can be
>> filed in."
>>
>>                                     +       ^aCollection sorted: [:t1 :t2
>> |
>>                                     -       |  traits |
>>                                     -       traits := aCollection
>> asSortedCollection: [:t1 :t2 |
>>                                                     (t1 isBaseTrait and:
>> [t1 classTrait == t2]) or: [
>>                                                             (t2
>> traitComposition allTraits includes: t1) or: [
>>                                     +                               (t1
>> traitComposition allTraits includes: t2) not]]]!
>>                                     -                               (t1
>> traitComposition allTraits includes: t2) not]]].
>>                                     -       ^traits asArray!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> ChangeSet>>changedMessageList (in category 'method changes') -----
>>                                       changedMessageList
>>                                             "Used by a message set
>> browser to access the list view information."
>>
>>                                             | messageList |
>>                                             messageList :=
>> OrderedCollection new.
>>                                             changeRecords associationsDo:
>> [:clAssoc | | classNameInParts classNameInFull |
>>                                                     classNameInFull :=
>> clAssoc key asString.
>>                                                     classNameInParts :=
>> classNameInFull findTokens: ' '.
>>
>>                                                     (clAssoc value
>> allChangeTypes includes: #comment) ifTrue:
>>                                                             [messageList
>> add:
>>
>> (MethodReference new
>>
>>   setClassSymbol: classNameInParts first asSymbol
>>
>>   classIsMeta: false
>>
>>   methodSymbol: #Comment
>>
>>   stringVersion: classNameInFull, ' Comment')].
>>
>>                                                     clAssoc value
>> methodChangeTypes associationsDo: [:mAssoc |
>>                                                             (#(remove
>> addedThenRemoved) includes: mAssoc value) ifFalse:
>>
>> [messageList add:
>>
>>   (MethodReference new
>>
>>           setClassSymbol: classNameInParts first asSymbol
>>
>>           classIsMeta: classNameInParts size > 1
>>
>>           methodSymbol: mAssoc key
>>
>>           stringVersion: classNameInFull, ' ' , mAssoc key)]]].
>>                                     +       ^ messageList sort!
>>                                     -       ^ messageList asSortedArray!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> ChangeSet>>checkForUncommentedClasses (in category 'fileIn/Out') -----
>>                                       checkForUncommentedClasses
>>                                             "Check to see if any classes
>> involved in this change set do not have class comments.  Open up a browser
>> showing all such classes."
>>
>>                                             | aList |
>>                                             aList := self changedClasses
>>                                                     select:
>>                                                             [:aClass |
>> aClass theNonMetaClass organization classComment isEmptyOrNil]
>>                                                     thenCollect:
>>                                                             [:aClass  |
>> aClass theNonMetaClass name].
>>
>>                                             aList size > 0
>>                                                     ifFalse:
>>                                                             [^ self
>> inform: 'All classes involved in this change set have class comments']
>>                                                     ifTrue:
>>                                     +                       [ToolSet
>> openClassListBrowser: aList asSet sorted title: 'Classes in Change Set ',
>> self name, ': classes that lack class
>>                   comments']!
>>                                     -                       [ToolSet
>> openClassListBrowser: aList asSet asSortedArray title: 'Classes in Change
>> Set ', self name, ': classes that lack class
>>                   comments']!
>>
>>                                     Item was changed:
>>                                       ----- Method: ChangeSet>>fileOutOn:
>> (in category 'fileIn/Out') -----
>>                                       fileOutOn: stream
>>                                             "Write out all the changes
>> the receiver knows about"
>>
>>                                             | classList traits classes
>> traitList list |
>>                                             (self isEmpty and: [stream
>> isKindOf: FileStream])
>>                                                     ifTrue: [self inform:
>> 'Warning: no changes to file out'].
>>
>>                                             traits := self changedClasses
>> reject: [:each | each isBehavior].
>>                                             classes := self
>> changedClasses select: [:each | each isBehavior].
>>                                             traitList := self class
>> traitsOrder: traits asOrderedCollection.
>>                                             classList := self class
>> superclassOrder: classes asOrderedCollection.
>>                                             list := OrderedCollection new
>>                                                     addAll: traitList;
>>                                                     addAll: classList;
>>                                                     yourself.
>>
>>                                             "First put out rename, max
>> classDef and comment changes."
>>                                             list do: [:aClass | self
>> fileOutClassDefinition: aClass on: stream].
>>
>>                                             "Then put out all the method
>> changes"
>>                                             list do: [:aClass | self
>> fileOutChangesFor: aClass on: stream].
>>
>>                                             "Finally put out removals,
>> final class defs and reorganization if any"
>>                                             list reverseDo: [:aClass |
>> self fileOutPSFor: aClass on: stream].
>>
>>                                     +       self classRemoves sort do:
>>                                     -       self classRemoves
>> asSortedCollection do:
>>                                                     [:aClassName | stream
>> nextChunkPut: 'Smalltalk removeClassNamed: #', aClassName; cr].!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> InternalTranslator>>fileOutOn:keys:withBOM: (in category
>> 'fileIn/fileOut') -----
>>                                       fileOutOn: aStream keys: keys
>> withBOM: bomFlag
>>                                             "self current fileOutOn:
>> Transcript. Transcript endEntry"
>>                                             self fileOutHeaderOn: aStream
>> withBOM: bomFlag.
>>                                             (keys
>>                                     +               ifNil: [generics keys
>> sort])
>>                                     -               ifNil: [generics keys
>> asSortedCollection])
>>                                                     do: [:key | self
>>
>> nextChunkPut: (generics associationAt: key)
>>                                                                     on:
>> aStream].
>>                                             keys
>>                                                     ifNil: [self
>> untranslated
>>                                                                     do:
>> [:each | self nextChunkPut: each -> '' on: aStream]].
>>                                             aStream nextPut: $!!;
>>                                                      cr!
>>
>>                                     Item was changed:
>>                                       ----- Method: MczInstaller>>install
>> (in category 'installation') -----
>>                                       install
>>                                     +
>>                                     -       | sources |
>>                                             zip := ZipArchive new.
>>                                             zip readFrom: stream.
>>                                             self checkDependencies
>> ifFalse: [^false].
>>                                             self recordVersionInfo.
>>                                     +       (zip membersMatching:
>> 'snapshot/*')
>>                                     +               sort: [:a :b | a
>> fileName < b fileName];
>>                                     +               do: [:src | self
>> installMember: src].!
>>                                     -       sources := (zip
>> membersMatching: 'snapshot/*')
>>                                     -
>>  asSortedCollection: [:a :b | a fileName < b fileName].
>>                                     -       sources do: [:src | self
>> installMember: src].!
>>
>>                                     Item was changed:
>>                                       ----- Method: Preferences
>> class>>giveHelpWithPreferences (in category 'support') -----
>>                                       giveHelpWithPreferences
>>                                             "Open up a workspace with
>> explanatory info in it about Preferences"
>>
>>                                             | aString |
>>                                             aString := String
>> streamContents: [:aStream |
>>                                                     aStream nextPutAll:
>>
>>                                       'Many aspects of the system are
>> governed by the settings of various "Preferences".
>>
>>                                       Click on any of brown tabs at the
>> top of the panel to see all the preferences in that category.
>>                                       Or type in to the box above the
>> Search button, then hit Search, and all Preferences matching whatever you
>> typed in will appear in the "search results"
>>                   category.  A preference
>>                               is considered to
>>                                     match your search if either its name
>> matches the characters *or* if anything in the balloon help provided for
>> the preferences matches the search text.
>>
>>                                       To find out more about any
>> particular Preference, hold the mouse over it for a moment and balloon help
>> will appear.  Also, a complete list of all the
>>                   Preferences, with
>>                               documentation for each, is
>>                                     included below.
>>
>>                                       Preferences whose names are in
>> shown in bold in the Preferences Panel are designated as being allowed to
>> vary from project to project; those whose name
>>                   are not in bold are
>>                               "global", which is to
>>                                     say, they apply equally whatever
>> project you are in.
>>
>>                                       Click on the name of any preference
>> to get a menu which allows you to *change* whether the preference should
>> vary from project to project or should be
>>                   global, and also allows
>>                               you to browse all
>>                                     the senders of the preference, and to
>> discover all the categories under which the preference has been classified,
>> and to be handed a button that you can
>>                   drop wherever you please
>>                               that will control
>>                                     the preference.
>>
>>                                       If you like all your current
>> Preferences settings, you may wish to hit the "Save Current Settings as my
>> Personal Preferences" button.  Once you have
>>                   done that, you can at any
>>                               point in the future
>>                                     hit "Restore my Personal Preferences"
>> and all your saved settings will get restored immediately.
>>
>>                                       Also, you can use "themes" to set
>> multiple preferences all at once; click on the "change theme..." button in
>> the Squeak flap or in the Preferences
>>                   panel, or seek out the themes
>>                               item in the
>>                                     Appearance menu.' translated.
>>
>>                                             aStream cr; cr; nextPutAll:
>> '-----------------------------------------------------------------';
>>                                                     cr; cr; nextPutAll:
>> 'Alphabetical listing of all Preferences' translated; cr; cr.
>>                                     +    (Preferences allPreferences
>> sort: [:a :b | a name < b name]) do:
>>                                     -    (Preferences allPreferences
>> asSortedCollection: [:a :b | a name < b name]) do:
>>                                             [:pref | | aHelpString |
>>                                                     aStream nextPutAll:
>> pref name; cr.
>>                                                     aHelpString := pref
>> helpString translated.
>>                                                     (aHelpString
>> beginsWith: pref name) ifTrue:
>>                                                             [aHelpString
>> := aHelpString copyFrom: (pref name size ) to: aHelpString size].
>>                                                     aHelpString :=
>> (aHelpString copyReplaceAll: String cr with: ' ')  copyWithout: Character
>> tab.
>>                                                     aStream nextPutAll:
>> aHelpString capitalized.
>>                                                     (aHelpString isEmpty
>> or: [aHelpString last == $.]) ifFalse: [aStream nextPut: $.].
>>                                               aStream cr; cr]].
>>
>>                                             UIManager default edit:
>> aString label: 'About Preferences' translated
>>
>>                                       "Preferences
>> giveHelpWithPreferences"!
>>
>>                                     Item was changed:
>>                                       ----- Method: Project
>> class>>allNames (in category 'utilities') -----
>>                                       allNames
>>                                     +
>>                                     +       ^(self allProjects collect:
>> [:p | p name]) sort: [:n1 :n2 | n1 caseInsensitiveLessOrEqual: n2]!
>>                                     -       ^ (self allProjects collect:
>> [:p | p name]) asSortedCollection: [:n1 :n2 | n1 asLowercase < n2
>> asLowercase]!
>>
>>                                     Item was changed:
>>                                       ----- Method: Project
>> class>>allNamesAndProjects (in category 'utilities') -----
>>                                       allNamesAndProjects
>>                                     +
>>                                     +       ^(self allProjects
>>                                     +               sorted: [ :p1 :p2 |
>> p1 name caseInsensitiveLessOrEqual: p2 name ])
>>                                     +               replace: [ :aProject
>> | Array with: aProject name with: aProject ]!
>>                                     -       ^ (self allProjects
>> asSortedCollection: [:p1 :p2 | p1 name asLowercase < p2 name asLowercase])
>> collect:
>>                                     -               [:aProject | Array
>> with: aProject name with: aProject]!
>>
>>                                     Item was changed:
>>                                       ----- Method: Project class>>sweep:
>> (in category 'squeaklet on server') -----
>>                                       sweep: aServerDirectory
>>                                             | repository list parts ind
>> entry projectName versions |
>>                                             "On the server, move all but
>> the three most recent versions of each Squeaklet to a folder called 'older'"
>>                                             "Project sweep:
>> ((ServerDirectory serverNamed: 'DaniOnJumbo') clone
>>
>> directory: '/vol0/people/dani/Squeaklets/2.7')"
>>
>>                                             "Ensure the 'older' directory"
>>                                             (aServerDirectory
>> includesKey: 'older')
>>                                                     ifFalse:
>> [aServerDirectory createDirectory: 'older'].
>>                                             repository :=
>> aServerDirectory clone directory: aServerDirectory directory, '/older'.
>>
>>                                             "Collect each name, and
>> decide on versions"
>>                                             list := aServerDirectory
>> fileNames.
>>                                             list isString ifTrue: [^ self
>> inform: 'server is unavailable' translated].
>>                                     +       list sort.
>>                                     -       list := list
>> asSortedCollection asOrderedCollection.
>>                                             parts := list collect: [:en |
>> Project parseProjectFileName: en].
>>                                             parts := parts select: [:en |
>> en third = 'pr'].
>>                                             ind := 1.
>>                                             [entry := list at: ind.
>>                                                     projectName := entry
>> first asLowercase.
>>                                                     versions :=
>> OrderedCollection new.  versions add: entry.
>>                                                     [(ind := ind + 1) >
>> list size
>>                                                             ifFalse:
>> [(parts at: ind) first asLowercase = projectName
>>
>> ifTrue: [versions add: (parts at: ind).  true]
>>
>> ifFalse: [false]]
>>                                                             ifTrue:
>> [false]] whileTrue.
>>                                                     aServerDirectory
>> moveYoungest: 3 in: versions to: repository.
>>                                                     ind > list size]
>> whileFalse.
>>                                       !
>>
>>                                     Item was added:
>>                                     + ----- Method:
>> PseudoClass>>classInstVarNames (in category 'accessing') -----
>>                                     + classInstVarNames
>>                                     +
>>                                     +       self realClass ifNotNil: [
>> :realClass | ^realClass instVarNames ].
>>                                     +       ^#()!
>>
>>                                     Item was added:
>>                                     + ----- Method:
>> PseudoClass>>classVarNames (in category 'accessing') -----
>>                                     + classVarNames
>>                                     +
>>                                     +       self realClass ifNotNil: [
>> :realClass | ^realClass classVarNames ].
>>                                     +       ^#()!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> SmalltalkImage>>presumedSentMessages (in category 'shrinking') -----
>>                                       presumedSentMessages   | sent |
>>                                       "Smalltalk presumedSentMessages"
>>
>>                                             "The following should be
>> preserved for doIts, etc"
>>                                             sent := IdentitySet new.
>>                                             #(compactSymbolTable
>> rebuildAllProjects
>>                                                     browseAllSelect:
>> lastRemoval
>>                                                     scrollBarValue:
>> vScrollBarValue: scrollBarMenuButtonPressed:
>>                                                     withSelectionFrom:
>> to: removeClassNamed:
>>                                                     dragon: hilberts:
>> mandala: web test3 factorial tinyBenchmarks benchFib
>>                                                     newDepth:
>> restoreAfter: zapAllMethods obsoleteClasses
>>
>> removeAllUnSentMessages abandonSources removeUnreferencedKeys
>>                                                     reclaimDependents
>> zapOrganization condenseChanges browseObsoleteReferences
>>
>> subclass:instanceVariableNames:classVariableNames:poolDictio
>> naries:category:
>>                                                     methodsFor:stamp:
>> methodsFor:stamp:prior: instanceVariableNames:
>>                                     +               unusedClasses) do:
>>                                     -
>>  startTimerInterruptWatcher unusedClasses) do:
>>                                                     [:sel | sent add:
>> sel].
>>                                             "The following may be sent by
>> perform: in dispatchOnChar..."
>>                                             Smalltalk at:
>> #ParagraphEditor ifPresent: [:paragraphEditor |
>>                                                     (paragraphEditor
>> classPool at: #CmdActions) asSet do:
>>                                                             [:sel | sent
>> add: sel].
>>                                                     (paragraphEditor
>> classPool at: #ShiftCmdActions) asSet do:
>>                                                             [:sel | sent
>> add: sel]].
>>                                             ^ sent!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> SmalltalkImage>>removeAllUnSentMessages (in category 'shrinking') -----
>>                                       removeAllUnSentMessages
>>                                             "Smalltalk
>> removeAllUnSentMessages"
>>                                             "[Smalltalk unusedClasses do:
>> [:c | (Smalltalk at: c) removeFromSystem].
>>                                             Smalltalk
>> removeAllUnSentMessages > 0] whileTrue."
>>                                             "Remove all implementations
>> of unsent messages."
>>                                             | sels n |
>>                                             sels := self systemNavigation
>> allUnSentMessages.
>>                                             "The following should be
>> preserved for doIts, etc"
>>                                             "needed even after
>> #majorShrink is pulled"
>>                                     +       #(#compactSymbolTable
>> #rebuildAllProjects #browseAllSelect:  #lastRemoval #scrollBarValue:
>> vScrollBarValue: #scrollBarMenuButtonPressed:
>>                   #withSelectionFrom: #to:
>>                               #removeClassNamed:
>>                                     #dragon: #hilberts: #mandala: #web
>> #test3 #factorial #tinyBenchmarks #benchFib #newDepth: #restoreAfter:
>> #zapAllMethods #obsoleteClasses
>>                   #removeAllUnSentMessages #abandonSources
>>                                     #removeUnreferencedKeys
>> #reclaimDependents #zapOrganization #condenseChanges
>> #browseObsoleteReferences
>>                               #subclass:instanceVariableName
>> s:classVariableNames:poolDictionaries:category:
>>                                     #methodsFor:stamp:
>> #methodsFor:stamp:prior: #instanceVariableNames: #unusedClasses )
>>                                     -       #(#compactSymbolTable
>> #rebuildAllProjects #browseAllSelect:  #lastRemoval #scrollBarValue:
>> vScrollBarValue: #scrollBarMenuButtonPressed:
>>                   #withSelectionFrom: #to:
>>                               #removeClassNamed:
>>                                     #dragon: #hilberts: #mandala: #web
>> #test3 #factorial #tinyBenchmarks #benchFib #newDepth: #restoreAfter:
>> #zapAllMethods #obsoleteClasses
>>                   #removeAllUnSentMessages #abandonSources
>>                                     #removeUnreferencedKeys
>> #reclaimDependents #zapOrganization #condenseChanges
>> #browseObsoleteReferences
>>                               #subclass:instanceVariableName
>> s:classVariableNames:poolDictionaries:category:
>>                                     #methodsFor:stamp:
>> #methodsFor:stamp:prior: #instanceVariableNames:
>> #startTimerInterruptWatcher #unusedClasses )
>>                                                     do: [:sel | sels
>>
>> remove: sel
>>
>> ifAbsent: []].
>>                                             "The following may be sent by
>> perform: in dispatchOnChar..."
>>                                             (Smalltalk at:
>> #ParagraphEditor) ifNotNilDo: [:paragraphEditor |
>>                                                     (paragraphEditor
>> classPool at: #CmdActions) asSet
>>                                                             do: [:sel |
>> sels
>>
>>   remove: sel
>>
>>   ifAbsent: []].
>>                                                     (paragraphEditor
>> classPool at: #ShiftCmdActions) asSet
>>                                                             do: [:sel |
>> sels
>>
>>   remove: sel
>>
>>   ifAbsent: []]].
>>                                             sels size = 0
>>                                                     ifTrue: [^ 0].
>>                                             n := 0.
>>                                             self systemNavigation
>>                                                     allBehaviorsDo: [:x |
>> n := n + 1].
>>                                             'Removing ' , sels size
>> printString , ' messages . . .'
>>                                                     displayProgressFrom: 0
>>                                                     to: n
>>                                                     during: [:bar |
>>                                                             n := 0.
>>                                                             self
>> systemNavigation
>>
>> allBehaviorsDo: [:class |
>>
>>   bar value: (n := n + 1).
>>
>>   sels
>>
>>           do: [:sel | class basicRemoveSelector: sel]]].
>>                                             ^ sels size!
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> SpaceTally>>compareTallyIn:to: (in category 'fileOut') -----
>>                                       compareTallyIn: beforeFileName to:
>> afterFileName
>>                                             "SpaceTally new
>> compareTallyIn: 'tally' to: 'tally2'"
>>
>>                                             | answer s beforeDict a
>> afterDict allKeys |
>>                                             beforeDict := Dictionary new.
>>                                             s := FileDirectory default
>> fileNamed: beforeFileName.
>>                                             [s atEnd] whileFalse: [
>>                                                     a := Array readFrom:
>> s nextLine.
>>                                                     beforeDict at: a
>> first put: a allButFirst.
>>                                             ].
>>                                             s close.
>>                                             afterDict := Dictionary new.
>>                                             s := FileDirectory default
>> fileNamed: afterFileName.
>>                                             [s atEnd] whileFalse: [
>>                                                     a := Array readFrom:
>> s nextLine.
>>                                                     afterDict at: a first
>> put: a allButFirst.
>>                                             ].
>>                                             s close.
>>                                             answer := WriteStream on:
>> String new.
>>                                     +       allKeys := (Set new addAll:
>> beforeDict keys; addAll: afterDict keys; yourself) sorted.
>>                                     -       allKeys := (Set new addAll:
>> beforeDict keys; addAll: afterDict keys; yourself) asSortedCollection.
>>                                             allKeys do: [ :each |
>>                                                     | before after diff |
>>                                                     before := beforeDict
>> at: each ifAbsent: [#(0 0 0)].
>>                                                     after := afterDict
>> at: each ifAbsent: [#(0 0 0)].
>>                                                     diff := before with:
>> after collect: [ :vBefore :vAfter | vAfter - vBefore].
>>                                                     diff = #(0 0 0)
>> ifFalse: [
>>                                                             answer
>> nextPutAll: each,'  ',diff printString; cr.
>>                                                     ].
>>                                             ].
>>                                             StringHolder new contents:
>> answer contents; openLabel: 'space diffs'.
>>
>>
>>
>>                                       !
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> SystemNavigation>>allMethodsInCategory: (in category 'browse') -----
>>                                       allMethodsInCategory: category
>>                                             | aCollection |
>>                                     +       aCollection :=
>> OrderedCollection new.
>>                                     -       aCollection :=
>> SortedCollection new.
>>                                             Cursor wait showWhile:
>>                                                     [self allBehaviorsDo:
>>                                                             [:x | (x
>> allMethodsInCategory: category) do:
>>                                                                     [:sel
>> | aCollection add: x name , ' ' , sel]]].
>>                                     +       ^aCollection sort.
>>                                     -       ^aCollection.
>>                                             !
>>
>>                                     Item was changed:
>>                                       ----- Method:
>> SystemNavigation>>allSelectorsWithAnyImplementorsIn: (in category
>> 'query') -----
>>                                       allSelectorsWithAnyImplementorsIn:
>> selectorList
>>                                             "Answer the subset of the
>> given list which represent method selectors
>>                                             which have at least one
>> implementor in the system."
>>                                             | good |
>>                                     +       good := Set new.
>>                                     -       good := OrderedCollection new.
>>                                             self allBehaviorsDo: [:class
>> | selectorList
>>                                                                     do:
>> [:aSelector | (class includesSelector: aSelector)
>>
>>           ifTrue: [good add: aSelector]]].
>>                                     +       ^good sorted
>>                                     +
>>                                     +       "
>
>
>
>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170313/8645c982/attachment-0001.html>


More information about the Squeak-dev mailing list