[squeak-dev] The Inbox: Tests-fbs.68.mcz

Frank Shearar frank.shearar at angband.za.org
Tue Apr 6 06:32:33 UTC 2010


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, <commits at source.squeak.org 
> <mailto:commits at source.squeak.org>> 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:)")!
> 
> 
> 




More information about the Squeak-dev mailing list