The Inbox: Tests-fbs.68.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Tests-fbs.68.mcz

commits-2
A new version of Tests was added to project The Inbox:
http://source.squeak.org/inbox/Tests-fbs.68.mcz

==================== Summary ====================

Name: Tests-fbs.68
Author: fbs
Time: 5 April 2010, 10:37:01.668 pm
UUID: a81ca190-845c-c744-8438-ddccf33d729a
Ancestors: Tests-ar.67

Update DecompilerTests>>decompilerFailures with all the failing tests in the #testDecompilerInClasses<Foo>to<Bar> tests.

Where syntax errors occur, I've noted the error given. In one case (towards the end of the run, so perhaps a class starting with a P or an S?) I missed noting an "out of scope" error.

=============== Diff against Tests-ar.67 ===============

Item was changed:
  ----- Method: DecompilerTests>>decompilerFailures (in category 'utilities') -----
  decompilerFailures
  "here is the list of failures: DNU resulting in trying to decompile the following methods"
 
+ ^ #((AdditionalMethodState at:ifAbsent:)
+ (AdditionalMethodState at:ifAbsentPut:)
+ (AdditionalMethodState at:put:)
+ (AdditionalMethodState hasLiteralSuchThat:)
+ (AdditionalMethodState hasLiteralThorough:)
+ (AdditionalMethodState includesProperty:)
+ (AdditionalMethodState keysAndValuesDo:)
+ (AdditionalMethodState pragmas)
+ (AdditionalMethodState properties)
+ (AdditionalMethodState propertyKeysAndValuesDo:)
+ (AdditionalMethodState propertyValueAt:ifAbsent:)
+ (AdditionalMethodState removeKey:ifAbsent:)
+ (AdditionalMethodState setMethod:)
+ (BalloonEngineSimulation circleCosTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
- ^ #((BalloonEngineSimulation circleCosTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
  (BalloonEngineSimulation circleSinTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
+ (BlockNode emitCodeExceptLast:encoder:)
+ (BlockNode sizeCodeExceptLast:)
+ (Categorizer changeFromCategorySpecs:)
+ (Categorizer elementCategoryDict)
+ (ChatNotes storeAIFFOnFile:)
+ (ClosureTests testToDoInsideTemp)
+ (Command veryDeepFixupWith:)
+ (CompiledMethod =)
+ (CompiledMethod allEmbeddedBlockMethods)
+ (CompiledMethod embeddedBlockMethods)
+ (CompiledMethod getPreambleFrom:at:)
+ (CompiledMethod hasLiteralSuchThat:)
+ (CompiledMethod hasLiteralThorough:)
+ (CompiledMethod sameTraitCodeAs:)
+ (Date printOn:)
+ (DependencyBrowser computePackageDependencies:)
+ (EventSensor eventTickler)
+ (Float printPaddedWith:to:)
+ (FMSound mixSampleCount:into:startingAt:leftVol:rightVol:)
+ (Form preMultiplyAlpha)
+ (FTPClient getDataInto:)
  (GeniePlugin primSameClassAbsoluteStrokeDistanceMyPoints:otherPoints:myVectors:otherVectors:mySquaredLengths:otherSquaredLengths:myAngles:otherAngles:maxSizeAndReferenceFlag:rowBase:rowInsertRemove:rowInsertRemoveCount: "Cannot compile -- stack including temps is too deep")
+ (GZipReadStream on:from:to:)
+ (GraphMorph drawDataOn:)
+ (HttpUrl checkAuthorization:retry:)
+ (Integer asBytesDescription)
+ (IntegerTest testNumberOfDigits)
+ (IntegerTest testPrintStringBase)
+ (JPEGReadWriter decodeBlockInto:component:dcTable:acTable:)
+ (LoopedSampledSound mixSampleCount:into:startingAt:leftVol:rightVol:)
+ (MessageTally treePrintOn:tabs:thisTab:total:totalTime:tallyExact:orThreshold:)
+ (MessageTrace selectAllBetweenAnchorAnd:)
+ (MethodPragmaTest testCompileCharacter)
+ (MultiByteBinaryOrTextStream next:)
+ (MultiByteFileStream next:)
+ (MVCProject textWindows)
+ (MVCToolBuilder setLayout:in:)
+ (NewParagraph selectionRectsFrom:to:)
+ (OldSocket getResponseNoLF)
+ (PackageDependencyTest testPackage:dependsExactlyOn:)
+ (PasteUpMorph dropFiles:)
+ (Player veryDeepFixupWith:)
+ (PluggableTabButtonMorph calculateArcLengths)
+ (PluggableTabButtonMorph drawTabOn:)
+ (PluckedSound reset)
+ (PNGReadWriter copyPixelsGray:)
+ (PNGReadWriter processInterlaced)
+ (PNMReadWriter nextPutRGB:)
+ (PNMReadWriter nextPutBW:reverse:)
+ (PNMReadWriter readBWreverse:)
+ (PNMReadWriter readGray)
+ (PNMReadWriter readPlainRGB)
+ (PNMReadWriter writeHeader:)
+ (PointTest testTheta)
+ (PopUpMenu readKeyboard)
+ (PostscriptCanvas outlineQuadraticBezierShape:)
  (QPickable2D pick:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
  (QUsersPane userEntryCompare:to:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
+ (RelativeInstructionPrinter print:)
+ (RemoteHandMorph appendNewDataToReceiveBuffer)
+ (ScaledDecimalTest testConvertFromFraction)
+ (SHMCClassDefinition allInstVarNames)
+ (SHMCClassDefinition withAllSuperclasses)
+ (ShortIntegerArray writeOn:)
+ (SHParserST80 isBinary)
+ (StandardScriptingSystem holderWithAlphabet)
+ (StrikeFontSet displayStringR2L:on:from:to:at:kern:)
+ (String howManyMatch:)
+ (String keywords)
+ (StringTest testWthNoLineLongerThan)
+ (SyntaxMorph replaceKeyWord:menuItem:)
+ (SyntaxMorph replaceSel:menuItem:)
+ (TextDiffBuilder lcsFor:and:)
+ (TextURL actOnClickFor:)
  (TShaderProgram vertexStrings) "foo ifTrue: []. => foo. => ."
  (TShaderProgram fragmentStrings) "foo ifTrue: []. => foo. => ."
+ (TTContourConstruction segmentsDo:) "out of scope variable"
+ (TTCFontReader processCharacterMappingTable:)
+ (TTFileDescription getGlyphFlagsFrom:size:)
+ (TTFileDescription processCharacterMappingTable:)
+ (TTFontReader getGlyphFlagsFrom:size:)
+ (TTFontReader processCharacterMappingTable:)
+ (TTFontReader processHorizontalMetricsTable:length:)
  (TWindow zoomWindow:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
+ (WaveEditor showEnvelope)
+ (WeakSet scanForLoadedSymbol:)
 
  "(PNMReadWriter nextImage) (Collection #ifEmpty:ifNotEmpty:) (Collection #ifEmpty:) (Collection #ifNotEmpty:ifEmpty:) (Text #alignmentAt:ifAbsent:) (ObjectWithDocumentation propertyAt:ifAbsent:)")!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Tests-fbs.68.mcz

Eliot Miranda-2
Hi Frank,

   the problem with the below is that no reasons as to the failures are included.  If you look at the cases I added you'll see I commented each case with the reason for the failure.  We need this so we can see which failures are inevitable, because of acceptable limitations in the Decompiler we have to tolerate, and which failures are real Decompiler bugs.

e.g.

 (BalloonEngineSimulation circleCosTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
 (TShaderProgram vertexStrings) "foo ifTrue: []. => foo. => ."
 (TWindow zoomWindow:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"

On Mon, Apr 5, 2010 at 1:37 PM, <[hidden email]> wrote:
A new version of Tests was added to project The Inbox:
http://source.squeak.org/inbox/Tests-fbs.68.mcz

==================== Summary ====================

Name: Tests-fbs.68
Author: fbs
Time: 5 April 2010, 10:37:01.668 pm
UUID: a81ca190-845c-c744-8438-ddccf33d729a
Ancestors: Tests-ar.67

Update DecompilerTests>>decompilerFailures with all the failing tests in the #testDecompilerInClasses<Foo>to<Bar> tests.

Where syntax errors occur, I've noted the error given. In one case (towards the end of the run, so perhaps a class starting with a P or an S?) I missed noting an "out of scope" error.

=============== Diff against Tests-ar.67 ===============

Item was changed:
 ----- Method: DecompilerTests>>decompilerFailures (in category 'utilities') -----
 decompilerFailures
       "here is the list of failures: DNU resulting in trying to decompile the following methods"

+       ^ #((AdditionalMethodState at:ifAbsent:)
+               (AdditionalMethodState at:ifAbsentPut:)
+               (AdditionalMethodState at:put:)
+               (AdditionalMethodState hasLiteralSuchThat:)
+               (AdditionalMethodState hasLiteralThorough:)
+               (AdditionalMethodState includesProperty:)
+               (AdditionalMethodState keysAndValuesDo:)
+               (AdditionalMethodState pragmas)
+               (AdditionalMethodState properties)
+               (AdditionalMethodState propertyKeysAndValuesDo:)
+               (AdditionalMethodState propertyValueAt:ifAbsent:)
+               (AdditionalMethodState removeKey:ifAbsent:)
+               (AdditionalMethodState setMethod:)
+               (BalloonEngineSimulation circleCosTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
-       ^ #((BalloonEngineSimulation circleCosTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
                (BalloonEngineSimulation circleSinTable "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
+               (BlockNode emitCodeExceptLast:encoder:)
+               (BlockNode sizeCodeExceptLast:)
+               (Categorizer changeFromCategorySpecs:)
+               (Categorizer elementCategoryDict)
+               (ChatNotes storeAIFFOnFile:)
+               (ClosureTests testToDoInsideTemp)
+               (Command veryDeepFixupWith:)
+               (CompiledMethod =)
+               (CompiledMethod allEmbeddedBlockMethods)
+               (CompiledMethod embeddedBlockMethods)
+               (CompiledMethod getPreambleFrom:at:)
+               (CompiledMethod hasLiteralSuchThat:)
+               (CompiledMethod hasLiteralThorough:)
+               (CompiledMethod sameTraitCodeAs:)
+               (Date printOn:)
+               (DependencyBrowser computePackageDependencies:)
+               (EventSensor eventTickler)
+               (Float printPaddedWith:to:)
+               (FMSound mixSampleCount:into:startingAt:leftVol:rightVol:)
+               (Form preMultiplyAlpha)
+               (FTPClient getDataInto:)
                (GeniePlugin primSameClassAbsoluteStrokeDistanceMyPoints:otherPoints:myVectors:otherVectors:mySquaredLengths:otherSquaredLengths:myAngles:otherAngles:maxSizeAndReferenceFlag:rowBase:rowInsertRemove:rowInsertRemoveCount: "Cannot compile -- stack including temps is too deep")
+               (GZipReadStream on:from:to:)
+               (GraphMorph drawDataOn:)
+               (HttpUrl checkAuthorization:retry:)
+               (Integer asBytesDescription)
+               (IntegerTest testNumberOfDigits)
+               (IntegerTest testPrintStringBase)
+               (JPEGReadWriter decodeBlockInto:component:dcTable:acTable:)
+               (LoopedSampledSound mixSampleCount:into:startingAt:leftVol:rightVol:)
+               (MessageTally treePrintOn:tabs:thisTab:total:totalTime:tallyExact:orThreshold:)
+               (MessageTrace selectAllBetweenAnchorAnd:)
+               (MethodPragmaTest testCompileCharacter)
+               (MultiByteBinaryOrTextStream next:)
+               (MultiByteFileStream next:)
+               (MVCProject textWindows)
+               (MVCToolBuilder setLayout:in:)
+               (NewParagraph selectionRectsFrom:to:)
+               (OldSocket getResponseNoLF)
+               (PackageDependencyTest testPackage:dependsExactlyOn:)
+               (PasteUpMorph dropFiles:)
+               (Player veryDeepFixupWith:)
+               (PluggableTabButtonMorph calculateArcLengths)
+               (PluggableTabButtonMorph drawTabOn:)
+               (PluckedSound reset)
+               (PNGReadWriter copyPixelsGray:)
+               (PNGReadWriter processInterlaced)
+               (PNMReadWriter nextPutRGB:)
+               (PNMReadWriter nextPutBW:reverse:)
+               (PNMReadWriter readBWreverse:)
+               (PNMReadWriter readGray)
+               (PNMReadWriter readPlainRGB)
+               (PNMReadWriter writeHeader:)
+               (PointTest testTheta)
+               (PopUpMenu readKeyboard)
+               (PostscriptCanvas outlineQuadraticBezierShape:)
               (QPickable2D pick:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
               (QUsersPane userEntryCompare:to:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
+               (RelativeInstructionPrinter print:)
+               (RemoteHandMorph appendNewDataToReceiveBuffer)
+               (ScaledDecimalTest testConvertFromFraction)
+               (SHMCClassDefinition allInstVarNames)
+               (SHMCClassDefinition withAllSuperclasses)
+               (ShortIntegerArray writeOn:)
+               (SHParserST80 isBinary)
+               (StandardScriptingSystem holderWithAlphabet)
+               (StrikeFontSet displayStringR2L:on:from:to:at:kern:)
+               (String howManyMatch:)
+               (String keywords)
+               (StringTest testWthNoLineLongerThan)
+               (SyntaxMorph replaceKeyWord:menuItem:)
+               (SyntaxMorph replaceSel:menuItem:)
+               (TextDiffBuilder lcsFor:and:)
+               (TextURL actOnClickFor:)
               (TShaderProgram vertexStrings) "foo ifTrue: []. => foo. => ."
               (TShaderProgram fragmentStrings) "foo ifTrue: []. => foo. => ."
+               (TTContourConstruction segmentsDo:) "out of scope variable"
+               (TTCFontReader processCharacterMappingTable:)
+               (TTFileDescription getGlyphFlagsFrom:size:)
+               (TTFileDescription processCharacterMappingTable:)
+               (TTFontReader getGlyphFlagsFrom:size:)
+               (TTFontReader processCharacterMappingTable:)
+               (TTFontReader processHorizontalMetricsTable:length:)
               (TWindow zoomWindow:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
+               (WaveEditor showEnvelope)
+               (WeakSet scanForLoadedSymbol:)

               "(PNMReadWriter nextImage) (Collection #ifEmpty:ifNotEmpty:) (Collection #ifEmpty:) (Collection #ifNotEmpty:ifEmpty:) (Text #alignmentAt:ifAbsent:) (ObjectWithDocumentation propertyAt:ifAbsent:)")!





Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Tests-fbs.68.mcz

Frank Shearar
Hi Eliot,

Yes, I realise that. I've no experience with the Decompiler, so I
thought I'd at least collect the failing sites.

Given my absence of knowledge, I went with no explanation because (a)
all the other failing sites did have nice comments so mine would show up
nicely and (b) I didn't want to guess and potentially mislead the next
person.

Having said all that, I'm more than happy to try categorise the failing
tests further: I want to try generate a series of expected/actual code
strings so we can diff the results. That should help a lot in ignoring
the tolerated failures.

(Something else we could do though is change the test in
DecompilerTest>>checkDecompileMethod: to compare not dead strings but, I
don't know, the byte codes? the parse tree? Something that will accept
that some variables will have different names.)

frank

Eliot Miranda wrote:

> Hi Frank,
>
>    the problem with the below is that no reasons as to the failures are
> included.  If you look at the cases I added you'll see I commented each
> case with the reason for the failure.  We need this so we can see which
> failures are inevitable, because of acceptable limitations in the
> Decompiler we have to tolerate, and which failures are real Decompiler bugs.
>
> e.g.
>
>  (BalloonEngineSimulation circleCosTable "-0.3826834323650903 =>
> -0.38268343236509 or -0.3826834323650902")
>  (TShaderProgram vertexStrings) "foo ifTrue: []. => foo. => ."
>  (TWindow zoomWindow:) "foo ifTrue: [^bar] ifFalse: [^baz]. ^huh?"
>
> On Mon, Apr 5, 2010 at 1:37 PM, <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     A new version of Tests was added to project The Inbox:
>     http://source.squeak.org/inbox/Tests-fbs.68.mcz
>
>     ==================== Summary ====================
>
>     Name: Tests-fbs.68
>     Author: fbs
>     Time: 5 April 2010, 10:37:01.668 pm
>     UUID: a81ca190-845c-c744-8438-ddccf33d729a
>     Ancestors: Tests-ar.67
>
>     Update DecompilerTests>>decompilerFailures with all the failing
>     tests in the #testDecompilerInClasses<Foo>to<Bar> tests.
>
>     Where syntax errors occur, I've noted the error given. In one case
>     (towards the end of the run, so perhaps a class starting with a P or
>     an S?) I missed noting an "out of scope" error.
>
>     =============== Diff against Tests-ar.67 ===============
>
>     Item was changed:
>      ----- Method: DecompilerTests>>decompilerFailures (in category
>     'utilities') -----
>      decompilerFailures
>            "here is the list of failures: DNU resulting in trying to
>     decompile the following methods"
>
>     +       ^ #((AdditionalMethodState at:ifAbsent:)
>     +               (AdditionalMethodState at:ifAbsentPut:)
>     +               (AdditionalMethodState at:put:)
>     +               (AdditionalMethodState hasLiteralSuchThat:)
>     +               (AdditionalMethodState hasLiteralThorough:)
>     +               (AdditionalMethodState includesProperty:)
>     +               (AdditionalMethodState keysAndValuesDo:)
>     +               (AdditionalMethodState pragmas)
>     +               (AdditionalMethodState properties)
>     +               (AdditionalMethodState propertyKeysAndValuesDo:)
>     +               (AdditionalMethodState propertyValueAt:ifAbsent:)
>     +               (AdditionalMethodState removeKey:ifAbsent:)
>     +               (AdditionalMethodState setMethod:)
>     +               (BalloonEngineSimulation circleCosTable
>     "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
>     -       ^ #((BalloonEngineSimulation circleCosTable
>     "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
>                     (BalloonEngineSimulation circleSinTable
>     "-0.3826834323650903 => -0.38268343236509 or -0.3826834323650902")
>     +               (BlockNode emitCodeExceptLast:encoder:)
>     +               (BlockNode sizeCodeExceptLast:)
>     +               (Categorizer changeFromCategorySpecs:)
>     +               (Categorizer elementCategoryDict)
>     +               (ChatNotes storeAIFFOnFile:)
>     +               (ClosureTests testToDoInsideTemp)
>     +               (Command veryDeepFixupWith:)
>     +               (CompiledMethod =)
>     +               (CompiledMethod allEmbeddedBlockMethods)
>     +               (CompiledMethod embeddedBlockMethods)
>     +               (CompiledMethod getPreambleFrom:at:)
>     +               (CompiledMethod hasLiteralSuchThat:)
>     +               (CompiledMethod hasLiteralThorough:)
>     +               (CompiledMethod sameTraitCodeAs:)
>     +               (Date printOn:)
>     +               (DependencyBrowser computePackageDependencies:)
>     +               (EventSensor eventTickler)
>     +               (Float printPaddedWith:to:)
>     +               (FMSound
>     mixSampleCount:into:startingAt:leftVol:rightVol:)
>     +               (Form preMultiplyAlpha)
>     +               (FTPClient getDataInto:)
>                     (GeniePlugin
>     primSameClassAbsoluteStrokeDistanceMyPoints:otherPoints:myVectors:otherVectors:mySquaredLengths:otherSquaredLengths:myAngles:otherAngles:maxSizeAndReferenceFlag:rowBase:rowInsertRemove:rowInsertRemoveCount:
>     "Cannot compile -- stack including temps is too deep")
>     +               (GZipReadStream on:from:to:)
>     +               (GraphMorph drawDataOn:)
>     +               (HttpUrl checkAuthorization:retry:)
>     +               (Integer asBytesDescription)
>     +               (IntegerTest testNumberOfDigits)
>     +               (IntegerTest testPrintStringBase)
>     +               (JPEGReadWriter
>     decodeBlockInto:component:dcTable:acTable:)
>     +               (LoopedSampledSound
>     mixSampleCount:into:startingAt:leftVol:rightVol:)
>     +               (MessageTally
>     treePrintOn:tabs:thisTab:total:totalTime:tallyExact:orThreshold:)
>     +               (MessageTrace selectAllBetweenAnchorAnd:)
>     +               (MethodPragmaTest testCompileCharacter)
>     +               (MultiByteBinaryOrTextStream next:)
>     +               (MultiByteFileStream next:)
>     +               (MVCProject textWindows)
>     +               (MVCToolBuilder setLayout:in:)
>     +               (NewParagraph selectionRectsFrom:to:)
>     +               (OldSocket getResponseNoLF)
>     +               (PackageDependencyTest testPackage:dependsExactlyOn:)
>     +               (PasteUpMorph dropFiles:)
>     +               (Player veryDeepFixupWith:)
>     +               (PluggableTabButtonMorph calculateArcLengths)
>     +               (PluggableTabButtonMorph drawTabOn:)
>     +               (PluckedSound reset)
>     +               (PNGReadWriter copyPixelsGray:)
>     +               (PNGReadWriter processInterlaced)
>     +               (PNMReadWriter nextPutRGB:)
>     +               (PNMReadWriter nextPutBW:reverse:)
>     +               (PNMReadWriter readBWreverse:)
>     +               (PNMReadWriter readGray)
>     +               (PNMReadWriter readPlainRGB)
>     +               (PNMReadWriter writeHeader:)
>     +               (PointTest testTheta)
>     +               (PopUpMenu readKeyboard)
>     +               (PostscriptCanvas outlineQuadraticBezierShape:)
>                    (QPickable2D pick:) "foo ifTrue: [^bar] ifFalse:
>     [^baz]. ^huh?"
>                    (QUsersPane userEntryCompare:to:) "foo ifTrue: [^bar]
>     ifFalse: [^baz]. ^huh?"
>     +               (RelativeInstructionPrinter print:)
>     +               (RemoteHandMorph appendNewDataToReceiveBuffer)
>     +               (ScaledDecimalTest testConvertFromFraction)
>     +               (SHMCClassDefinition allInstVarNames)
>     +               (SHMCClassDefinition withAllSuperclasses)
>     +               (ShortIntegerArray writeOn:)
>     +               (SHParserST80 isBinary)
>     +               (StandardScriptingSystem holderWithAlphabet)
>     +               (StrikeFontSet displayStringR2L:on:from:to:at:kern:)
>     +               (String howManyMatch:)
>     +               (String keywords)
>     +               (StringTest testWthNoLineLongerThan)
>     +               (SyntaxMorph replaceKeyWord:menuItem:)
>     +               (SyntaxMorph replaceSel:menuItem:)
>     +               (TextDiffBuilder lcsFor:and:)
>     +               (TextURL actOnClickFor:)
>                    (TShaderProgram vertexStrings) "foo ifTrue: []. =>
>     foo. => ."
>                    (TShaderProgram fragmentStrings) "foo ifTrue: []. =>
>     foo. => ."
>     +               (TTContourConstruction segmentsDo:) "out of scope
>     variable"
>     +               (TTCFontReader processCharacterMappingTable:)
>     +               (TTFileDescription getGlyphFlagsFrom:size:)
>     +               (TTFileDescription processCharacterMappingTable:)
>     +               (TTFontReader getGlyphFlagsFrom:size:)
>     +               (TTFontReader processCharacterMappingTable:)
>     +               (TTFontReader processHorizontalMetricsTable:length:)
>                    (TWindow zoomWindow:) "foo ifTrue: [^bar] ifFalse:
>     [^baz]. ^huh?"
>     +               (WaveEditor showEnvelope)
>     +               (WeakSet scanForLoadedSymbol:)
>
>                    "(PNMReadWriter nextImage) (Collection
>     #ifEmpty:ifNotEmpty:) (Collection #ifEmpty:) (Collection
>     #ifNotEmpty:ifEmpty:) (Text #alignmentAt:ifAbsent:)
>     (ObjectWithDocumentation propertyAt:ifAbsent:)")!
>
>
>