bringing the overview pyramid on verveineJ model -> DNU

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

bringing the overview pyramid on verveineJ model -> DNU

Stéphane Ducasse
From: ss
To: [hidden email]
Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:

here insert explanation of what you were doing, suspect changes you've made and so forth.

24 May 2011 3:22:18 pm

VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
Image: Pharo1.2.1 [Latest update: #12345]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak

FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
        Receiver: Planet in ad_hoc (Type)
        Arguments and temporary variables:
                aMessage: lookUp: 'radius()'
                exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
                resumeValue: nil
        Receiver's instance variables:
                mooseID: 2324
                state: a MooseDefaultState
                sourceAnchor: nil
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'Planet'
                isStub: false
                receivingInvocations: an Array(main -> Planet#values() (Invocation))
                modifiers: a Set(#isFinal #isPublic)
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                subInheritances: #()
                methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
                container: ad_hoc (Namespace)
                superInheritances: #()
                attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
                values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...

[:each | | invokedMtd | each isASureInvocation
                ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
                        invokedMtd isNil
                                ifFalse: [(invokedMtd isAbstract
                                                        or: [invokedMtd = self])
                                                ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
        Receiver: Planet>>surfaceGravity() (Method)
        Arguments and temporary variables:
                sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
                each: a Set()
                invokedMtd: nil
        Receiver's instance variables:
                mooseID: 3985
                state: a MooseDefaultState
                sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'surfaceGravity'
                isStub: false
                receivingInvocations: #()
                modifiers: a Set()
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
                incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
                localVariables: #()
                parameters: #()
                signature: 'surfaceGravity()'
                accesses: an Array(surfaceGravity -> G (Access))
                declaredType: double (Type)
                kind: nil
                parentType: Planet in ad_hoc (Type)

OrderedCollection>>do:
        Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
        Arguments and temporary variables:
                aBlock: [:each | | invokedMtd | each isASureInvocation
                ifTrue: [invokedMtd :=...etc...
                index: 3
        Receiver's instance variables:
                array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
                firstIndex: 3
                lastIndex: 5

FMMultivalueLink>>do:
        Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
        Arguments and temporary variables:
                aBlock: [:each | | invokedMtd | each isASureInvocation
                ifTrue: [invokedMtd :=...etc...
        Receiver's instance variables:
                values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
                owner: Planet>>surfaceGravity() (Method)
                opposite: #sender:

FAMIXMethod>>privateSureInvokedMethods
        Receiver: Planet>>surfaceGravity() (Method)
        Arguments and temporary variables:
                outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
                sureInvokedMtdsSet: a Set()
        Receiver's instance variables:
                mooseID: 3985
                state: a MooseDefaultState
                sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'surfaceGravity'
                isStub: false
                receivingInvocations: #()
                modifiers: a Set()
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
                incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
                localVariables: #()
                parameters: #()
                signature: 'surfaceGravity()'
                accesses: an Array(surfaceGravity -> G (Access))
                declaredType: double (Type)
                kind: nil
                parentType: Planet in ad_hoc (Type)

[self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
        Receiver: Planet>>surfaceGravity() (Method)
        Arguments and temporary variables:

        Receiver's instance variables:
                mooseID: 3985
                state: a MooseDefaultState
                sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'surfaceGravity'
                isStub: false
                receivingInvocations: #()
                modifiers: a Set()
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
                incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
                localVariables: #()
                parameters: #()
                signature: 'surfaceGravity()'
                accesses: an Array(surfaceGravity -> G (Access))
                declaredType: double (Type)
                kind: nil
                parentType: Planet in ad_hoc (Type)

SmallDictionary>>at:ifAbsentPut:
        Receiver: a SmallDictionary()
        Arguments and temporary variables:
                key: #sureInvokedMethods
                aBlock: [self privateSureInvokedMethods]
                index: 0
        Receiver's instance variables:
                keys: #(nil nil)
                values: #(nil nil)
                size: 0

MooseDefaultState>>cacheAt:ifAbsentPut:
        Receiver: a MooseDefaultState
        Arguments and temporary variables:
                name: #sureInvokedMethods
                aBlock: [self privateSureInvokedMethods]
        Receiver's instance variables:
                attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
                entity: Planet>>surfaceGravity() (Method)
                propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
                queryCache: a SmallDictionary()

FAMIXMethod>>sureInvokedMethods
        Receiver: Planet>>surfaceGravity() (Method)
        Arguments and temporary variables:

        Receiver's instance variables:
                mooseID: 3985
                state: a MooseDefaultState
                sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'surfaceGravity'
                isStub: false
                receivingInvocations: #()
                modifiers: a Set()
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
                incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
                localVariables: #()
                parameters: #()
                signature: 'surfaceGravity()'
                accesses: an Array(surfaceGravity -> G (Access))
                declaredType: double (Type)
                kind: nil
                parentType: Planet in ad_hoc (Type)

FAMIXMethod>>invokedMethods
        Receiver: Planet>>surfaceGravity() (Method)
        Arguments and temporary variables:

        Receiver's instance variables:
                mooseID: 3985
                state: a MooseDefaultState
                sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
                sourceLanguage: nil
                comments: #()
                declaredSourceLanguage: nil
                name: 'surfaceGravity'
                isStub: false
                receivingInvocations: #()
                modifiers: a Set()
                parentPackage: nil
                outgoingReferences: #()
                types: #()
                incomingReferences: #()
                outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
                incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
                localVariables: #()
                parameters: #()
                signature: 'surfaceGravity()'
                accesses: an Array(surfaceGravity -> G (Access))
                declaredType: double (Type)
                kind: nil
                parentType: Planet in ad_hoc (Type)

[:each | each invokedMethods size] in [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:each | each isStub not].
        bar increment.
        allModelClasses := aMooseModel allModelClasses.
        bar increment.
        nop := aMooseModel allModelPackages size.
        bar increment.
        noc := allModelClasses size.
        bar increment.
        nom := allModelMethods size.
        bar increment.
        loc := allModelMethods sum: #numberOfLinesOfCode.
        bar increment.
        cyclo := allModelMethods sum: #cyclomaticComplexity.
        bar increment.
        fanout := allModelClasses sum: #fanOut.
        bar increment.
        calls := allModelMethods
                                sum: [:each | each invokedMethods size].
        bar increment.
        andc := (allModelClasses
                                sum: [:class | class directSubclasses size])
                                / noc.
        bar increment.
        ahh := allModelClasses average: #hierarchyNestingLevel.
        bar increment] in OverviewPyramidMetrics>>model:
        Receiver: an OverviewPyramidMetrics
        Arguments and temporary variables:
                each: Planet>>surfaceGravity() (Method)
        Receiver's instance variables:
                nop: 0
                noc: 27
                nom: 238
                loc: 4230
                cyclo: 760
                fanout: 81
                calls: nil
                andc: nil
                ahh: nil

[:sum :each | sum
                + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
        Receiver: Group (238 FAMIXMethods)
        Arguments and temporary variables:
                aSymbolOrBlock: 442
                sum: Planet>>surfaceGravity() (Method)
                each: [:each | each invokedMethods size]
        Receiver's instance variables:
                mooseID: 13709
                state: a MooseDefaultState
                storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...

[:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
        Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
        Arguments and temporary variables:
                binaryBlock: Planet>>surfaceGravity() (Method)
                nextValue: [:sum :each | sum
                + (aSymbolOrBlock value: each)]
                each: #(442)
        Receiver's instance variables:
                array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
                firstIndex: 333
                lastIndex: 570

OrderedCollection>>do:
        Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
        Arguments and temporary variables:
                aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
                index: 408
        Receiver's instance variables:
                array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
                firstIndex: 333
                lastIndex: 570

OrderedCollection(Collection)>>inject:into:
        Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
        Arguments and temporary variables:
                thisValue: 0
                binaryBlock: [:sum :each | sum
                + (aSymbolOrBlock value: each)]
                nextValue: #(442)
        Receiver's instance variables:
                array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
                firstIndex: 333
                lastIndex: 570

FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
        Receiver: Group (238 FAMIXMethods)
        Arguments and temporary variables:
                neutral: 0
                aBinaryBlock: [:sum :each | sum
                + (aSymbolOrBlock value: each)]
        Receiver's instance variables:
                mooseID: 13709
                state: a MooseDefaultState
                storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...

FAMIXMethodGroup(MooseGroup)>>sum:
        Receiver: Group (238 FAMIXMethods)
        Arguments and temporary variables:
                aSymbolOrBlock: [:each | each invokedMethods size]
        Receiver's instance variables:
                mooseID: 13709
                state: a MooseDefaultState
                storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...

[:bar |
allModelMethods := aMooseModel allMethods
                                select: [:each | each isStub not].
        bar increment.
        allModelClasses := aMooseModel allModelClasses.
        bar increment.
        nop := aMooseModel allModelPackages size.
        bar increment.
        noc := allModelClasses size.
        bar increment.
        nom := allModelMethods size.
        bar increment.
        loc := allModelMethods sum: #numberOfLinesOfCode.
        bar increment.
        cyclo := allModelMethods sum: #cyclomaticComplexity.
        bar increment.
        fanout := allModelClasses sum: #fanOut.
        bar increment.
        calls := allModelMethods
                                sum: [:each | each invokedMethods size].
        bar increment.
        andc := (allModelClasses
                                sum: [:class | class directSubclasses size])
                                / noc.
        bar increment.
        ahh := allModelClasses average: #hierarchyNestingLevel.
        bar increment] in OverviewPyramidMetrics>>model:
        Receiver: an OverviewPyramidMetrics
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                nop: 0
                noc: 27
                nom: 238
                loc: 4230
                cyclo: 760
                fanout: 81
                calls: nil
                andc: nil
                ahh: nil

MooseCustomTask>>basicRun
        Receiver: a MooseCustomTask
        Arguments and temporary variables:

        Receiver's instance variables:
                progBar: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        retu...etc...
                nb: 8
                computation: [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:e...etc...
                description: 'OverviewPyramid - computing metrics'
                length: 11

[:bar |
progBar := bar.
        result := self basicRun] in [self setUp.
        nb := 0.
        UIManager default
                displayProgress: self description
                at: Sensor cursorPoint
                from: 1
                to: self length
                during: [:bar |
                        progBar := bar.
                        result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
        Receiver: a MooseCustomTask
        Arguments and temporary variables:
                result: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        retur...etc...
                bar: #(nil)
        Receiver's instance variables:
                progBar: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        retu...etc...
                nb: 8
                computation: [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:e...etc...
                description: 'OverviewPyramid - computing metrics'
                length: 11

[result := workBlock value: progress] in [[result := workBlock value: progress]
                on: ProgressNotification
                do: [:ex |
                        ex extraParam isString
                                ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
                        ex resume]] in ProgressInitiationException>>defaultMorphicAction
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:
                progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        ret...etc...
                result: #(nil)
        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

BlockClosure>>on:do:
        Receiver: [result := workBlock value: progress]
        Arguments and temporary variables:
                exception: ProgressNotification
                handlerAction: [:ex |
ex extraParam isString
                ifTrue: [SystemProgressMorph un...etc...
                handlerActive: true
        Receiver's instance variables:
                outerContext: [[result := workBlock value: progress]
                on: ProgressNotification...etc...
                startpc: 83
                numArgs: 0

[[result := workBlock value: progress]
                on: ProgressNotification
                do: [:ex |
                        ex extraParam isString
                                ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
                        ex resume]] in ProgressInitiationException>>defaultMorphicAction
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:
                progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        ret...etc...
                result: #(nil)
        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

BlockClosure>>ensure:
        Receiver: [[result := workBlock value: progress]
                on: ProgressNotification
                do: [:ex |
                        ex extr...etc...
        Arguments and temporary variables:
                aBlock: [SystemProgressMorph close: progress]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: ProgressInitiationException>>defaultMorphicAction
                startpc: 77
                numArgs: 0

ProgressInitiationException>>defaultMorphicAction
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:
                progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        ret...etc...
                result: #(nil)
        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

MorphicUIManager>>progressInitiationExceptionDefaultAction:
        Receiver: a MorphicUIManager
        Arguments and temporary variables:
                anException: ProgressInitiationException:
        Receiver's instance variables:
                interactiveParser: nil

ProgressInitiationException>>defaultAction
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:

        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

UndefinedObject>>handleSignal:
        Receiver: nil
        Arguments and temporary variables:
                exception: ProgressInitiationException:
        Receiver's instance variables:
nil

MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: ProgressInitiationException:
                val: nil
        Receiver's instance variables:
                sender: PasteUpMorph>>becomeActiveDuring:
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
                closureOrNil: nil
                receiver: [aBlock value]

ProgressInitiationException(Exception)>>signal
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:

        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

ProgressInitiationException>>display:at:from:to:during:
        Receiver: ProgressInitiationException:
        Arguments and temporary variables:
                argString: 'OverviewPyramid - computing metrics'
                argPoint: 296@172
                argMinVal: 1
                argMaxVal: 11
                argWorkBlock: [:bar |
progBar := bar.
        result := self basicRun]
        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: ProgressInitiationException(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
                maxVal: 11
                minVal: 1
                aPoint: 296@172
                progressTitle: 'OverviewPyramid - computing metrics'

ProgressInitiationException class>>display:at:from:to:during:
        Receiver: ProgressInitiationException
        Arguments and temporary variables:
                aString: 'OverviewPyramid - computing metrics'
                aPoint: 296@172
                minVal: 1
                maxVal: 11
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
        Receiver's instance variables:
                superclass: Exception
                methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
                format: 150
                instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
                organization: ('*Morphic' defaultMorphicAction)
('accessing' maxVal minVal poin...etc...
                subclasses: nil
                name: #ProgressInitiationException
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'UIManager-Support'
                traitComposition: {}
                localSelectors: nil

MorphicUIManager>>displayProgress:at:from:to:during:
        Receiver: a MorphicUIManager
        Arguments and temporary variables:
                titleString: 'OverviewPyramid - computing metrics'
                aPoint: 296@172
                minVal: 1
                maxVal: 11
                workBlock: [:bar |
progBar := bar.
        result := self basicRun]
        Receiver's instance variables:
                interactiveParser: nil

[self setUp.
        nb := 0.
        UIManager default
                displayProgress: self description
                at: Sensor cursorPoint
                from: 1
                to: self length
                during: [:bar |
                        progBar := bar.
                        result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
        Receiver: a MooseCustomTask
        Arguments and temporary variables:
                result: #(nil)
        Receiver's instance variables:
                progBar: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        retu...etc...
                nb: 8
                computation: [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:e...etc...
                description: 'OverviewPyramid - computing metrics'
                length: 11

BlockClosure>>ensure:
        Receiver: [self setUp.
        nb := 0.
        UIManager default
                displayProgress: self description
                at: Sensor...etc...
        Arguments and temporary variables:
                aBlock: [self tearDown]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: MooseCustomTask(MooseTask)>>runWithProgress
                startpc: 65
                numArgs: 0

MooseCustomTask(MooseTask)>>runWithProgress
        Receiver: a MooseCustomTask
        Arguments and temporary variables:
                result: #(nil)
        Receiver's instance variables:
                progBar: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
        retu...etc...
                nb: 8
                computation: [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:e...etc...
                description: 'OverviewPyramid - computing metrics'
                length: 11

MooseCustomTask class>>runWithProgress:description:length:
        Receiver: MooseCustomTask
        Arguments and temporary variables:
                aBlock: [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:each |...etc...
                aDescription: 'OverviewPyramid - computing metrics'
                aNumber: 11
        Receiver's instance variables:
                superclass: MooseTask
                methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
                format: 140
                instanceVariables: #('computation' 'description' 'length')
                organization: ('as yet unclassified' basicRun description length with:descripti...etc...
                subclasses: nil
                name: #MooseCustomTask
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Moose-Core'
                traitComposition: {}
                localSelectors: nil

OverviewPyramidMetrics>>model:
        Receiver: an OverviewPyramidMetrics
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                nop: 0
                noc: 27
                nom: 238
                loc: 4230
                cyclo: 760
                fanout: 81
                calls: nil
                andc: nil
                ahh: nil

OverviewPyramidMetrics class>>on:
        Receiver: OverviewPyramidMetrics
        Arguments and temporary variables:
                aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
        Receiver's instance variables:
                superclass: Object
                methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
                format: 148
                instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
                organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
                subclasses: nil
                name: #OverviewPyramidMetrics
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Famix-Extensions'
                traitComposition: {}
                localSelectors: nil


--- The full stack ---
FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
[:each | | invokedMtd | each isASureInvocation
                ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
                        invokedMtd isNil
                                ifFalse: [(invokedMtd isAbstract
                                                        or: [invokedMtd = self])
                                                ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
OrderedCollection>>do:
FMMultivalueLink>>do:
FAMIXMethod>>privateSureInvokedMethods
[self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
SmallDictionary>>at:ifAbsentPut:
MooseDefaultState>>cacheAt:ifAbsentPut:
FAMIXMethod>>sureInvokedMethods
FAMIXMethod>>invokedMethods
[:each | each invokedMethods size] in [:bar |
allModelMethods := aMooseModel allMethods
                                select: [:each | each isStub not].
        bar increment.
        allModelClasses := aMooseModel allModelClasses.
        bar increment.
        nop := aMooseModel allModelPackages size.
        bar increment.
        noc := allModelClasses size.
        bar increment.
        nom := allModelMethods size.
        bar increment.
        loc := allModelMethods sum: #numberOfLinesOfCode.
        bar increment.
        cyclo := allModelMethods sum: #cyclomaticComplexity.
        bar increment.
        fanout := allModelClasses sum: #fanOut.
        bar increment.
        calls := allModelMethods
                                sum: [:each | each invokedMethods size].
        bar increment.
        andc := (allModelClasses
                                sum: [:class | class directSubclasses size])
                                / noc.
        bar increment.
        ahh := allModelClasses average: #hierarchyNestingLevel.
        bar increment] in OverviewPyramidMetrics>>model:
[:sum :each | sum
                + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
[:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
OrderedCollection>>do:
OrderedCollection(Collection)>>inject:into:
FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
FAMIXMethodGroup(MooseGroup)>>sum:
[:bar |
allModelMethods := aMooseModel allMethods
                                select: [:each | each isStub not].
        bar increment.
        allModelClasses := aMooseModel allModelClasses.
        bar increment.
        nop := aMooseModel allModelPackages size.
        bar increment.
        noc := allModelClasses size.
        bar increment.
        nom := allModelMethods size.
        bar increment.
        loc := allModelMethods sum: #numberOfLinesOfCode.
        bar increment.
        cyclo := allModelMethods sum: #cyclomaticComplexity.
        bar increment.
        fanout := allModelClasses sum: #fanOut.
        bar increment.
        calls := allModelMethods
                                sum: [:each | each invokedMethods size].
        bar increment.
        andc := (allModelClasses
                                sum: [:class | class directSubclasses size])
                                / noc.
        bar increment.
        ahh := allModelClasses average: #hierarchyNestingLevel.
        bar increment] in OverviewPyramidMetrics>>model:
MooseCustomTask>>basicRun
[:bar |
progBar := bar.
        result := self basicRun] in [self setUp.
        nb := 0.
        UIManager default
                displayProgress: self description
                at: Sensor cursorPoint
                from: 1
                to: self length
                during: [:bar |
                        progBar := bar.
                        result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
[result := workBlock value: progress] in [[result := workBlock value: progress]
                on: ProgressNotification
                do: [:ex |
                        ex extraParam isString
                                ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
                        ex resume]] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>on:do:
[[result := workBlock value: progress]
                on: ProgressNotification
                do: [:ex |
                        ex extraParam isString
                                ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
                        ex resume]] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>ensure:
ProgressInitiationException>>defaultMorphicAction
MorphicUIManager>>progressInitiationExceptionDefaultAction:
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
MorphicUIManager>>displayProgress:at:from:to:during:
[self setUp.
        nb := 0.
        UIManager default
                displayProgress: self description
                at: Sensor cursorPoint
                from: 1
                to: self length
                during: [:bar |
                        progBar := bar.
                        result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
BlockClosure>>ensure:
MooseCustomTask(MooseTask)>>runWithProgress
MooseCustomTask class>>runWithProgress:description:length:
OverviewPyramidMetrics>>model:
OverviewPyramidMetrics class>>on:
 - - - - - - - - - - - - - - -  
                        - - - - - - - - - - - - - - - - - -
[OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
SmallDictionary>>at:ifAbsentPut:
MooseDefaultState>>propertyAt:ifAbsentPut:
MooseModel>>overviewPyramidMetrics
OverviewPyramid>>initializeWith:
OverviewPyramid class>>on:
MooseModel>>viewOverviewPyramidMap
[:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
                action: [:x | self perform: eachPragma selector];
               
                title: (eachPragma argumentAt: 1);
               
                category: (eachPragma argumentAt: 2)] in [:eachClass |
categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
                                collect: [:eachPragma | GLMGenericAction new
                                                action: [:x | self perform: eachPragma selector];
                                               
                                                title: (eachPragma argumentAt: 1);
                                               
                                                category: (eachPragma argumentAt: 2)].
        simple := (Pragma allNamed: #menuItem: in: eachClass)
                                collect: [:eachPragma | GLMGenericAction new
                                                action: [:x | self perform: eachPragma selector];
                                               
                                                title: (eachPragma argumentAt: 1)].
        categorized , simple] in MooseModel(Object)>>mooseFinderActions
BlockClosure>>glamourValueWithArgs:
GLMGenericAction(GLMAction)>>actOn:
[:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
[:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
ActionSequence(SequenceableCollection)>>do:
ActionSequence>>valueWithArguments:
[:class :actions | (class handles: announcement)
                ifTrue: [actions
                                valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
[:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
[:each | each
                ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
Array(SequenceableCollection)>>do:
IdentityDictionary(Dictionary)>>associationsDo:
IdentityDictionary(Dictionary)>>keysAndValuesDo:
GLMAnnouncer>>announce:
GLMTreeMorphModel>>announce:
GLMTreeMorphNodeModel>>executeMenuAction:
[| selArgCount | (selArgCount := selector numArgs) = 0
                ifTrue: [target perform: selector]
                ifFalse: [selArgCount = arguments size
                                ifTrue: [target perform: selector withArguments: arguments]
                                ifFalse: [target
                                                perform: selector
                                                withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
ToggleMenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
ToggleMenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[ActiveHand := self.
        ActiveEvent := anEvent.
        result := focusHolder
                                handleFocusEvent: (anEvent
                                                transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
[aBlock value] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[:h |
ActiveHand := h.
        h processEvents.
        ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[[World doOneCycle.
        Processor yield.
        false] whileFalse.
        nil] in Project class>>spawnNewProcess
[self value.
        Processor terminateActive] in BlockClosure>>newProcess


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Could you please provide a link to the MSE file so that we can reproduce the problem?

Cheers,
Doru


On 24 May 2011, at 15:22, Stéphane Ducasse wrote:

> From: ss
> To: [hidden email]
> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>
> here insert explanation of what you were doing, suspect changes you've made and so forth.
>
> 24 May 2011 3:22:18 pm
>
> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
> Image: Pharo1.2.1 [Latest update: #12345]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
> Trusted Dir /foobar/tooBar/forSqueak/bogus
> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
>
> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
> Receiver: Planet in ad_hoc (Type)
> Arguments and temporary variables:
> aMessage: lookUp: 'radius()'
> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
> resumeValue: nil
> Receiver's instance variables:
> mooseID: 2324
> state: a MooseDefaultState
> sourceAnchor: nil
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'Planet'
> isStub: false
> receivingInvocations: an Array(main -> Planet#values() (Invocation))
> modifiers: a Set(#isFinal #isPublic)
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> subInheritances: #()
> methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
> container: ad_hoc (Namespace)
> superInheritances: #()
> attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...
>
> [:each | | invokedMtd | each isASureInvocation
> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
> invokedMtd isNil
> ifFalse: [(invokedMtd isAbstract
> or: [invokedMtd = self])
> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
> Receiver: Planet>>surfaceGravity() (Method)
> Arguments and temporary variables:
> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
> each: a Set()
> invokedMtd: nil
> Receiver's instance variables:
> mooseID: 3985
> state: a MooseDefaultState
> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'surfaceGravity'
> isStub: false
> receivingInvocations: #()
> modifiers: a Set()
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
> localVariables: #()
> parameters: #()
> signature: 'surfaceGravity()'
> accesses: an Array(surfaceGravity -> G (Access))
> declaredType: double (Type)
> kind: nil
> parentType: Planet in ad_hoc (Type)
>
> OrderedCollection>>do:
> Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
> Arguments and temporary variables:
> aBlock: [:each | | invokedMtd | each isASureInvocation
> ifTrue: [invokedMtd :=...etc...
> index: 3
> Receiver's instance variables:
> array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
> firstIndex: 3
> lastIndex: 5
>
> FMMultivalueLink>>do:
> Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
> Arguments and temporary variables:
> aBlock: [:each | | invokedMtd | each isASureInvocation
> ifTrue: [invokedMtd :=...etc...
> Receiver's instance variables:
> values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
> owner: Planet>>surfaceGravity() (Method)
> opposite: #sender:
>
> FAMIXMethod>>privateSureInvokedMethods
> Receiver: Planet>>surfaceGravity() (Method)
> Arguments and temporary variables:
> outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
> sureInvokedMtdsSet: a Set()
> Receiver's instance variables:
> mooseID: 3985
> state: a MooseDefaultState
> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'surfaceGravity'
> isStub: false
> receivingInvocations: #()
> modifiers: a Set()
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
> localVariables: #()
> parameters: #()
> signature: 'surfaceGravity()'
> accesses: an Array(surfaceGravity -> G (Access))
> declaredType: double (Type)
> kind: nil
> parentType: Planet in ad_hoc (Type)
>
> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
> Receiver: Planet>>surfaceGravity() (Method)
> Arguments and temporary variables:
>
> Receiver's instance variables:
> mooseID: 3985
> state: a MooseDefaultState
> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'surfaceGravity'
> isStub: false
> receivingInvocations: #()
> modifiers: a Set()
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
> localVariables: #()
> parameters: #()
> signature: 'surfaceGravity()'
> accesses: an Array(surfaceGravity -> G (Access))
> declaredType: double (Type)
> kind: nil
> parentType: Planet in ad_hoc (Type)
>
> SmallDictionary>>at:ifAbsentPut:
> Receiver: a SmallDictionary()
> Arguments and temporary variables:
> key: #sureInvokedMethods
> aBlock: [self privateSureInvokedMethods]
> index: 0
> Receiver's instance variables:
> keys: #(nil nil)
> values: #(nil nil)
> size: 0
>
> MooseDefaultState>>cacheAt:ifAbsentPut:
> Receiver: a MooseDefaultState
> Arguments and temporary variables:
> name: #sureInvokedMethods
> aBlock: [self privateSureInvokedMethods]
> Receiver's instance variables:
> attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
> entity: Planet>>surfaceGravity() (Method)
> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
> queryCache: a SmallDictionary()
>
> FAMIXMethod>>sureInvokedMethods
> Receiver: Planet>>surfaceGravity() (Method)
> Arguments and temporary variables:
>
> Receiver's instance variables:
> mooseID: 3985
> state: a MooseDefaultState
> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'surfaceGravity'
> isStub: false
> receivingInvocations: #()
> modifiers: a Set()
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
> localVariables: #()
> parameters: #()
> signature: 'surfaceGravity()'
> accesses: an Array(surfaceGravity -> G (Access))
> declaredType: double (Type)
> kind: nil
> parentType: Planet in ad_hoc (Type)
>
> FAMIXMethod>>invokedMethods
> Receiver: Planet>>surfaceGravity() (Method)
> Arguments and temporary variables:
>
> Receiver's instance variables:
> mooseID: 3985
> state: a MooseDefaultState
> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> sourceLanguage: nil
> comments: #()
> declaredSourceLanguage: nil
> name: 'surfaceGravity'
> isStub: false
> receivingInvocations: #()
> modifiers: a Set()
> parentPackage: nil
> outgoingReferences: #()
> types: #()
> incomingReferences: #()
> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
> localVariables: #()
> parameters: #()
> signature: 'surfaceGravity()'
> accesses: an Array(surfaceGravity -> G (Access))
> declaredType: double (Type)
> kind: nil
> parentType: Planet in ad_hoc (Type)
>
> [:each | each invokedMethods size] in [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:each | each isStub not].
> bar increment.
> allModelClasses := aMooseModel allModelClasses.
> bar increment.
> nop := aMooseModel allModelPackages size.
> bar increment.
> noc := allModelClasses size.
> bar increment.
> nom := allModelMethods size.
> bar increment.
> loc := allModelMethods sum: #numberOfLinesOfCode.
> bar increment.
> cyclo := allModelMethods sum: #cyclomaticComplexity.
> bar increment.
> fanout := allModelClasses sum: #fanOut.
> bar increment.
> calls := allModelMethods
> sum: [:each | each invokedMethods size].
> bar increment.
> andc := (allModelClasses
> sum: [:class | class directSubclasses size])
> / noc.
> bar increment.
> ahh := allModelClasses average: #hierarchyNestingLevel.
> bar increment] in OverviewPyramidMetrics>>model:
> Receiver: an OverviewPyramidMetrics
> Arguments and temporary variables:
> each: Planet>>surfaceGravity() (Method)
> Receiver's instance variables:
> nop: 0
> noc: 27
> nom: 238
> loc: 4230
> cyclo: 760
> fanout: 81
> calls: nil
> andc: nil
> ahh: nil
>
> [:sum :each | sum
> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
> Receiver: Group (238 FAMIXMethods)
> Arguments and temporary variables:
> aSymbolOrBlock: 442
> sum: Planet>>surfaceGravity() (Method)
> each: [:each | each invokedMethods size]
> Receiver's instance variables:
> mooseID: 13709
> state: a MooseDefaultState
> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>
> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
> Arguments and temporary variables:
> binaryBlock: Planet>>surfaceGravity() (Method)
> nextValue: [:sum :each | sum
> + (aSymbolOrBlock value: each)]
> each: #(442)
> Receiver's instance variables:
> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
> firstIndex: 333
> lastIndex: 570
>
> OrderedCollection>>do:
> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
> Arguments and temporary variables:
> aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
> index: 408
> Receiver's instance variables:
> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
> firstIndex: 333
> lastIndex: 570
>
> OrderedCollection(Collection)>>inject:into:
> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
> Arguments and temporary variables:
> thisValue: 0
> binaryBlock: [:sum :each | sum
> + (aSymbolOrBlock value: each)]
> nextValue: #(442)
> Receiver's instance variables:
> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
> firstIndex: 333
> lastIndex: 570
>
> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
> Receiver: Group (238 FAMIXMethods)
> Arguments and temporary variables:
> neutral: 0
> aBinaryBlock: [:sum :each | sum
> + (aSymbolOrBlock value: each)]
> Receiver's instance variables:
> mooseID: 13709
> state: a MooseDefaultState
> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>
> FAMIXMethodGroup(MooseGroup)>>sum:
> Receiver: Group (238 FAMIXMethods)
> Arguments and temporary variables:
> aSymbolOrBlock: [:each | each invokedMethods size]
> Receiver's instance variables:
> mooseID: 13709
> state: a MooseDefaultState
> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>
> [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:each | each isStub not].
> bar increment.
> allModelClasses := aMooseModel allModelClasses.
> bar increment.
> nop := aMooseModel allModelPackages size.
> bar increment.
> noc := allModelClasses size.
> bar increment.
> nom := allModelMethods size.
> bar increment.
> loc := allModelMethods sum: #numberOfLinesOfCode.
> bar increment.
> cyclo := allModelMethods sum: #cyclomaticComplexity.
> bar increment.
> fanout := allModelClasses sum: #fanOut.
> bar increment.
> calls := allModelMethods
> sum: [:each | each invokedMethods size].
> bar increment.
> andc := (allModelClasses
> sum: [:class | class directSubclasses size])
> / noc.
> bar increment.
> ahh := allModelClasses average: #hierarchyNestingLevel.
> bar increment] in OverviewPyramidMetrics>>model:
> Receiver: an OverviewPyramidMetrics
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> nop: 0
> noc: 27
> nom: 238
> loc: 4230
> cyclo: 760
> fanout: 81
> calls: nil
> andc: nil
> ahh: nil
>
> MooseCustomTask>>basicRun
> Receiver: a MooseCustomTask
> Arguments and temporary variables:
>
> Receiver's instance variables:
> progBar: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> retu...etc...
> nb: 8
> computation: [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:e...etc...
> description: 'OverviewPyramid - computing metrics'
> length: 11
>
> [:bar |
> progBar := bar.
> result := self basicRun] in [self setUp.
> nb := 0.
> UIManager default
> displayProgress: self description
> at: Sensor cursorPoint
> from: 1
> to: self length
> during: [:bar |
> progBar := bar.
> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
> Receiver: a MooseCustomTask
> Arguments and temporary variables:
> result: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> retur...etc...
> bar: #(nil)
> Receiver's instance variables:
> progBar: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> retu...etc...
> nb: 8
> computation: [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:e...etc...
> description: 'OverviewPyramid - computing metrics'
> length: 11
>
> [result := workBlock value: progress] in [[result := workBlock value: progress]
> on: ProgressNotification
> do: [:ex |
> ex extraParam isString
> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
> ex resume]] in ProgressInitiationException>>defaultMorphicAction
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
> progress: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> ret...etc...
> result: #(nil)
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> BlockClosure>>on:do:
> Receiver: [result := workBlock value: progress]
> Arguments and temporary variables:
> exception: ProgressNotification
> handlerAction: [:ex |
> ex extraParam isString
> ifTrue: [SystemProgressMorph un...etc...
> handlerActive: true
> Receiver's instance variables:
> outerContext: [[result := workBlock value: progress]
> on: ProgressNotification...etc...
> startpc: 83
> numArgs: 0
>
> [[result := workBlock value: progress]
> on: ProgressNotification
> do: [:ex |
> ex extraParam isString
> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
> ex resume]] in ProgressInitiationException>>defaultMorphicAction
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
> progress: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> ret...etc...
> result: #(nil)
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> BlockClosure>>ensure:
> Receiver: [[result := workBlock value: progress]
> on: ProgressNotification
> do: [:ex |
> ex extr...etc...
> Arguments and temporary variables:
> aBlock: [SystemProgressMorph close: progress]
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: ProgressInitiationException>>defaultMorphicAction
> startpc: 77
> numArgs: 0
>
> ProgressInitiationException>>defaultMorphicAction
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
> progress: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> ret...etc...
> result: #(nil)
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> MorphicUIManager>>progressInitiationExceptionDefaultAction:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> anException: ProgressInitiationException:
> Receiver's instance variables:
> interactiveParser: nil
>
> ProgressInitiationException>>defaultAction
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
>
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> UndefinedObject>>handleSignal:
> Receiver: nil
> Arguments and temporary variables:
> exception: ProgressInitiationException:
> Receiver's instance variables:
> nil
>
> MethodContext(ContextPart)>>handleSignal:
> Receiver: BlockClosure>>on:do:
> Arguments and temporary variables:
> exception: ProgressInitiationException:
> val: nil
> Receiver's instance variables:
> sender: PasteUpMorph>>becomeActiveDuring:
> pc: 17
> stackp: 3
> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
> closureOrNil: nil
> receiver: [aBlock value]
>
> ProgressInitiationException(Exception)>>signal
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
>
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> ProgressInitiationException>>display:at:from:to:during:
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
> argString: 'OverviewPyramid - computing metrics'
> argPoint: 296@172
> argMinVal: 1
> argMaxVal: 11
> argWorkBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> maxVal: 11
> minVal: 1
> aPoint: 296@172
> progressTitle: 'OverviewPyramid - computing metrics'
>
> ProgressInitiationException class>>display:at:from:to:during:
> Receiver: ProgressInitiationException
> Arguments and temporary variables:
> aString: 'OverviewPyramid - computing metrics'
> aPoint: 296@172
> minVal: 1
> maxVal: 11
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> Receiver's instance variables:
> superclass: Exception
> methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
> format: 150
> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
> organization: ('*Morphic' defaultMorphicAction)
> ('accessing' maxVal minVal poin...etc...
> subclasses: nil
> name: #ProgressInitiationException
> classPool: nil
> sharedPools: nil
> environment: a SystemDictionary(lots of globals)
> category: #'UIManager-Support'
> traitComposition: {}
> localSelectors: nil
>
> MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> titleString: 'OverviewPyramid - computing metrics'
> aPoint: 296@172
> minVal: 1
> maxVal: 11
> workBlock: [:bar |
> progBar := bar.
> result := self basicRun]
> Receiver's instance variables:
> interactiveParser: nil
>
> [self setUp.
> nb := 0.
> UIManager default
> displayProgress: self description
> at: Sensor cursorPoint
> from: 1
> to: self length
> during: [:bar |
> progBar := bar.
> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
> Receiver: a MooseCustomTask
> Arguments and temporary variables:
> result: #(nil)
> Receiver's instance variables:
> progBar: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> retu...etc...
> nb: 8
> computation: [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:e...etc...
> description: 'OverviewPyramid - computing metrics'
> length: 11
>
> BlockClosure>>ensure:
> Receiver: [self setUp.
> nb := 0.
> UIManager default
> displayProgress: self description
> at: Sensor...etc...
> Arguments and temporary variables:
> aBlock: [self tearDown]
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
> startpc: 65
> numArgs: 0
>
> MooseCustomTask(MooseTask)>>runWithProgress
> Receiver: a MooseCustomTask
> Arguments and temporary variables:
> result: #(nil)
> Receiver's instance variables:
> progBar: [:barValArg |
> | barVal return newBarSize |
> barVal := barValArg.
> retu...etc...
> nb: 8
> computation: [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:e...etc...
> description: 'OverviewPyramid - computing metrics'
> length: 11
>
> MooseCustomTask class>>runWithProgress:description:length:
> Receiver: MooseCustomTask
> Arguments and temporary variables:
> aBlock: [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:each |...etc...
> aDescription: 'OverviewPyramid - computing metrics'
> aNumber: 11
> Receiver's instance variables:
> superclass: MooseTask
> methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
> format: 140
> instanceVariables: #('computation' 'description' 'length')
> organization: ('as yet unclassified' basicRun description length with:descripti...etc...
> subclasses: nil
> name: #MooseCustomTask
> classPool: nil
> sharedPools: nil
> environment: a SystemDictionary(lots of globals)
> category: #'Moose-Core'
> traitComposition: {}
> localSelectors: nil
>
> OverviewPyramidMetrics>>model:
> Receiver: an OverviewPyramidMetrics
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> nop: 0
> noc: 27
> nom: 238
> loc: 4230
> cyclo: 760
> fanout: 81
> calls: nil
> andc: nil
> ahh: nil
>
> OverviewPyramidMetrics class>>on:
> Receiver: OverviewPyramidMetrics
> Arguments and temporary variables:
> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
> Receiver's instance variables:
> superclass: Object
> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
> format: 148
> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
> subclasses: nil
> name: #OverviewPyramidMetrics
> classPool: nil
> sharedPools: nil
> environment: a SystemDictionary(lots of globals)
> category: #'Famix-Extensions'
> traitComposition: {}
> localSelectors: nil
>
>
> --- The full stack ---
> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
> [:each | | invokedMtd | each isASureInvocation
> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
> invokedMtd isNil
> ifFalse: [(invokedMtd isAbstract
> or: [invokedMtd = self])
> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
> OrderedCollection>>do:
> FMMultivalueLink>>do:
> FAMIXMethod>>privateSureInvokedMethods
> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
> SmallDictionary>>at:ifAbsentPut:
> MooseDefaultState>>cacheAt:ifAbsentPut:
> FAMIXMethod>>sureInvokedMethods
> FAMIXMethod>>invokedMethods
> [:each | each invokedMethods size] in [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:each | each isStub not].
> bar increment.
> allModelClasses := aMooseModel allModelClasses.
> bar increment.
> nop := aMooseModel allModelPackages size.
> bar increment.
> noc := allModelClasses size.
> bar increment.
> nom := allModelMethods size.
> bar increment.
> loc := allModelMethods sum: #numberOfLinesOfCode.
> bar increment.
> cyclo := allModelMethods sum: #cyclomaticComplexity.
> bar increment.
> fanout := allModelClasses sum: #fanOut.
> bar increment.
> calls := allModelMethods
> sum: [:each | each invokedMethods size].
> bar increment.
> andc := (allModelClasses
> sum: [:class | class directSubclasses size])
> / noc.
> bar increment.
> ahh := allModelClasses average: #hierarchyNestingLevel.
> bar increment] in OverviewPyramidMetrics>>model:
> [:sum :each | sum
> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
> OrderedCollection>>do:
> OrderedCollection(Collection)>>inject:into:
> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
> FAMIXMethodGroup(MooseGroup)>>sum:
> [:bar |
> allModelMethods := aMooseModel allMethods
> select: [:each | each isStub not].
> bar increment.
> allModelClasses := aMooseModel allModelClasses.
> bar increment.
> nop := aMooseModel allModelPackages size.
> bar increment.
> noc := allModelClasses size.
> bar increment.
> nom := allModelMethods size.
> bar increment.
> loc := allModelMethods sum: #numberOfLinesOfCode.
> bar increment.
> cyclo := allModelMethods sum: #cyclomaticComplexity.
> bar increment.
> fanout := allModelClasses sum: #fanOut.
> bar increment.
> calls := allModelMethods
> sum: [:each | each invokedMethods size].
> bar increment.
> andc := (allModelClasses
> sum: [:class | class directSubclasses size])
> / noc.
> bar increment.
> ahh := allModelClasses average: #hierarchyNestingLevel.
> bar increment] in OverviewPyramidMetrics>>model:
> MooseCustomTask>>basicRun
> [:bar |
> progBar := bar.
> result := self basicRun] in [self setUp.
> nb := 0.
> UIManager default
> displayProgress: self description
> at: Sensor cursorPoint
> from: 1
> to: self length
> during: [:bar |
> progBar := bar.
> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
> [result := workBlock value: progress] in [[result := workBlock value: progress]
> on: ProgressNotification
> do: [:ex |
> ex extraParam isString
> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
> ex resume]] in ProgressInitiationException>>defaultMorphicAction
> BlockClosure>>on:do:
> [[result := workBlock value: progress]
> on: ProgressNotification
> do: [:ex |
> ex extraParam isString
> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
> ex resume]] in ProgressInitiationException>>defaultMorphicAction
> BlockClosure>>ensure:
> ProgressInitiationException>>defaultMorphicAction
> MorphicUIManager>>progressInitiationExceptionDefaultAction:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> MorphicUIManager>>displayProgress:at:from:to:during:
> [self setUp.
> nb := 0.
> UIManager default
> displayProgress: self description
> at: Sensor cursorPoint
> from: 1
> to: self length
> during: [:bar |
> progBar := bar.
> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
> BlockClosure>>ensure:
> MooseCustomTask(MooseTask)>>runWithProgress
> MooseCustomTask class>>runWithProgress:description:length:
> OverviewPyramidMetrics>>model:
> OverviewPyramidMetrics class>>on:
> - - - - - - - - - - - - - - -  
> - - - - - - - - - - - - - - - - - -
> [OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
> SmallDictionary>>at:ifAbsentPut:
> MooseDefaultState>>propertyAt:ifAbsentPut:
> MooseModel>>overviewPyramidMetrics
> OverviewPyramid>>initializeWith:
> OverviewPyramid class>>on:
> MooseModel>>viewOverviewPyramidMap
> [:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
> action: [:x | self perform: eachPragma selector];
>
> title: (eachPragma argumentAt: 1);
>
> category: (eachPragma argumentAt: 2)] in [:eachClass |
> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
> collect: [:eachPragma | GLMGenericAction new
> action: [:x | self perform: eachPragma selector];
>
> title: (eachPragma argumentAt: 1);
>
> category: (eachPragma argumentAt: 2)].
> simple := (Pragma allNamed: #menuItem: in: eachClass)
> collect: [:eachPragma | GLMGenericAction new
> action: [:x | self perform: eachPragma selector];
>
> title: (eachPragma argumentAt: 1)].
> categorized , simple] in MooseModel(Object)>>mooseFinderActions
> BlockClosure>>glamourValueWithArgs:
> GLMGenericAction(GLMAction)>>actOn:
> [:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
> [:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
> ActionSequence(SequenceableCollection)>>do:
> ActionSequence>>valueWithArguments:
> [:class :actions | (class handles: announcement)
> ifTrue: [actions
> valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
> [:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
> [:each | each
> ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
> Array(SequenceableCollection)>>do:
> IdentityDictionary(Dictionary)>>associationsDo:
> IdentityDictionary(Dictionary)>>keysAndValuesDo:
> GLMAnnouncer>>announce:
> GLMTreeMorphModel>>announce:
> GLMTreeMorphNodeModel>>executeMenuAction:
> [| selArgCount | (selArgCount := selector numArgs) = 0
> ifTrue: [target perform: selector]
> ifFalse: [selArgCount = arguments size
> ifTrue: [target perform: selector withArguments: arguments]
> ifFalse: [target
> perform: selector
> withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> BlockClosure>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> ToggleMenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ToggleMenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> [ActiveHand := self.
> ActiveEvent := anEvent.
> result := focusHolder
> handleFocusEvent: (anEvent
> transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
> BlockClosure>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [:h |
> ActiveHand := h.
> h processEvents.
> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [[World doOneCycle.
> Processor yield.
> false] whileFalse.
> nil] in Project class>>spawnNewProcess
> [self value.
> Processor terminateActive] in BlockClosure>>newProcess
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"What is more important: To be happy, or to make happy?"


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Nicolas Anquetil

Funny, I do have a DNU problem, but the method is hierarchyNestingLevel

mse file for eclipse available at http://dl.dropbox.com/u/12861461/eclipse.mse.zip

nicolas

PS: I can look at some point, but not right now

----- Mail original -----

> De: "Tudor Girba" <[hidden email]>
> À: "Moose-related development" <[hidden email]>
> Envoyé: Mardi 24 Mai 2011 15:35:00
> Objet: [Moose-dev] Re: bringing the overview pyramid on verveineJ model -> DNU
> Could you please provide a link to the MSE file so that we can
> reproduce the problem?
>
> Cheers,
> Doru
>
>
> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>
> > From: ss
> > To: [hidden email]
> > Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
> >
> > here insert explanation of what you were doing, suspect changes
> > you've made and so forth.
> >
> > 24 May 2011 3:22:18 pm
> >
> > VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter
> > VMMaker-oscog.51] Moose Suite 4.4
> > Image: Pharo1.2.1 [Latest update: #12345]
> >
> > SecurityManager state:
> > Restricted: false
> > FileAccess: true
> > SocketAccess: true
> > Working Dir
> > /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
> > Trusted Dir /foobar/tooBar/forSqueak/bogus
> > Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My
> > Squeak
> >
> > FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
> > Receiver: Planet in ad_hoc (Type)
> > Arguments and temporary variables:
> > aMessage: lookUp: 'radius()'
> > exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
> > resumeValue: nil
> > Receiver's instance variables:
> > mooseID: 2324
> > state: a MooseDefaultState
> > sourceAnchor: nil
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'Planet'
> > isStub: false
> > receivingInvocations: an Array(main -> Planet#values()
> > (Invocation))
> > modifiers: a Set(#isFinal #isPublic)
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > subInheritances: #()
> > methods: an Array(Planet>>surfaceWeight(double) (Method)
> > Planet>>toString() (Me...etc...
> > container: ad_hoc (Namespace)
> > superInheritances: #()
> > attributes: an Array(Planet.radius (Attribute) Planet.mass
> > (Attribute) Planet.G...etc...
> > values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue
> > #SATURN a FAMIXEnum...etc...
> >
> > [:each | | invokedMtd | each isASureInvocation
> > ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each
> > signature.
> > invokedMtd isNil
> > ifFalse: [(invokedMtd isAbstract
> > or: [invokedMtd = self])
> > ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in
> > FAMIXMethod>>privateSureInvokedMethods
> > Receiver: Planet>>surfaceGravity() (Method)
> > Arguments and temporary variables:
> > sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
> > each: a Set()
> > invokedMtd: nil
> > Receiver's instance variables:
> > mooseID: 3985
> > state: a MooseDefaultState
> > sourceAnchor: a FAMIXFileAnchor
> > #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'surfaceGravity'
> > isStub: false
> > receivingInvocations: #()
> > modifiers: a Set()
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > outgoingInvocations: an Array(surfaceGravity -> self#radius()
> > (Invocation) surf...etc...
> > incomingInvocations: an Array(surfaceWeight ->
> > self#surfaceGravity() (Invocatio...etc...
> > localVariables: #()
> > parameters: #()
> > signature: 'surfaceGravity()'
> > accesses: an Array(surfaceGravity -> G (Access))
> > declaredType: double (Type)
> > kind: nil
> > parentType: Planet in ad_hoc (Type)
> >
> > OrderedCollection>>do:
> > Receiver: an OrderedCollection(surfaceGravity -> self#radius()
> > (Invocation) surfaceGravity -> self#r...etc...
> > Arguments and temporary variables:
> > aBlock: [:each | | invokedMtd | each isASureInvocation
> > ifTrue: [invokedMtd :=...etc...
> > index: 3
> > Receiver's instance variables:
> > array: an Array(nil nil surfaceGravity -> self#radius()
> > (Invocation) surfaceGra...etc...
> > firstIndex: 3
> > lastIndex: 5
> >
> > FMMultivalueLink>>do:
> > Receiver: an Array(surfaceGravity -> self#radius() (Invocation)
> > surfaceGravity -> self#radius() (Inv...etc...
> > Arguments and temporary variables:
> > aBlock: [:each | | invokedMtd | each isASureInvocation
> > ifTrue: [invokedMtd :=...etc...
> > Receiver's instance variables:
> > values: an OrderedCollection(surfaceGravity -> self#radius()
> > (Invocation) surfa...etc...
> > owner: Planet>>surfaceGravity() (Method)
> > opposite: #sender:
> >
> > FAMIXMethod>>privateSureInvokedMethods
> > Receiver: Planet>>surfaceGravity() (Method)
> > Arguments and temporary variables:
> > outgoingInvo: an Array(surfaceGravity -> self#radius()
> > (Invocation) surfaceGrav...etc...
> > sureInvokedMtdsSet: a Set()
> > Receiver's instance variables:
> > mooseID: 3985
> > state: a MooseDefaultState
> > sourceAnchor: a FAMIXFileAnchor
> > #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'surfaceGravity'
> > isStub: false
> > receivingInvocations: #()
> > modifiers: a Set()
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > outgoingInvocations: an Array(surfaceGravity -> self#radius()
> > (Invocation) surf...etc...
> > incomingInvocations: an Array(surfaceWeight ->
> > self#surfaceGravity() (Invocatio...etc...
> > localVariables: #()
> > parameters: #()
> > signature: 'surfaceGravity()'
> > accesses: an Array(surfaceGravity -> G (Access))
> > declaredType: double (Type)
> > kind: nil
> > parentType: Planet in ad_hoc (Type)
> >
> > [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
> > Receiver: Planet>>surfaceGravity() (Method)
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > mooseID: 3985
> > state: a MooseDefaultState
> > sourceAnchor: a FAMIXFileAnchor
> > #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'surfaceGravity'
> > isStub: false
> > receivingInvocations: #()
> > modifiers: a Set()
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > outgoingInvocations: an Array(surfaceGravity -> self#radius()
> > (Invocation) surf...etc...
> > incomingInvocations: an Array(surfaceWeight ->
> > self#surfaceGravity() (Invocatio...etc...
> > localVariables: #()
> > parameters: #()
> > signature: 'surfaceGravity()'
> > accesses: an Array(surfaceGravity -> G (Access))
> > declaredType: double (Type)
> > kind: nil
> > parentType: Planet in ad_hoc (Type)
> >
> > SmallDictionary>>at:ifAbsentPut:
> > Receiver: a SmallDictionary()
> > Arguments and temporary variables:
> > key: #sureInvokedMethods
> > aBlock: [self privateSureInvokedMethods]
> > index: 0
> > Receiver's instance variables:
> > keys: #(nil nil)
> > values: #(nil nil)
> > size: 0
> >
> > MooseDefaultState>>cacheAt:ifAbsentPut:
> > Receiver: a MooseDefaultState
> > Arguments and temporary variables:
> > name: #sureInvokedMethods
> > aBlock: [self privateSureInvokedMethods]
> > Receiver's instance variables:
> > attributes: an Array(#privateModel->a MooseModel
> > #'verveine.extractor.java'(582...etc...
> > entity: Planet>>surfaceGravity() (Method)
> > propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
> > queryCache: a SmallDictionary()
> >
> > FAMIXMethod>>sureInvokedMethods
> > Receiver: Planet>>surfaceGravity() (Method)
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > mooseID: 3985
> > state: a MooseDefaultState
> > sourceAnchor: a FAMIXFileAnchor
> > #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'surfaceGravity'
> > isStub: false
> > receivingInvocations: #()
> > modifiers: a Set()
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > outgoingInvocations: an Array(surfaceGravity -> self#radius()
> > (Invocation) surf...etc...
> > incomingInvocations: an Array(surfaceWeight ->
> > self#surfaceGravity() (Invocatio...etc...
> > localVariables: #()
> > parameters: #()
> > signature: 'surfaceGravity()'
> > accesses: an Array(surfaceGravity -> G (Access))
> > declaredType: double (Type)
> > kind: nil
> > parentType: Planet in ad_hoc (Type)
> >
> > FAMIXMethod>>invokedMethods
> > Receiver: Planet>>surfaceGravity() (Method)
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > mooseID: 3985
> > state: a MooseDefaultState
> > sourceAnchor: a FAMIXFileAnchor
> > #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
> > sourceLanguage: nil
> > comments: #()
> > declaredSourceLanguage: nil
> > name: 'surfaceGravity'
> > isStub: false
> > receivingInvocations: #()
> > modifiers: a Set()
> > parentPackage: nil
> > outgoingReferences: #()
> > types: #()
> > incomingReferences: #()
> > outgoingInvocations: an Array(surfaceGravity -> self#radius()
> > (Invocation) surf...etc...
> > incomingInvocations: an Array(surfaceWeight ->
> > self#surfaceGravity() (Invocatio...etc...
> > localVariables: #()
> > parameters: #()
> > signature: 'surfaceGravity()'
> > accesses: an Array(surfaceGravity -> G (Access))
> > declaredType: double (Type)
> > kind: nil
> > parentType: Planet in ad_hoc (Type)
> >
> > [:each | each invokedMethods size] in [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:each | each isStub not].
> > bar increment.
> > allModelClasses := aMooseModel allModelClasses.
> > bar increment.
> > nop := aMooseModel allModelPackages size.
> > bar increment.
> > noc := allModelClasses size.
> > bar increment.
> > nom := allModelMethods size.
> > bar increment.
> > loc := allModelMethods sum: #numberOfLinesOfCode.
> > bar increment.
> > cyclo := allModelMethods sum: #cyclomaticComplexity.
> > bar increment.
> > fanout := allModelClasses sum: #fanOut.
> > bar increment.
> > calls := allModelMethods
> > sum: [:each | each invokedMethods size].
> > bar increment.
> > andc := (allModelClasses
> > sum: [:class | class directSubclasses size])
> > / noc.
> > bar increment.
> > ahh := allModelClasses average: #hierarchyNestingLevel.
> > bar increment] in OverviewPyramidMetrics>>model:
> > Receiver: an OverviewPyramidMetrics
> > Arguments and temporary variables:
> > each: Planet>>surfaceGravity() (Method)
> > Receiver's instance variables:
> > nop: 0
> > noc: 27
> > nom: 238
> > loc: 4230
> > cyclo: 760
> > fanout: 81
> > calls: nil
> > andc: nil
> > ahh: nil
> >
> > [:sum :each | sum
> > + (aSymbolOrBlock value: each)] in
> > FAMIXMethodGroup(MooseGroup)>>sum:
> > Receiver: Group (238 FAMIXMethods)
> > Arguments and temporary variables:
> > aSymbolOrBlock: 442
> > sum: Planet>>surfaceGravity() (Method)
> > each: [:each | each invokedMethods size]
> > Receiver's instance variables:
> > mooseID: 13709
> > state: a MooseDefaultState
> > storage: a
> > MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
> > (Method)...etc...
> >
> > [:each | nextValue := binaryBlock value: nextValue value: each] in
> > OrderedCollection(Collection)>>inject:into:
> > Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
> > (Method) VerveineVisitor>>endVisit...etc...
> > Arguments and temporary variables:
> > binaryBlock: Planet>>surfaceGravity() (Method)
> > nextValue: [:sum :each | sum
> > + (aSymbolOrBlock value: each)]
> > each: #(442)
> > Receiver's instance variables:
> > array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
> > nil nil nil nil...etc...
> > firstIndex: 333
> > lastIndex: 570
> >
> > OrderedCollection>>do:
> > Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
> > (Method) VerveineVisitor>>endVisit...etc...
> > Arguments and temporary variables:
> > aBlock: [:each | nextValue := binaryBlock value: nextValue value:
> > each]
> > index: 408
> > Receiver's instance variables:
> > array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
> > nil nil nil nil...etc...
> > firstIndex: 333
> > lastIndex: 570
> >
> > OrderedCollection(Collection)>>inject:into:
> > Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
> > (Method) VerveineVisitor>>endVisit...etc...
> > Arguments and temporary variables:
> > thisValue: 0
> > binaryBlock: [:sum :each | sum
> > + (aSymbolOrBlock value: each)]
> > nextValue: #(442)
> > Receiver's instance variables:
> > array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
> > nil nil nil nil...etc...
> > firstIndex: 333
> > lastIndex: 570
> >
> > FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
> > Receiver: Group (238 FAMIXMethods)
> > Arguments and temporary variables:
> > neutral: 0
> > aBinaryBlock: [:sum :each | sum
> > + (aSymbolOrBlock value: each)]
> > Receiver's instance variables:
> > mooseID: 13709
> > state: a MooseDefaultState
> > storage: a
> > MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
> > (Method)...etc...
> >
> > FAMIXMethodGroup(MooseGroup)>>sum:
> > Receiver: Group (238 FAMIXMethods)
> > Arguments and temporary variables:
> > aSymbolOrBlock: [:each | each invokedMethods size]
> > Receiver's instance variables:
> > mooseID: 13709
> > state: a MooseDefaultState
> > storage: a
> > MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
> > (Method)...etc...
> >
> > [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:each | each isStub not].
> > bar increment.
> > allModelClasses := aMooseModel allModelClasses.
> > bar increment.
> > nop := aMooseModel allModelPackages size.
> > bar increment.
> > noc := allModelClasses size.
> > bar increment.
> > nom := allModelMethods size.
> > bar increment.
> > loc := allModelMethods sum: #numberOfLinesOfCode.
> > bar increment.
> > cyclo := allModelMethods sum: #cyclomaticComplexity.
> > bar increment.
> > fanout := allModelClasses sum: #fanOut.
> > bar increment.
> > calls := allModelMethods
> > sum: [:each | each invokedMethods size].
> > bar increment.
> > andc := (allModelClasses
> > sum: [:class | class directSubclasses size])
> > / noc.
> > bar increment.
> > ahh := allModelClasses average: #hierarchyNestingLevel.
> > bar increment] in OverviewPyramidMetrics>>model:
> > Receiver: an OverviewPyramidMetrics
> > Arguments and temporary variables:
> > <<error during printing>
> > Receiver's instance variables:
> > nop: 0
> > noc: 27
> > nom: 238
> > loc: 4230
> > cyclo: 760
> > fanout: 81
> > calls: nil
> > andc: nil
> > ahh: nil
> >
> > MooseCustomTask>>basicRun
> > Receiver: a MooseCustomTask
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > progBar: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > retu...etc...
> > nb: 8
> > computation: [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:e...etc...
> > description: 'OverviewPyramid - computing metrics'
> > length: 11
> >
> > [:bar |
> > progBar := bar.
> > result := self basicRun] in [self setUp.
> > nb := 0.
> > UIManager default
> > displayProgress: self description
> > at: Sensor cursorPoint
> > from: 1
> > to: self length
> > during: [:bar |
> > progBar := bar.
> > result := self basicRun]] in
> > MooseCustomTask(MooseTask)>>runWithProgress
> > Receiver: a MooseCustomTask
> > Arguments and temporary variables:
> > result: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > retur...etc...
> > bar: #(nil)
> > Receiver's instance variables:
> > progBar: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > retu...etc...
> > nb: 8
> > computation: [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:e...etc...
> > description: 'OverviewPyramid - computing metrics'
> > length: 11
> >
> > [result := workBlock value: progress] in [[result := workBlock
> > value: progress]
> > on: ProgressNotification
> > do: [:ex |
> > ex extraParam isString
> > ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
> > put: ex extraParam].
> > ex resume]] in ProgressInitiationException>>defaultMorphicAction
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> > progress: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > ret...etc...
> > result: #(nil)
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > BlockClosure>>on:do:
> > Receiver: [result := workBlock value: progress]
> > Arguments and temporary variables:
> > exception: ProgressNotification
> > handlerAction: [:ex |
> > ex extraParam isString
> > ifTrue: [SystemProgressMorph un...etc...
> > handlerActive: true
> > Receiver's instance variables:
> > outerContext: [[result := workBlock value: progress]
> > on: ProgressNotification...etc...
> > startpc: 83
> > numArgs: 0
> >
> > [[result := workBlock value: progress]
> > on: ProgressNotification
> > do: [:ex |
> > ex extraParam isString
> > ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
> > put: ex extraParam].
> > ex resume]] in ProgressInitiationException>>defaultMorphicAction
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> > progress: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > ret...etc...
> > result: #(nil)
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > BlockClosure>>ensure:
> > Receiver: [[result := workBlock value: progress]
> > on: ProgressNotification
> > do: [:ex |
> > ex extr...etc...
> > Arguments and temporary variables:
> > aBlock: [SystemProgressMorph close: progress]
> > complete: nil
> > returnValue: nil
> > Receiver's instance variables:
> > outerContext: ProgressInitiationException>>defaultMorphicAction
> > startpc: 77
> > numArgs: 0
> >
> > ProgressInitiationException>>defaultMorphicAction
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> > progress: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > ret...etc...
> > result: #(nil)
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > MorphicUIManager>>progressInitiationExceptionDefaultAction:
> > Receiver: a MorphicUIManager
> > Arguments and temporary variables:
> > anException: ProgressInitiationException:
> > Receiver's instance variables:
> > interactiveParser: nil
> >
> > ProgressInitiationException>>defaultAction
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > UndefinedObject>>handleSignal:
> > Receiver: nil
> > Arguments and temporary variables:
> > exception: ProgressInitiationException:
> > Receiver's instance variables:
> > nil
> >
> > MethodContext(ContextPart)>>handleSignal:
> > Receiver: BlockClosure>>on:do:
> > Arguments and temporary variables:
> > exception: ProgressInitiationException:
> > val: nil
> > Receiver's instance variables:
> > sender: PasteUpMorph>>becomeActiveDuring:
> > pc: 17
> > stackp: 3
> > method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
> > closureOrNil: nil
> > receiver: [aBlock value]
> >
> > ProgressInitiationException(Exception)>>signal
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> >
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > ProgressInitiationException>>display:at:from:to:during:
> > Receiver: ProgressInitiationException:
> > Arguments and temporary variables:
> > argString: 'OverviewPyramid - computing metrics'
> > argPoint: 296@172
> > argMinVal: 1
> > argMaxVal: 11
> > argWorkBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > Receiver's instance variables:
> > messageText: nil
> > tag: nil
> > signalContext: ProgressInitiationException(Exception)>>signal
> > handlerContext: nil
> > outerContext: nil
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > maxVal: 11
> > minVal: 1
> > aPoint: 296@172
> > progressTitle: 'OverviewPyramid - computing metrics'
> >
> > ProgressInitiationException class>>display:at:from:to:during:
> > Receiver: ProgressInitiationException
> > Arguments and temporary variables:
> > aString: 'OverviewPyramid - computing metrics'
> > aPoint: 296@172
> > minVal: 1
> > maxVal: 11
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > Receiver's instance variables:
> > superclass: Exception
> > methodDict: a
> > MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
> > format: 150
> > instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint'
> > 'progressTitle')
> > organization: ('*Morphic' defaultMorphicAction)
> > ('accessing' maxVal minVal poin...etc...
> > subclasses: nil
> > name: #ProgressInitiationException
> > classPool: nil
> > sharedPools: nil
> > environment: a SystemDictionary(lots of globals)
> > category: #'UIManager-Support'
> > traitComposition: {}
> > localSelectors: nil
> >
> > MorphicUIManager>>displayProgress:at:from:to:during:
> > Receiver: a MorphicUIManager
> > Arguments and temporary variables:
> > titleString: 'OverviewPyramid - computing metrics'
> > aPoint: 296@172
> > minVal: 1
> > maxVal: 11
> > workBlock: [:bar |
> > progBar := bar.
> > result := self basicRun]
> > Receiver's instance variables:
> > interactiveParser: nil
> >
> > [self setUp.
> > nb := 0.
> > UIManager default
> > displayProgress: self description
> > at: Sensor cursorPoint
> > from: 1
> > to: self length
> > during: [:bar |
> > progBar := bar.
> > result := self basicRun]] in
> > MooseCustomTask(MooseTask)>>runWithProgress
> > Receiver: a MooseCustomTask
> > Arguments and temporary variables:
> > result: #(nil)
> > Receiver's instance variables:
> > progBar: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > retu...etc...
> > nb: 8
> > computation: [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:e...etc...
> > description: 'OverviewPyramid - computing metrics'
> > length: 11
> >
> > BlockClosure>>ensure:
> > Receiver: [self setUp.
> > nb := 0.
> > UIManager default
> > displayProgress: self description
> > at: Sensor...etc...
> > Arguments and temporary variables:
> > aBlock: [self tearDown]
> > complete: nil
> > returnValue: nil
> > Receiver's instance variables:
> > outerContext: MooseCustomTask(MooseTask)>>runWithProgress
> > startpc: 65
> > numArgs: 0
> >
> > MooseCustomTask(MooseTask)>>runWithProgress
> > Receiver: a MooseCustomTask
> > Arguments and temporary variables:
> > result: #(nil)
> > Receiver's instance variables:
> > progBar: [:barValArg |
> > | barVal return newBarSize |
> > barVal := barValArg.
> > retu...etc...
> > nb: 8
> > computation: [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:e...etc...
> > description: 'OverviewPyramid - computing metrics'
> > length: 11
> >
> > MooseCustomTask class>>runWithProgress:description:length:
> > Receiver: MooseCustomTask
> > Arguments and temporary variables:
> > aBlock: [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:each |...etc...
> > aDescription: 'OverviewPyramid - computing metrics'
> > aNumber: 11
> > Receiver's instance variables:
> > superclass: MooseTask
> > methodDict: a
> > MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a
> > Compil...etc...
> > format: 140
> > instanceVariables: #('computation' 'description' 'length')
> > organization: ('as yet unclassified' basicRun description length
> > with:descripti...etc...
> > subclasses: nil
> > name: #MooseCustomTask
> > classPool: nil
> > sharedPools: nil
> > environment: a SystemDictionary(lots of globals)
> > category: #'Moose-Core'
> > traitComposition: {}
> > localSelectors: nil
> >
> > OverviewPyramidMetrics>>model:
> > Receiver: an OverviewPyramidMetrics
> > Arguments and temporary variables:
> > <<error during printing>
> > Receiver's instance variables:
> > nop: 0
> > noc: 27
> > nom: 238
> > loc: 4230
> > cyclo: 760
> > fanout: 81
> > calls: nil
> > andc: nil
> > ahh: nil
> >
> > OverviewPyramidMetrics class>>on:
> > Receiver: OverviewPyramidMetrics
> > Arguments and temporary variables:
> > aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
> > Receiver's instance variables:
> > superclass: Object
> > methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh
> > "a CompiledM...etc...
> > format: 148
> > instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout'
> > 'calls' 'andc' 'a...etc...
> > organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc:
> > noc: nom: nop:...etc...
> > subclasses: nil
> > name: #OverviewPyramidMetrics
> > classPool: nil
> > sharedPools: nil
> > environment: a SystemDictionary(lots of globals)
> > category: #'Famix-Extensions'
> > traitComposition: {}
> > localSelectors: nil
> >
> >
> > --- The full stack ---
> > FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
> > [:each | | invokedMtd | each isASureInvocation
> > ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each
> > signature.
> > invokedMtd isNil
> > ifFalse: [(invokedMtd isAbstract
> > or: [invokedMtd = self])
> > ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in
> > FAMIXMethod>>privateSureInvokedMethods
> > OrderedCollection>>do:
> > FMMultivalueLink>>do:
> > FAMIXMethod>>privateSureInvokedMethods
> > [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
> > SmallDictionary>>at:ifAbsentPut:
> > MooseDefaultState>>cacheAt:ifAbsentPut:
> > FAMIXMethod>>sureInvokedMethods
> > FAMIXMethod>>invokedMethods
> > [:each | each invokedMethods size] in [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:each | each isStub not].
> > bar increment.
> > allModelClasses := aMooseModel allModelClasses.
> > bar increment.
> > nop := aMooseModel allModelPackages size.
> > bar increment.
> > noc := allModelClasses size.
> > bar increment.
> > nom := allModelMethods size.
> > bar increment.
> > loc := allModelMethods sum: #numberOfLinesOfCode.
> > bar increment.
> > cyclo := allModelMethods sum: #cyclomaticComplexity.
> > bar increment.
> > fanout := allModelClasses sum: #fanOut.
> > bar increment.
> > calls := allModelMethods
> > sum: [:each | each invokedMethods size].
> > bar increment.
> > andc := (allModelClasses
> > sum: [:class | class directSubclasses size])
> > / noc.
> > bar increment.
> > ahh := allModelClasses average: #hierarchyNestingLevel.
> > bar increment] in OverviewPyramidMetrics>>model:
> > [:sum :each | sum
> > + (aSymbolOrBlock value: each)] in
> > FAMIXMethodGroup(MooseGroup)>>sum:
> > [:each | nextValue := binaryBlock value: nextValue value: each] in
> > OrderedCollection(Collection)>>inject:into:
> > OrderedCollection>>do:
> > OrderedCollection(Collection)>>inject:into:
> > FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
> > FAMIXMethodGroup(MooseGroup)>>sum:
> > [:bar |
> > allModelMethods := aMooseModel allMethods
> > select: [:each | each isStub not].
> > bar increment.
> > allModelClasses := aMooseModel allModelClasses.
> > bar increment.
> > nop := aMooseModel allModelPackages size.
> > bar increment.
> > noc := allModelClasses size.
> > bar increment.
> > nom := allModelMethods size.
> > bar increment.
> > loc := allModelMethods sum: #numberOfLinesOfCode.
> > bar increment.
> > cyclo := allModelMethods sum: #cyclomaticComplexity.
> > bar increment.
> > fanout := allModelClasses sum: #fanOut.
> > bar increment.
> > calls := allModelMethods
> > sum: [:each | each invokedMethods size].
> > bar increment.
> > andc := (allModelClasses
> > sum: [:class | class directSubclasses size])
> > / noc.
> > bar increment.
> > ahh := allModelClasses average: #hierarchyNestingLevel.
> > bar increment] in OverviewPyramidMetrics>>model:
> > MooseCustomTask>>basicRun
> > [:bar |
> > progBar := bar.
> > result := self basicRun] in [self setUp.
> > nb := 0.
> > UIManager default
> > displayProgress: self description
> > at: Sensor cursorPoint
> > from: 1
> > to: self length
> > during: [:bar |
> > progBar := bar.
> > result := self basicRun]] in
> > MooseCustomTask(MooseTask)>>runWithProgress
> > [result := workBlock value: progress] in [[result := workBlock
> > value: progress]
> > on: ProgressNotification
> > do: [:ex |
> > ex extraParam isString
> > ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
> > put: ex extraParam].
> > ex resume]] in ProgressInitiationException>>defaultMorphicAction
> > BlockClosure>>on:do:
> > [[result := workBlock value: progress]
> > on: ProgressNotification
> > do: [:ex |
> > ex extraParam isString
> > ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
> > put: ex extraParam].
> > ex resume]] in ProgressInitiationException>>defaultMorphicAction
> > BlockClosure>>ensure:
> > ProgressInitiationException>>defaultMorphicAction
> > MorphicUIManager>>progressInitiationExceptionDefaultAction:
> > ProgressInitiationException>>defaultAction
> > UndefinedObject>>handleSignal:
> > MethodContext(ContextPart)>>handleSignal:
> > ProgressInitiationException(Exception)>>signal
> > ProgressInitiationException>>display:at:from:to:during:
> > ProgressInitiationException class>>display:at:from:to:during:
> > MorphicUIManager>>displayProgress:at:from:to:during:
> > [self setUp.
> > nb := 0.
> > UIManager default
> > displayProgress: self description
> > at: Sensor cursorPoint
> > from: 1
> > to: self length
> > during: [:bar |
> > progBar := bar.
> > result := self basicRun]] in
> > MooseCustomTask(MooseTask)>>runWithProgress
> > BlockClosure>>ensure:
> > MooseCustomTask(MooseTask)>>runWithProgress
> > MooseCustomTask class>>runWithProgress:description:length:
> > OverviewPyramidMetrics>>model:
> > OverviewPyramidMetrics class>>on:
> > - - - - - - - - - - - - - - -
> > - - - - - - - - - - - - - - - - - -
> > [OverviewPyramidMetrics on: self] in
> > MooseModel>>overviewPyramidMetrics
> > SmallDictionary>>at:ifAbsentPut:
> > MooseDefaultState>>propertyAt:ifAbsentPut:
> > MooseModel>>overviewPyramidMetrics
> > OverviewPyramid>>initializeWith:
> > OverviewPyramid class>>on:
> > MooseModel>>viewOverviewPyramidMap
> > [:x | self perform: eachPragma selector] in [:eachPragma |
> > GLMGenericAction new
> > action: [:x | self perform: eachPragma selector];
> >
> > title: (eachPragma argumentAt: 1);
> >
> > category: (eachPragma argumentAt: 2)] in [:eachClass |
> > categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
> > collect: [:eachPragma | GLMGenericAction new
> > action: [:x | self perform: eachPragma selector];
> >
> > title: (eachPragma argumentAt: 1);
> >
> > category: (eachPragma argumentAt: 2)].
> > simple := (Pragma allNamed: #menuItem: in: eachClass)
> > collect: [:eachPragma | GLMGenericAction new
> > action: [:x | self perform: eachPragma selector];
> >
> > title: (eachPragma argumentAt: 1)].
> > categorized , simple] in MooseModel(Object)>>mooseFinderActions
> > BlockClosure>>glamourValueWithArgs:
> > GLMGenericAction(GLMAction)>>actOn:
> > [:ann | ann action actOn: aPresentation] in
> > GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
> > [:each | answer := each valueWithArguments: anArray] in
> > ActionSequence>>valueWithArguments:
> > ActionSequence(SequenceableCollection)>>do:
> > ActionSequence>>valueWithArguments:
> > [:class :actions | (class handles: announcement)
> > ifTrue: [actions
> > valueWithArguments: (Array with: announcement)]] in
> > GLMAnnouncer>>announce:
> > [:assoc | aBlock value: assoc key value: assoc value] in
> > IdentityDictionary(Dictionary)>>keysAndValuesDo:
> > [:each | each
> > ifNotNil: [aBlock value: each]] in
> > IdentityDictionary(Dictionary)>>associationsDo:
> > Array(SequenceableCollection)>>do:
> > IdentityDictionary(Dictionary)>>associationsDo:
> > IdentityDictionary(Dictionary)>>keysAndValuesDo:
> > GLMAnnouncer>>announce:
> > GLMTreeMorphModel>>announce:
> > GLMTreeMorphNodeModel>>executeMenuAction:
> > [| selArgCount | (selArgCount := selector numArgs) = 0
> > ifTrue: [target perform: selector]
> > ifFalse: [selArgCount = arguments size
> > ifTrue: [target perform: selector withArguments: arguments]
> > ifFalse: [target
> > perform: selector
> > withArguments: (arguments copyWith: evt)]]] in
> > ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> > BlockClosure>>ensure:
> > CursorWithMask(Cursor)>>showWhile:
> > ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> > ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> > ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> > MouseButtonEvent>>sentTo:
> > ToggleMenuItemMorph(Morph)>>handleEvent:
> > MorphicEventDispatcher>>dispatchDefault:with:
> > MorphicEventDispatcher>>dispatchEvent:with:
> > ToggleMenuItemMorph(Morph)>>processEvent:using:
> > MorphicEventDispatcher>>dispatchDefault:with:
> > MorphicEventDispatcher>>dispatchEvent:with:
> > MenuMorph(Morph)>>processEvent:using:
> > MenuMorph(Morph)>>processEvent:
> > MenuMorph>>handleFocusEvent:
> > [ActiveHand := self.
> > ActiveEvent := anEvent.
> > result := focusHolder
> > handleFocusEvent: (anEvent
> > transformedBy: (focusHolder transformedFrom: self))] in
> > HandMorph>>sendFocusEvent:to:clear:
> > [aBlock value] in PasteUpMorph>>becomeActiveDuring:
> > BlockClosure>>on:do:
> > PasteUpMorph>>becomeActiveDuring:
> > HandMorph>>sendFocusEvent:to:clear:
> > HandMorph>>sendEvent:focus:clear:
> > HandMorph>>sendMouseEvent:
> > HandMorph>>handleEvent:
> > HandMorph>>processEvents
> > [:h |
> > ActiveHand := h.
> > h processEvents.
> > ActiveHand := nil] in WorldState>>doOneCycleNowFor:
> > Array(SequenceableCollection)>>do:
> > WorldState>>handsDo:
> > WorldState>>doOneCycleNowFor:
> > WorldState>>doOneCycleFor:
> > PasteUpMorph>>doOneCycle
> > [[World doOneCycle.
> > Processor yield.
> > false] whileFalse.
> > nil] in Project class>>spawnNewProcess
> > [self value.
> > Processor terminateActive] in BlockClosure>>newProcess
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "What is more important: To be happy, or to make happy?"
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Hi Nicolas,

Thanks. I can reproduce it.

The issue has probably the same root as the one of Stef.

The overview pyramid code uses the navigation API that was mainly tested on models based on Smalltalk. Given that now we have multiple types of FAMIXTypes, not just FAMIXClass, things break because the API is mostly in FAMIXClass, while most of it should probably be in FAMIXType.

Someone should take a look at this :).

Cheers,
Doru


On 24 May 2011, at 16:00, Nicolas Anquetil wrote:

>
> Funny, I do have a DNU problem, but the method is hierarchyNestingLevel
>
> mse file for eclipse available at http://dl.dropbox.com/u/12861461/eclipse.mse.zip
>
> nicolas
>
> PS: I can look at some point, but not right now
>
> ----- Mail original -----
>> De: "Tudor Girba" <[hidden email]>
>> À: "Moose-related development" <[hidden email]>
>> Envoyé: Mardi 24 Mai 2011 15:35:00
>> Objet: [Moose-dev] Re: bringing the overview pyramid on verveineJ model -> DNU
>> Could you please provide a link to the MSE file so that we can
>> reproduce the problem?
>>
>> Cheers,
>> Doru
>>
>>
>> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>>
>>> From: ss
>>> To: [hidden email]
>>> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>
>>> here insert explanation of what you were doing, suspect changes
>>> you've made and so forth.
>>>
>>> 24 May 2011 3:22:18 pm
>>>
>>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter
>>> VMMaker-oscog.51] Moose Suite 4.4
>>> Image: Pharo1.2.1 [Latest update: #12345]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir
>>> /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My
>>> Squeak
>>>
>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>> Receiver: Planet in ad_hoc (Type)
>>> Arguments and temporary variables:
>>> aMessage: lookUp: 'radius()'
>>> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
>>> resumeValue: nil
>>> Receiver's instance variables:
>>> mooseID: 2324
>>> state: a MooseDefaultState
>>> sourceAnchor: nil
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'Planet'
>>> isStub: false
>>> receivingInvocations: an Array(main -> Planet#values()
>>> (Invocation))
>>> modifiers: a Set(#isFinal #isPublic)
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> subInheritances: #()
>>> methods: an Array(Planet>>surfaceWeight(double) (Method)
>>> Planet>>toString() (Me...etc...
>>> container: ad_hoc (Namespace)
>>> superInheritances: #()
>>> attributes: an Array(Planet.radius (Attribute) Planet.mass
>>> (Attribute) Planet.G...etc...
>>> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue
>>> #SATURN a FAMIXEnum...etc...
>>>
>>> [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each
>>> signature.
>>> invokedMtd isNil
>>> ifFalse: [(invokedMtd isAbstract
>>> or: [invokedMtd = self])
>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in
>>> FAMIXMethod>>privateSureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
>>> each: a Set()
>>> invokedMtd: nil
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor
>>> #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight ->
>>> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> OrderedCollection>>do:
>>> Receiver: an OrderedCollection(surfaceGravity -> self#radius()
>>> (Invocation) surfaceGravity -> self#r...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd :=...etc...
>>> index: 3
>>> Receiver's instance variables:
>>> array: an Array(nil nil surfaceGravity -> self#radius()
>>> (Invocation) surfaceGra...etc...
>>> firstIndex: 3
>>> lastIndex: 5
>>>
>>> FMMultivalueLink>>do:
>>> Receiver: an Array(surfaceGravity -> self#radius() (Invocation)
>>> surfaceGravity -> self#radius() (Inv...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd :=...etc...
>>> Receiver's instance variables:
>>> values: an OrderedCollection(surfaceGravity -> self#radius()
>>> (Invocation) surfa...etc...
>>> owner: Planet>>surfaceGravity() (Method)
>>> opposite: #sender:
>>>
>>> FAMIXMethod>>privateSureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>> outgoingInvo: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surfaceGrav...etc...
>>> sureInvokedMtdsSet: a Set()
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor
>>> #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight ->
>>> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor
>>> #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight ->
>>> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> SmallDictionary>>at:ifAbsentPut:
>>> Receiver: a SmallDictionary()
>>> Arguments and temporary variables:
>>> key: #sureInvokedMethods
>>> aBlock: [self privateSureInvokedMethods]
>>> index: 0
>>> Receiver's instance variables:
>>> keys: #(nil nil)
>>> values: #(nil nil)
>>> size: 0
>>>
>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>> Receiver: a MooseDefaultState
>>> Arguments and temporary variables:
>>> name: #sureInvokedMethods
>>> aBlock: [self privateSureInvokedMethods]
>>> Receiver's instance variables:
>>> attributes: an Array(#privateModel->a MooseModel
>>> #'verveine.extractor.java'(582...etc...
>>> entity: Planet>>surfaceGravity() (Method)
>>> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
>>> queryCache: a SmallDictionary()
>>>
>>> FAMIXMethod>>sureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor
>>> #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight ->
>>> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> FAMIXMethod>>invokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor
>>> #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius()
>>> (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight ->
>>> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> [:each | each invokedMethods size] in [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> each: Planet>>surfaceGravity() (Method)
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> [:sum :each | sum
>>> + (aSymbolOrBlock value: each)] in
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> aSymbolOrBlock: 442
>>> sum: Planet>>surfaceGravity() (Method)
>>> each: [:each | each invokedMethods size]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a
>>> MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
>>> (Method)...etc...
>>>
>>> [:each | nextValue := binaryBlock value: nextValue value: each] in
>>> OrderedCollection(Collection)>>inject:into:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
>>> (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> binaryBlock: Planet>>surfaceGravity() (Method)
>>> nextValue: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> each: #(442)
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
>>> nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> OrderedCollection>>do:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
>>> (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | nextValue := binaryBlock value: nextValue value:
>>> each]
>>> index: 408
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
>>> nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> OrderedCollection(Collection)>>inject:into:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository)
>>> (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> thisValue: 0
>>> binaryBlock: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> nextValue: #(442)
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil
>>> nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> neutral: 0
>>> aBinaryBlock: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a
>>> MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
>>> (Method)...etc...
>>>
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> aSymbolOrBlock: [:each | each invokedMethods size]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a
>>> MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository)
>>> (Method)...etc...
>>>
>>> [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> MooseCustomTask>>basicRun
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> [:bar |
>>> progBar := bar.
>>> result := self basicRun] in [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retur...etc...
>>> bar: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> [result := workBlock value: progress] in [[result := workBlock
>>> value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
>>> put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> BlockClosure>>on:do:
>>> Receiver: [result := workBlock value: progress]
>>> Arguments and temporary variables:
>>> exception: ProgressNotification
>>> handlerAction: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph un...etc...
>>> handlerActive: true
>>> Receiver's instance variables:
>>> outerContext: [[result := workBlock value: progress]
>>> on: ProgressNotification...etc...
>>> startpc: 83
>>> numArgs: 0
>>>
>>> [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
>>> put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> BlockClosure>>ensure:
>>> Receiver: [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extr...etc...
>>> Arguments and temporary variables:
>>> aBlock: [SystemProgressMorph close: progress]
>>> complete: nil
>>> returnValue: nil
>>> Receiver's instance variables:
>>> outerContext: ProgressInitiationException>>defaultMorphicAction
>>> startpc: 77
>>> numArgs: 0
>>>
>>> ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>> Receiver: a MorphicUIManager
>>> Arguments and temporary variables:
>>> anException: ProgressInitiationException:
>>> Receiver's instance variables:
>>> interactiveParser: nil
>>>
>>> ProgressInitiationException>>defaultAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> UndefinedObject>>handleSignal:
>>> Receiver: nil
>>> Arguments and temporary variables:
>>> exception: ProgressInitiationException:
>>> Receiver's instance variables:
>>> nil
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>> Receiver: BlockClosure>>on:do:
>>> Arguments and temporary variables:
>>> exception: ProgressInitiationException:
>>> val: nil
>>> Receiver's instance variables:
>>> sender: PasteUpMorph>>becomeActiveDuring:
>>> pc: 17
>>> stackp: 3
>>> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
>>> closureOrNil: nil
>>> receiver: [aBlock value]
>>>
>>> ProgressInitiationException(Exception)>>signal
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> ProgressInitiationException>>display:at:from:to:during:
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> argString: 'OverviewPyramid - computing metrics'
>>> argPoint: 296@172
>>> argMinVal: 1
>>> argMaxVal: 11
>>> argWorkBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> Receiver: ProgressInitiationException
>>> Arguments and temporary variables:
>>> aString: 'OverviewPyramid - computing metrics'
>>> aPoint: 296@172
>>> minVal: 1
>>> maxVal: 11
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> superclass: Exception
>>> methodDict: a
>>> MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
>>> format: 150
>>> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint'
>>> 'progressTitle')
>>> organization: ('*Morphic' defaultMorphicAction)
>>> ('accessing' maxVal minVal poin...etc...
>>> subclasses: nil
>>> name: #ProgressInitiationException
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'UIManager-Support'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>> Receiver: a MorphicUIManager
>>> Arguments and temporary variables:
>>> titleString: 'OverviewPyramid - computing metrics'
>>> aPoint: 296@172
>>> minVal: 1
>>> maxVal: 11
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> interactiveParser: nil
>>>
>>> [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> BlockClosure>>ensure:
>>> Receiver: [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor...etc...
>>> Arguments and temporary variables:
>>> aBlock: [self tearDown]
>>> complete: nil
>>> returnValue: nil
>>> Receiver's instance variables:
>>> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
>>> startpc: 65
>>> numArgs: 0
>>>
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> MooseCustomTask class>>runWithProgress:description:length:
>>> Receiver: MooseCustomTask
>>> Arguments and temporary variables:
>>> aBlock: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each |...etc...
>>> aDescription: 'OverviewPyramid - computing metrics'
>>> aNumber: 11
>>> Receiver's instance variables:
>>> superclass: MooseTask
>>> methodDict: a
>>> MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a
>>> Compil...etc...
>>> format: 140
>>> instanceVariables: #('computation' 'description' 'length')
>>> organization: ('as yet unclassified' basicRun description length
>>> with:descripti...etc...
>>> subclasses: nil
>>> name: #MooseCustomTask
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'Moose-Core'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>> OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> OverviewPyramidMetrics class>>on:
>>> Receiver: OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
>>> Receiver's instance variables:
>>> superclass: Object
>>> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh
>>> "a CompiledM...etc...
>>> format: 148
>>> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout'
>>> 'calls' 'andc' 'a...etc...
>>> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc:
>>> noc: nom: nop:...etc...
>>> subclasses: nil
>>> name: #OverviewPyramidMetrics
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'Famix-Extensions'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>>
>>> --- The full stack ---
>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>> [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each
>>> signature.
>>> invokedMtd isNil
>>> ifFalse: [(invokedMtd isAbstract
>>> or: [invokedMtd = self])
>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in
>>> FAMIXMethod>>privateSureInvokedMethods
>>> OrderedCollection>>do:
>>> FMMultivalueLink>>do:
>>> FAMIXMethod>>privateSureInvokedMethods
>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>> SmallDictionary>>at:ifAbsentPut:
>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>> FAMIXMethod>>sureInvokedMethods
>>> FAMIXMethod>>invokedMethods
>>> [:each | each invokedMethods size] in [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> [:sum :each | sum
>>> + (aSymbolOrBlock value: each)] in
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> [:each | nextValue := binaryBlock value: nextValue value: each] in
>>> OrderedCollection(Collection)>>inject:into:
>>> OrderedCollection>>do:
>>> OrderedCollection(Collection)>>inject:into:
>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> MooseCustomTask>>basicRun
>>> [:bar |
>>> progBar := bar.
>>> result := self basicRun] in [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> [result := workBlock value: progress] in [[result := workBlock
>>> value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
>>> put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> BlockClosure>>on:do:
>>> [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress
>>> put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> BlockClosure>>ensure:
>>> ProgressInitiationException>>defaultMorphicAction
>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>> [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> BlockClosure>>ensure:
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> MooseCustomTask class>>runWithProgress:description:length:
>>> OverviewPyramidMetrics>>model:
>>> OverviewPyramidMetrics class>>on:
>>> - - - - - - - - - - - - - - -
>>> - - - - - - - - - - - - - - - - - -
>>> [OverviewPyramidMetrics on: self] in
>>> MooseModel>>overviewPyramidMetrics
>>> SmallDictionary>>at:ifAbsentPut:
>>> MooseDefaultState>>propertyAt:ifAbsentPut:
>>> MooseModel>>overviewPyramidMetrics
>>> OverviewPyramid>>initializeWith:
>>> OverviewPyramid class>>on:
>>> MooseModel>>viewOverviewPyramidMap
>>> [:x | self perform: eachPragma selector] in [:eachPragma |
>>> GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1);
>>>
>>> category: (eachPragma argumentAt: 2)] in [:eachClass |
>>> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
>>> collect: [:eachPragma | GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1);
>>>
>>> category: (eachPragma argumentAt: 2)].
>>> simple := (Pragma allNamed: #menuItem: in: eachClass)
>>> collect: [:eachPragma | GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1)].
>>> categorized , simple] in MooseModel(Object)>>mooseFinderActions
>>> BlockClosure>>glamourValueWithArgs:
>>> GLMGenericAction(GLMAction)>>actOn:
>>> [:ann | ann action actOn: aPresentation] in
>>> GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
>>> [:each | answer := each valueWithArguments: anArray] in
>>> ActionSequence>>valueWithArguments:
>>> ActionSequence(SequenceableCollection)>>do:
>>> ActionSequence>>valueWithArguments:
>>> [:class :actions | (class handles: announcement)
>>> ifTrue: [actions
>>> valueWithArguments: (Array with: announcement)]] in
>>> GLMAnnouncer>>announce:
>>> [:assoc | aBlock value: assoc key value: assoc value] in
>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>> [:each | each
>>> ifNotNil: [aBlock value: each]] in
>>> IdentityDictionary(Dictionary)>>associationsDo:
>>> Array(SequenceableCollection)>>do:
>>> IdentityDictionary(Dictionary)>>associationsDo:
>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>> GLMAnnouncer>>announce:
>>> GLMTreeMorphModel>>announce:
>>> GLMTreeMorphNodeModel>>executeMenuAction:
>>> [| selArgCount | (selArgCount := selector numArgs) = 0
>>> ifTrue: [target perform: selector]
>>> ifFalse: [selArgCount = arguments size
>>> ifTrue: [target perform: selector withArguments: arguments]
>>> ifFalse: [target
>>> perform: selector
>>> withArguments: (arguments copyWith: evt)]]] in
>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> BlockClosure>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>> MouseButtonEvent>>sentTo:
>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> MenuMorph(Morph)>>processEvent:using:
>>> MenuMorph(Morph)>>processEvent:
>>> MenuMorph>>handleFocusEvent:
>>> [ActiveHand := self.
>>> ActiveEvent := anEvent.
>>> result := focusHolder
>>> handleFocusEvent: (anEvent
>>> transformedBy: (focusHolder transformedFrom: self))] in
>>> HandMorph>>sendFocusEvent:to:clear:
>>> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
>>> BlockClosure>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendMouseEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [:h |
>>> ActiveHand := h.
>>> h processEvents.
>>> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [[World doOneCycle.
>>> Processor yield.
>>> false] whileFalse.
>>> nil] in Project class>>spawnNewProcess
>>> [self value.
>>> Processor terminateActive] in BlockClosure>>newProcess
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "What is more important: To be happy, or to make happy?"
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Every successful trip needs a suitable vehicle."





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Stéphane Ducasse
In reply to this post by Tudor Girba-2
just for your info.
I will not use a Java model for my presentation friday because there are DNU popping up a lot.
In 10 min clicking I got at least 3 or 4 bugs.

Stef


On May 24, 2011, at 3:35 PM, Tudor Girba wrote:

> Could you please provide a link to the MSE file so that we can reproduce the problem?
>
> Cheers,
> Doru
>
>
> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>
>> From: ss
>> To: [hidden email]
>> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>
>> here insert explanation of what you were doing, suspect changes you've made and so forth.
>>
>> 24 May 2011 3:22:18 pm
>>
>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
>> Image: Pharo1.2.1 [Latest update: #12345]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
>>
>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>> Receiver: Planet in ad_hoc (Type)
>> Arguments and temporary variables:
>> aMessage: lookUp: 'radius()'
>> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
>> resumeValue: nil
>> Receiver's instance variables:
>> mooseID: 2324
>> state: a MooseDefaultState
>> sourceAnchor: nil
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'Planet'
>> isStub: false
>> receivingInvocations: an Array(main -> Planet#values() (Invocation))
>> modifiers: a Set(#isFinal #isPublic)
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> subInheritances: #()
>> methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
>> container: ad_hoc (Namespace)
>> superInheritances: #()
>> attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
>> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...
>>
>> [:each | | invokedMtd | each isASureInvocation
>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>> invokedMtd isNil
>> ifFalse: [(invokedMtd isAbstract
>> or: [invokedMtd = self])
>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>> Receiver: Planet>>surfaceGravity() (Method)
>> Arguments and temporary variables:
>> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
>> each: a Set()
>> invokedMtd: nil
>> Receiver's instance variables:
>> mooseID: 3985
>> state: a MooseDefaultState
>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'surfaceGravity'
>> isStub: false
>> receivingInvocations: #()
>> modifiers: a Set()
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>> localVariables: #()
>> parameters: #()
>> signature: 'surfaceGravity()'
>> accesses: an Array(surfaceGravity -> G (Access))
>> declaredType: double (Type)
>> kind: nil
>> parentType: Planet in ad_hoc (Type)
>>
>> OrderedCollection>>do:
>> Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
>> Arguments and temporary variables:
>> aBlock: [:each | | invokedMtd | each isASureInvocation
>> ifTrue: [invokedMtd :=...etc...
>> index: 3
>> Receiver's instance variables:
>> array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
>> firstIndex: 3
>> lastIndex: 5
>>
>> FMMultivalueLink>>do:
>> Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
>> Arguments and temporary variables:
>> aBlock: [:each | | invokedMtd | each isASureInvocation
>> ifTrue: [invokedMtd :=...etc...
>> Receiver's instance variables:
>> values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
>> owner: Planet>>surfaceGravity() (Method)
>> opposite: #sender:
>>
>> FAMIXMethod>>privateSureInvokedMethods
>> Receiver: Planet>>surfaceGravity() (Method)
>> Arguments and temporary variables:
>> outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
>> sureInvokedMtdsSet: a Set()
>> Receiver's instance variables:
>> mooseID: 3985
>> state: a MooseDefaultState
>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'surfaceGravity'
>> isStub: false
>> receivingInvocations: #()
>> modifiers: a Set()
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>> localVariables: #()
>> parameters: #()
>> signature: 'surfaceGravity()'
>> accesses: an Array(surfaceGravity -> G (Access))
>> declaredType: double (Type)
>> kind: nil
>> parentType: Planet in ad_hoc (Type)
>>
>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>> Receiver: Planet>>surfaceGravity() (Method)
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> mooseID: 3985
>> state: a MooseDefaultState
>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'surfaceGravity'
>> isStub: false
>> receivingInvocations: #()
>> modifiers: a Set()
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>> localVariables: #()
>> parameters: #()
>> signature: 'surfaceGravity()'
>> accesses: an Array(surfaceGravity -> G (Access))
>> declaredType: double (Type)
>> kind: nil
>> parentType: Planet in ad_hoc (Type)
>>
>> SmallDictionary>>at:ifAbsentPut:
>> Receiver: a SmallDictionary()
>> Arguments and temporary variables:
>> key: #sureInvokedMethods
>> aBlock: [self privateSureInvokedMethods]
>> index: 0
>> Receiver's instance variables:
>> keys: #(nil nil)
>> values: #(nil nil)
>> size: 0
>>
>> MooseDefaultState>>cacheAt:ifAbsentPut:
>> Receiver: a MooseDefaultState
>> Arguments and temporary variables:
>> name: #sureInvokedMethods
>> aBlock: [self privateSureInvokedMethods]
>> Receiver's instance variables:
>> attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
>> entity: Planet>>surfaceGravity() (Method)
>> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
>> queryCache: a SmallDictionary()
>>
>> FAMIXMethod>>sureInvokedMethods
>> Receiver: Planet>>surfaceGravity() (Method)
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> mooseID: 3985
>> state: a MooseDefaultState
>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'surfaceGravity'
>> isStub: false
>> receivingInvocations: #()
>> modifiers: a Set()
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>> localVariables: #()
>> parameters: #()
>> signature: 'surfaceGravity()'
>> accesses: an Array(surfaceGravity -> G (Access))
>> declaredType: double (Type)
>> kind: nil
>> parentType: Planet in ad_hoc (Type)
>>
>> FAMIXMethod>>invokedMethods
>> Receiver: Planet>>surfaceGravity() (Method)
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> mooseID: 3985
>> state: a MooseDefaultState
>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>> sourceLanguage: nil
>> comments: #()
>> declaredSourceLanguage: nil
>> name: 'surfaceGravity'
>> isStub: false
>> receivingInvocations: #()
>> modifiers: a Set()
>> parentPackage: nil
>> outgoingReferences: #()
>> types: #()
>> incomingReferences: #()
>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>> localVariables: #()
>> parameters: #()
>> signature: 'surfaceGravity()'
>> accesses: an Array(surfaceGravity -> G (Access))
>> declaredType: double (Type)
>> kind: nil
>> parentType: Planet in ad_hoc (Type)
>>
>> [:each | each invokedMethods size] in [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:each | each isStub not].
>> bar increment.
>> allModelClasses := aMooseModel allModelClasses.
>> bar increment.
>> nop := aMooseModel allModelPackages size.
>> bar increment.
>> noc := allModelClasses size.
>> bar increment.
>> nom := allModelMethods size.
>> bar increment.
>> loc := allModelMethods sum: #numberOfLinesOfCode.
>> bar increment.
>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>> bar increment.
>> fanout := allModelClasses sum: #fanOut.
>> bar increment.
>> calls := allModelMethods
>> sum: [:each | each invokedMethods size].
>> bar increment.
>> andc := (allModelClasses
>> sum: [:class | class directSubclasses size])
>> / noc.
>> bar increment.
>> ahh := allModelClasses average: #hierarchyNestingLevel.
>> bar increment] in OverviewPyramidMetrics>>model:
>> Receiver: an OverviewPyramidMetrics
>> Arguments and temporary variables:
>> each: Planet>>surfaceGravity() (Method)
>> Receiver's instance variables:
>> nop: 0
>> noc: 27
>> nom: 238
>> loc: 4230
>> cyclo: 760
>> fanout: 81
>> calls: nil
>> andc: nil
>> ahh: nil
>>
>> [:sum :each | sum
>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>> Receiver: Group (238 FAMIXMethods)
>> Arguments and temporary variables:
>> aSymbolOrBlock: 442
>> sum: Planet>>surfaceGravity() (Method)
>> each: [:each | each invokedMethods size]
>> Receiver's instance variables:
>> mooseID: 13709
>> state: a MooseDefaultState
>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>
>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>> Arguments and temporary variables:
>> binaryBlock: Planet>>surfaceGravity() (Method)
>> nextValue: [:sum :each | sum
>> + (aSymbolOrBlock value: each)]
>> each: #(442)
>> Receiver's instance variables:
>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>> firstIndex: 333
>> lastIndex: 570
>>
>> OrderedCollection>>do:
>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>> Arguments and temporary variables:
>> aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
>> index: 408
>> Receiver's instance variables:
>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>> firstIndex: 333
>> lastIndex: 570
>>
>> OrderedCollection(Collection)>>inject:into:
>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>> Arguments and temporary variables:
>> thisValue: 0
>> binaryBlock: [:sum :each | sum
>> + (aSymbolOrBlock value: each)]
>> nextValue: #(442)
>> Receiver's instance variables:
>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>> firstIndex: 333
>> lastIndex: 570
>>
>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>> Receiver: Group (238 FAMIXMethods)
>> Arguments and temporary variables:
>> neutral: 0
>> aBinaryBlock: [:sum :each | sum
>> + (aSymbolOrBlock value: each)]
>> Receiver's instance variables:
>> mooseID: 13709
>> state: a MooseDefaultState
>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>
>> FAMIXMethodGroup(MooseGroup)>>sum:
>> Receiver: Group (238 FAMIXMethods)
>> Arguments and temporary variables:
>> aSymbolOrBlock: [:each | each invokedMethods size]
>> Receiver's instance variables:
>> mooseID: 13709
>> state: a MooseDefaultState
>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>
>> [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:each | each isStub not].
>> bar increment.
>> allModelClasses := aMooseModel allModelClasses.
>> bar increment.
>> nop := aMooseModel allModelPackages size.
>> bar increment.
>> noc := allModelClasses size.
>> bar increment.
>> nom := allModelMethods size.
>> bar increment.
>> loc := allModelMethods sum: #numberOfLinesOfCode.
>> bar increment.
>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>> bar increment.
>> fanout := allModelClasses sum: #fanOut.
>> bar increment.
>> calls := allModelMethods
>> sum: [:each | each invokedMethods size].
>> bar increment.
>> andc := (allModelClasses
>> sum: [:class | class directSubclasses size])
>> / noc.
>> bar increment.
>> ahh := allModelClasses average: #hierarchyNestingLevel.
>> bar increment] in OverviewPyramidMetrics>>model:
>> Receiver: an OverviewPyramidMetrics
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> nop: 0
>> noc: 27
>> nom: 238
>> loc: 4230
>> cyclo: 760
>> fanout: 81
>> calls: nil
>> andc: nil
>> ahh: nil
>>
>> MooseCustomTask>>basicRun
>> Receiver: a MooseCustomTask
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> progBar: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> retu...etc...
>> nb: 8
>> computation: [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:e...etc...
>> description: 'OverviewPyramid - computing metrics'
>> length: 11
>>
>> [:bar |
>> progBar := bar.
>> result := self basicRun] in [self setUp.
>> nb := 0.
>> UIManager default
>> displayProgress: self description
>> at: Sensor cursorPoint
>> from: 1
>> to: self length
>> during: [:bar |
>> progBar := bar.
>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>> Receiver: a MooseCustomTask
>> Arguments and temporary variables:
>> result: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> retur...etc...
>> bar: #(nil)
>> Receiver's instance variables:
>> progBar: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> retu...etc...
>> nb: 8
>> computation: [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:e...etc...
>> description: 'OverviewPyramid - computing metrics'
>> length: 11
>>
>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>> on: ProgressNotification
>> do: [:ex |
>> ex extraParam isString
>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>> progress: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> ret...etc...
>> result: #(nil)
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> BlockClosure>>on:do:
>> Receiver: [result := workBlock value: progress]
>> Arguments and temporary variables:
>> exception: ProgressNotification
>> handlerAction: [:ex |
>> ex extraParam isString
>> ifTrue: [SystemProgressMorph un...etc...
>> handlerActive: true
>> Receiver's instance variables:
>> outerContext: [[result := workBlock value: progress]
>> on: ProgressNotification...etc...
>> startpc: 83
>> numArgs: 0
>>
>> [[result := workBlock value: progress]
>> on: ProgressNotification
>> do: [:ex |
>> ex extraParam isString
>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>> progress: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> ret...etc...
>> result: #(nil)
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> BlockClosure>>ensure:
>> Receiver: [[result := workBlock value: progress]
>> on: ProgressNotification
>> do: [:ex |
>> ex extr...etc...
>> Arguments and temporary variables:
>> aBlock: [SystemProgressMorph close: progress]
>> complete: nil
>> returnValue: nil
>> Receiver's instance variables:
>> outerContext: ProgressInitiationException>>defaultMorphicAction
>> startpc: 77
>> numArgs: 0
>>
>> ProgressInitiationException>>defaultMorphicAction
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>> progress: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> ret...etc...
>> result: #(nil)
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>> Receiver: a MorphicUIManager
>> Arguments and temporary variables:
>> anException: ProgressInitiationException:
>> Receiver's instance variables:
>> interactiveParser: nil
>>
>> ProgressInitiationException>>defaultAction
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> UndefinedObject>>handleSignal:
>> Receiver: nil
>> Arguments and temporary variables:
>> exception: ProgressInitiationException:
>> Receiver's instance variables:
>> nil
>>
>> MethodContext(ContextPart)>>handleSignal:
>> Receiver: BlockClosure>>on:do:
>> Arguments and temporary variables:
>> exception: ProgressInitiationException:
>> val: nil
>> Receiver's instance variables:
>> sender: PasteUpMorph>>becomeActiveDuring:
>> pc: 17
>> stackp: 3
>> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
>> closureOrNil: nil
>> receiver: [aBlock value]
>>
>> ProgressInitiationException(Exception)>>signal
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> ProgressInitiationException>>display:at:from:to:during:
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>> argString: 'OverviewPyramid - computing metrics'
>> argPoint: 296@172
>> argMinVal: 1
>> argMaxVal: 11
>> argWorkBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> maxVal: 11
>> minVal: 1
>> aPoint: 296@172
>> progressTitle: 'OverviewPyramid - computing metrics'
>>
>> ProgressInitiationException class>>display:at:from:to:during:
>> Receiver: ProgressInitiationException
>> Arguments and temporary variables:
>> aString: 'OverviewPyramid - computing metrics'
>> aPoint: 296@172
>> minVal: 1
>> maxVal: 11
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> Receiver's instance variables:
>> superclass: Exception
>> methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
>> format: 150
>> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
>> organization: ('*Morphic' defaultMorphicAction)
>> ('accessing' maxVal minVal poin...etc...
>> subclasses: nil
>> name: #ProgressInitiationException
>> classPool: nil
>> sharedPools: nil
>> environment: a SystemDictionary(lots of globals)
>> category: #'UIManager-Support'
>> traitComposition: {}
>> localSelectors: nil
>>
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> Receiver: a MorphicUIManager
>> Arguments and temporary variables:
>> titleString: 'OverviewPyramid - computing metrics'
>> aPoint: 296@172
>> minVal: 1
>> maxVal: 11
>> workBlock: [:bar |
>> progBar := bar.
>> result := self basicRun]
>> Receiver's instance variables:
>> interactiveParser: nil
>>
>> [self setUp.
>> nb := 0.
>> UIManager default
>> displayProgress: self description
>> at: Sensor cursorPoint
>> from: 1
>> to: self length
>> during: [:bar |
>> progBar := bar.
>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>> Receiver: a MooseCustomTask
>> Arguments and temporary variables:
>> result: #(nil)
>> Receiver's instance variables:
>> progBar: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> retu...etc...
>> nb: 8
>> computation: [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:e...etc...
>> description: 'OverviewPyramid - computing metrics'
>> length: 11
>>
>> BlockClosure>>ensure:
>> Receiver: [self setUp.
>> nb := 0.
>> UIManager default
>> displayProgress: self description
>> at: Sensor...etc...
>> Arguments and temporary variables:
>> aBlock: [self tearDown]
>> complete: nil
>> returnValue: nil
>> Receiver's instance variables:
>> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
>> startpc: 65
>> numArgs: 0
>>
>> MooseCustomTask(MooseTask)>>runWithProgress
>> Receiver: a MooseCustomTask
>> Arguments and temporary variables:
>> result: #(nil)
>> Receiver's instance variables:
>> progBar: [:barValArg |
>> | barVal return newBarSize |
>> barVal := barValArg.
>> retu...etc...
>> nb: 8
>> computation: [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:e...etc...
>> description: 'OverviewPyramid - computing metrics'
>> length: 11
>>
>> MooseCustomTask class>>runWithProgress:description:length:
>> Receiver: MooseCustomTask
>> Arguments and temporary variables:
>> aBlock: [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:each |...etc...
>> aDescription: 'OverviewPyramid - computing metrics'
>> aNumber: 11
>> Receiver's instance variables:
>> superclass: MooseTask
>> methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
>> format: 140
>> instanceVariables: #('computation' 'description' 'length')
>> organization: ('as yet unclassified' basicRun description length with:descripti...etc...
>> subclasses: nil
>> name: #MooseCustomTask
>> classPool: nil
>> sharedPools: nil
>> environment: a SystemDictionary(lots of globals)
>> category: #'Moose-Core'
>> traitComposition: {}
>> localSelectors: nil
>>
>> OverviewPyramidMetrics>>model:
>> Receiver: an OverviewPyramidMetrics
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> nop: 0
>> noc: 27
>> nom: 238
>> loc: 4230
>> cyclo: 760
>> fanout: 81
>> calls: nil
>> andc: nil
>> ahh: nil
>>
>> OverviewPyramidMetrics class>>on:
>> Receiver: OverviewPyramidMetrics
>> Arguments and temporary variables:
>> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
>> Receiver's instance variables:
>> superclass: Object
>> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
>> format: 148
>> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
>> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
>> subclasses: nil
>> name: #OverviewPyramidMetrics
>> classPool: nil
>> sharedPools: nil
>> environment: a SystemDictionary(lots of globals)
>> category: #'Famix-Extensions'
>> traitComposition: {}
>> localSelectors: nil
>>
>>
>> --- The full stack ---
>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>> [:each | | invokedMtd | each isASureInvocation
>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>> invokedMtd isNil
>> ifFalse: [(invokedMtd isAbstract
>> or: [invokedMtd = self])
>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>> OrderedCollection>>do:
>> FMMultivalueLink>>do:
>> FAMIXMethod>>privateSureInvokedMethods
>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>> SmallDictionary>>at:ifAbsentPut:
>> MooseDefaultState>>cacheAt:ifAbsentPut:
>> FAMIXMethod>>sureInvokedMethods
>> FAMIXMethod>>invokedMethods
>> [:each | each invokedMethods size] in [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:each | each isStub not].
>> bar increment.
>> allModelClasses := aMooseModel allModelClasses.
>> bar increment.
>> nop := aMooseModel allModelPackages size.
>> bar increment.
>> noc := allModelClasses size.
>> bar increment.
>> nom := allModelMethods size.
>> bar increment.
>> loc := allModelMethods sum: #numberOfLinesOfCode.
>> bar increment.
>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>> bar increment.
>> fanout := allModelClasses sum: #fanOut.
>> bar increment.
>> calls := allModelMethods
>> sum: [:each | each invokedMethods size].
>> bar increment.
>> andc := (allModelClasses
>> sum: [:class | class directSubclasses size])
>> / noc.
>> bar increment.
>> ahh := allModelClasses average: #hierarchyNestingLevel.
>> bar increment] in OverviewPyramidMetrics>>model:
>> [:sum :each | sum
>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>> OrderedCollection>>do:
>> OrderedCollection(Collection)>>inject:into:
>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>> FAMIXMethodGroup(MooseGroup)>>sum:
>> [:bar |
>> allModelMethods := aMooseModel allMethods
>> select: [:each | each isStub not].
>> bar increment.
>> allModelClasses := aMooseModel allModelClasses.
>> bar increment.
>> nop := aMooseModel allModelPackages size.
>> bar increment.
>> noc := allModelClasses size.
>> bar increment.
>> nom := allModelMethods size.
>> bar increment.
>> loc := allModelMethods sum: #numberOfLinesOfCode.
>> bar increment.
>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>> bar increment.
>> fanout := allModelClasses sum: #fanOut.
>> bar increment.
>> calls := allModelMethods
>> sum: [:each | each invokedMethods size].
>> bar increment.
>> andc := (allModelClasses
>> sum: [:class | class directSubclasses size])
>> / noc.
>> bar increment.
>> ahh := allModelClasses average: #hierarchyNestingLevel.
>> bar increment] in OverviewPyramidMetrics>>model:
>> MooseCustomTask>>basicRun
>> [:bar |
>> progBar := bar.
>> result := self basicRun] in [self setUp.
>> nb := 0.
>> UIManager default
>> displayProgress: self description
>> at: Sensor cursorPoint
>> from: 1
>> to: self length
>> during: [:bar |
>> progBar := bar.
>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>> on: ProgressNotification
>> do: [:ex |
>> ex extraParam isString
>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>> BlockClosure>>on:do:
>> [[result := workBlock value: progress]
>> on: ProgressNotification
>> do: [:ex |
>> ex extraParam isString
>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>> BlockClosure>>ensure:
>> ProgressInitiationException>>defaultMorphicAction
>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> [self setUp.
>> nb := 0.
>> UIManager default
>> displayProgress: self description
>> at: Sensor cursorPoint
>> from: 1
>> to: self length
>> during: [:bar |
>> progBar := bar.
>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>> BlockClosure>>ensure:
>> MooseCustomTask(MooseTask)>>runWithProgress
>> MooseCustomTask class>>runWithProgress:description:length:
>> OverviewPyramidMetrics>>model:
>> OverviewPyramidMetrics class>>on:
>> - - - - - - - - - - - - - - -  
>> - - - - - - - - - - - - - - - - - -
>> [OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
>> SmallDictionary>>at:ifAbsentPut:
>> MooseDefaultState>>propertyAt:ifAbsentPut:
>> MooseModel>>overviewPyramidMetrics
>> OverviewPyramid>>initializeWith:
>> OverviewPyramid class>>on:
>> MooseModel>>viewOverviewPyramidMap
>> [:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
>> action: [:x | self perform: eachPragma selector];
>>
>> title: (eachPragma argumentAt: 1);
>>
>> category: (eachPragma argumentAt: 2)] in [:eachClass |
>> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
>> collect: [:eachPragma | GLMGenericAction new
>> action: [:x | self perform: eachPragma selector];
>>
>> title: (eachPragma argumentAt: 1);
>>
>> category: (eachPragma argumentAt: 2)].
>> simple := (Pragma allNamed: #menuItem: in: eachClass)
>> collect: [:eachPragma | GLMGenericAction new
>> action: [:x | self perform: eachPragma selector];
>>
>> title: (eachPragma argumentAt: 1)].
>> categorized , simple] in MooseModel(Object)>>mooseFinderActions
>> BlockClosure>>glamourValueWithArgs:
>> GLMGenericAction(GLMAction)>>actOn:
>> [:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
>> [:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
>> ActionSequence(SequenceableCollection)>>do:
>> ActionSequence>>valueWithArguments:
>> [:class :actions | (class handles: announcement)
>> ifTrue: [actions
>> valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
>> [:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>> [:each | each
>> ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
>> Array(SequenceableCollection)>>do:
>> IdentityDictionary(Dictionary)>>associationsDo:
>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>> GLMAnnouncer>>announce:
>> GLMTreeMorphModel>>announce:
>> GLMTreeMorphNodeModel>>executeMenuAction:
>> [| selArgCount | (selArgCount := selector numArgs) = 0
>> ifTrue: [target perform: selector]
>> ifFalse: [selArgCount = arguments size
>> ifTrue: [target perform: selector withArguments: arguments]
>> ifFalse: [target
>> perform: selector
>> withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> BlockClosure>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> ToggleMenuItemMorph(Morph)>>handleEvent:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> MenuMorph(Morph)>>processEvent:using:
>> MenuMorph(Morph)>>processEvent:
>> MenuMorph>>handleFocusEvent:
>> [ActiveHand := self.
>> ActiveEvent := anEvent.
>> result := focusHolder
>> handleFocusEvent: (anEvent
>> transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
>> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
>> BlockClosure>>on:do:
>> PasteUpMorph>>becomeActiveDuring:
>> HandMorph>>sendFocusEvent:to:clear:
>> HandMorph>>sendEvent:focus:clear:
>> HandMorph>>sendMouseEvent:
>> HandMorph>>handleEvent:
>> HandMorph>>processEvents
>> [:h |
>> ActiveHand := h.
>> h processEvents.
>> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
>> Array(SequenceableCollection)>>do:
>> WorldState>>handsDo:
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> PasteUpMorph>>doOneCycle
>> [[World doOneCycle.
>> Processor yield.
>> false] whileFalse.
>> nil] in Project class>>spawnNewProcess
>> [self value.
>> Processor terminateActive] in BlockClosure>>newProcess
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "What is more important: To be happy, or to make happy?"
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Hi Stef,

Thanks for letting us know. It would be even more useful if you would tell us what the problems were and how to reproduce them.

Cheers,
Doru


On 24 May 2011, at 21:27, Stéphane Ducasse wrote:

> just for your info.
> I will not use a Java model for my presentation friday because there are DNU popping up a lot.
> In 10 min clicking I got at least 3 or 4 bugs.
>
> Stef
>
>
> On May 24, 2011, at 3:35 PM, Tudor Girba wrote:
>
>> Could you please provide a link to the MSE file so that we can reproduce the problem?
>>
>> Cheers,
>> Doru
>>
>>
>> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>>
>>> From: ss
>>> To: [hidden email]
>>> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>
>>> here insert explanation of what you were doing, suspect changes you've made and so forth.
>>>
>>> 24 May 2011 3:22:18 pm
>>>
>>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
>>> Image: Pharo1.2.1 [Latest update: #12345]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
>>>
>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>> Receiver: Planet in ad_hoc (Type)
>>> Arguments and temporary variables:
>>> aMessage: lookUp: 'radius()'
>>> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
>>> resumeValue: nil
>>> Receiver's instance variables:
>>> mooseID: 2324
>>> state: a MooseDefaultState
>>> sourceAnchor: nil
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'Planet'
>>> isStub: false
>>> receivingInvocations: an Array(main -> Planet#values() (Invocation))
>>> modifiers: a Set(#isFinal #isPublic)
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> subInheritances: #()
>>> methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
>>> container: ad_hoc (Namespace)
>>> superInheritances: #()
>>> attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
>>> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...
>>>
>>> [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>> invokedMtd isNil
>>> ifFalse: [(invokedMtd isAbstract
>>> or: [invokedMtd = self])
>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
>>> each: a Set()
>>> invokedMtd: nil
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> OrderedCollection>>do:
>>> Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd :=...etc...
>>> index: 3
>>> Receiver's instance variables:
>>> array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
>>> firstIndex: 3
>>> lastIndex: 5
>>>
>>> FMMultivalueLink>>do:
>>> Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd :=...etc...
>>> Receiver's instance variables:
>>> values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
>>> owner: Planet>>surfaceGravity() (Method)
>>> opposite: #sender:
>>>
>>> FAMIXMethod>>privateSureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>> outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
>>> sureInvokedMtdsSet: a Set()
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> SmallDictionary>>at:ifAbsentPut:
>>> Receiver: a SmallDictionary()
>>> Arguments and temporary variables:
>>> key: #sureInvokedMethods
>>> aBlock: [self privateSureInvokedMethods]
>>> index: 0
>>> Receiver's instance variables:
>>> keys: #(nil nil)
>>> values: #(nil nil)
>>> size: 0
>>>
>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>> Receiver: a MooseDefaultState
>>> Arguments and temporary variables:
>>> name: #sureInvokedMethods
>>> aBlock: [self privateSureInvokedMethods]
>>> Receiver's instance variables:
>>> attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
>>> entity: Planet>>surfaceGravity() (Method)
>>> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
>>> queryCache: a SmallDictionary()
>>>
>>> FAMIXMethod>>sureInvokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> FAMIXMethod>>invokedMethods
>>> Receiver: Planet>>surfaceGravity() (Method)
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> mooseID: 3985
>>> state: a MooseDefaultState
>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>> sourceLanguage: nil
>>> comments: #()
>>> declaredSourceLanguage: nil
>>> name: 'surfaceGravity'
>>> isStub: false
>>> receivingInvocations: #()
>>> modifiers: a Set()
>>> parentPackage: nil
>>> outgoingReferences: #()
>>> types: #()
>>> incomingReferences: #()
>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>> localVariables: #()
>>> parameters: #()
>>> signature: 'surfaceGravity()'
>>> accesses: an Array(surfaceGravity -> G (Access))
>>> declaredType: double (Type)
>>> kind: nil
>>> parentType: Planet in ad_hoc (Type)
>>>
>>> [:each | each invokedMethods size] in [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> each: Planet>>surfaceGravity() (Method)
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> [:sum :each | sum
>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> aSymbolOrBlock: 442
>>> sum: Planet>>surfaceGravity() (Method)
>>> each: [:each | each invokedMethods size]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>
>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> binaryBlock: Planet>>surfaceGravity() (Method)
>>> nextValue: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> each: #(442)
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> OrderedCollection>>do:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
>>> index: 408
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> OrderedCollection(Collection)>>inject:into:
>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>> Arguments and temporary variables:
>>> thisValue: 0
>>> binaryBlock: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> nextValue: #(442)
>>> Receiver's instance variables:
>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>> firstIndex: 333
>>> lastIndex: 570
>>>
>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> neutral: 0
>>> aBinaryBlock: [:sum :each | sum
>>> + (aSymbolOrBlock value: each)]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> Receiver: Group (238 FAMIXMethods)
>>> Arguments and temporary variables:
>>> aSymbolOrBlock: [:each | each invokedMethods size]
>>> Receiver's instance variables:
>>> mooseID: 13709
>>> state: a MooseDefaultState
>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>
>>> [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> MooseCustomTask>>basicRun
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> [:bar |
>>> progBar := bar.
>>> result := self basicRun] in [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retur...etc...
>>> bar: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> BlockClosure>>on:do:
>>> Receiver: [result := workBlock value: progress]
>>> Arguments and temporary variables:
>>> exception: ProgressNotification
>>> handlerAction: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph un...etc...
>>> handlerActive: true
>>> Receiver's instance variables:
>>> outerContext: [[result := workBlock value: progress]
>>> on: ProgressNotification...etc...
>>> startpc: 83
>>> numArgs: 0
>>>
>>> [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> BlockClosure>>ensure:
>>> Receiver: [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extr...etc...
>>> Arguments and temporary variables:
>>> aBlock: [SystemProgressMorph close: progress]
>>> complete: nil
>>> returnValue: nil
>>> Receiver's instance variables:
>>> outerContext: ProgressInitiationException>>defaultMorphicAction
>>> startpc: 77
>>> numArgs: 0
>>>
>>> ProgressInitiationException>>defaultMorphicAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> progress: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> ret...etc...
>>> result: #(nil)
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>> Receiver: a MorphicUIManager
>>> Arguments and temporary variables:
>>> anException: ProgressInitiationException:
>>> Receiver's instance variables:
>>> interactiveParser: nil
>>>
>>> ProgressInitiationException>>defaultAction
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> UndefinedObject>>handleSignal:
>>> Receiver: nil
>>> Arguments and temporary variables:
>>> exception: ProgressInitiationException:
>>> Receiver's instance variables:
>>> nil
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>> Receiver: BlockClosure>>on:do:
>>> Arguments and temporary variables:
>>> exception: ProgressInitiationException:
>>> val: nil
>>> Receiver's instance variables:
>>> sender: PasteUpMorph>>becomeActiveDuring:
>>> pc: 17
>>> stackp: 3
>>> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
>>> closureOrNil: nil
>>> receiver: [aBlock value]
>>>
>>> ProgressInitiationException(Exception)>>signal
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> ProgressInitiationException>>display:at:from:to:during:
>>> Receiver: ProgressInitiationException:
>>> Arguments and temporary variables:
>>> argString: 'OverviewPyramid - computing metrics'
>>> argPoint: 296@172
>>> argMinVal: 1
>>> argMaxVal: 11
>>> argWorkBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> messageText: nil
>>> tag: nil
>>> signalContext: ProgressInitiationException(Exception)>>signal
>>> handlerContext: nil
>>> outerContext: nil
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> maxVal: 11
>>> minVal: 1
>>> aPoint: 296@172
>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> Receiver: ProgressInitiationException
>>> Arguments and temporary variables:
>>> aString: 'OverviewPyramid - computing metrics'
>>> aPoint: 296@172
>>> minVal: 1
>>> maxVal: 11
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> superclass: Exception
>>> methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
>>> format: 150
>>> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
>>> organization: ('*Morphic' defaultMorphicAction)
>>> ('accessing' maxVal minVal poin...etc...
>>> subclasses: nil
>>> name: #ProgressInitiationException
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'UIManager-Support'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>> Receiver: a MorphicUIManager
>>> Arguments and temporary variables:
>>> titleString: 'OverviewPyramid - computing metrics'
>>> aPoint: 296@172
>>> minVal: 1
>>> maxVal: 11
>>> workBlock: [:bar |
>>> progBar := bar.
>>> result := self basicRun]
>>> Receiver's instance variables:
>>> interactiveParser: nil
>>>
>>> [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> BlockClosure>>ensure:
>>> Receiver: [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor...etc...
>>> Arguments and temporary variables:
>>> aBlock: [self tearDown]
>>> complete: nil
>>> returnValue: nil
>>> Receiver's instance variables:
>>> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
>>> startpc: 65
>>> numArgs: 0
>>>
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> Receiver: a MooseCustomTask
>>> Arguments and temporary variables:
>>> result: #(nil)
>>> Receiver's instance variables:
>>> progBar: [:barValArg |
>>> | barVal return newBarSize |
>>> barVal := barValArg.
>>> retu...etc...
>>> nb: 8
>>> computation: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:e...etc...
>>> description: 'OverviewPyramid - computing metrics'
>>> length: 11
>>>
>>> MooseCustomTask class>>runWithProgress:description:length:
>>> Receiver: MooseCustomTask
>>> Arguments and temporary variables:
>>> aBlock: [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each |...etc...
>>> aDescription: 'OverviewPyramid - computing metrics'
>>> aNumber: 11
>>> Receiver's instance variables:
>>> superclass: MooseTask
>>> methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
>>> format: 140
>>> instanceVariables: #('computation' 'description' 'length')
>>> organization: ('as yet unclassified' basicRun description length with:descripti...etc...
>>> subclasses: nil
>>> name: #MooseCustomTask
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'Moose-Core'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>> OverviewPyramidMetrics>>model:
>>> Receiver: an OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> nop: 0
>>> noc: 27
>>> nom: 238
>>> loc: 4230
>>> cyclo: 760
>>> fanout: 81
>>> calls: nil
>>> andc: nil
>>> ahh: nil
>>>
>>> OverviewPyramidMetrics class>>on:
>>> Receiver: OverviewPyramidMetrics
>>> Arguments and temporary variables:
>>> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
>>> Receiver's instance variables:
>>> superclass: Object
>>> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
>>> format: 148
>>> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
>>> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
>>> subclasses: nil
>>> name: #OverviewPyramidMetrics
>>> classPool: nil
>>> sharedPools: nil
>>> environment: a SystemDictionary(lots of globals)
>>> category: #'Famix-Extensions'
>>> traitComposition: {}
>>> localSelectors: nil
>>>
>>>
>>> --- The full stack ---
>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>> [:each | | invokedMtd | each isASureInvocation
>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>> invokedMtd isNil
>>> ifFalse: [(invokedMtd isAbstract
>>> or: [invokedMtd = self])
>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>> OrderedCollection>>do:
>>> FMMultivalueLink>>do:
>>> FAMIXMethod>>privateSureInvokedMethods
>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>> SmallDictionary>>at:ifAbsentPut:
>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>> FAMIXMethod>>sureInvokedMethods
>>> FAMIXMethod>>invokedMethods
>>> [:each | each invokedMethods size] in [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> [:sum :each | sum
>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>> OrderedCollection>>do:
>>> OrderedCollection(Collection)>>inject:into:
>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>> [:bar |
>>> allModelMethods := aMooseModel allMethods
>>> select: [:each | each isStub not].
>>> bar increment.
>>> allModelClasses := aMooseModel allModelClasses.
>>> bar increment.
>>> nop := aMooseModel allModelPackages size.
>>> bar increment.
>>> noc := allModelClasses size.
>>> bar increment.
>>> nom := allModelMethods size.
>>> bar increment.
>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>> bar increment.
>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>> bar increment.
>>> fanout := allModelClasses sum: #fanOut.
>>> bar increment.
>>> calls := allModelMethods
>>> sum: [:each | each invokedMethods size].
>>> bar increment.
>>> andc := (allModelClasses
>>> sum: [:class | class directSubclasses size])
>>> / noc.
>>> bar increment.
>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>> bar increment] in OverviewPyramidMetrics>>model:
>>> MooseCustomTask>>basicRun
>>> [:bar |
>>> progBar := bar.
>>> result := self basicRun] in [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> BlockClosure>>on:do:
>>> [[result := workBlock value: progress]
>>> on: ProgressNotification
>>> do: [:ex |
>>> ex extraParam isString
>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>> BlockClosure>>ensure:
>>> ProgressInitiationException>>defaultMorphicAction
>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>> [self setUp.
>>> nb := 0.
>>> UIManager default
>>> displayProgress: self description
>>> at: Sensor cursorPoint
>>> from: 1
>>> to: self length
>>> during: [:bar |
>>> progBar := bar.
>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>> BlockClosure>>ensure:
>>> MooseCustomTask(MooseTask)>>runWithProgress
>>> MooseCustomTask class>>runWithProgress:description:length:
>>> OverviewPyramidMetrics>>model:
>>> OverviewPyramidMetrics class>>on:
>>> - - - - - - - - - - - - - - -  
>>> - - - - - - - - - - - - - - - - - -
>>> [OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
>>> SmallDictionary>>at:ifAbsentPut:
>>> MooseDefaultState>>propertyAt:ifAbsentPut:
>>> MooseModel>>overviewPyramidMetrics
>>> OverviewPyramid>>initializeWith:
>>> OverviewPyramid class>>on:
>>> MooseModel>>viewOverviewPyramidMap
>>> [:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1);
>>>
>>> category: (eachPragma argumentAt: 2)] in [:eachClass |
>>> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
>>> collect: [:eachPragma | GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1);
>>>
>>> category: (eachPragma argumentAt: 2)].
>>> simple := (Pragma allNamed: #menuItem: in: eachClass)
>>> collect: [:eachPragma | GLMGenericAction new
>>> action: [:x | self perform: eachPragma selector];
>>>
>>> title: (eachPragma argumentAt: 1)].
>>> categorized , simple] in MooseModel(Object)>>mooseFinderActions
>>> BlockClosure>>glamourValueWithArgs:
>>> GLMGenericAction(GLMAction)>>actOn:
>>> [:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
>>> [:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
>>> ActionSequence(SequenceableCollection)>>do:
>>> ActionSequence>>valueWithArguments:
>>> [:class :actions | (class handles: announcement)
>>> ifTrue: [actions
>>> valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
>>> [:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>> [:each | each
>>> ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
>>> Array(SequenceableCollection)>>do:
>>> IdentityDictionary(Dictionary)>>associationsDo:
>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>> GLMAnnouncer>>announce:
>>> GLMTreeMorphModel>>announce:
>>> GLMTreeMorphNodeModel>>executeMenuAction:
>>> [| selArgCount | (selArgCount := selector numArgs) = 0
>>> ifTrue: [target perform: selector]
>>> ifFalse: [selArgCount = arguments size
>>> ifTrue: [target perform: selector withArguments: arguments]
>>> ifFalse: [target
>>> perform: selector
>>> withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> BlockClosure>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>> MouseButtonEvent>>sentTo:
>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> MenuMorph(Morph)>>processEvent:using:
>>> MenuMorph(Morph)>>processEvent:
>>> MenuMorph>>handleFocusEvent:
>>> [ActiveHand := self.
>>> ActiveEvent := anEvent.
>>> result := focusHolder
>>> handleFocusEvent: (anEvent
>>> transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
>>> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
>>> BlockClosure>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendMouseEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [:h |
>>> ActiveHand := h.
>>> h processEvents.
>>> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [[World doOneCycle.
>>> Processor yield.
>>> false] whileFalse.
>>> nil] in Project class>>spawnNewProcess
>>> [self value.
>>> Processor terminateActive] in BlockClosure>>newProcess
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "What is more important: To be happy, or to make happy?"
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Presenting is storytelling."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Stéphane Ducasse

On May 24, 2011, at 9:45 PM, Tudor Girba wrote:

> Hi Stef,
>
> Thanks for letting us know. It would be even more useful if you would tell us what the problems were and how to reproduce them.

I reported the pyramid.
After there were in my flow so I closed them. Now I can take 10 min on browsing verveineJ model and produce them. I imagine that somebody
has to use this interface.
I think that we should all think if we want to succeed or not.
I mean yes I can do what I'm told (cyrille), or do my experience (jannik), or fix mondrian (alex) but
if nobody spend 1 hour to try to analyse a Java project then we will have bugs.

Stef


>
> Cheers,
> Doru
>
>
> On 24 May 2011, at 21:27, Stéphane Ducasse wrote:
>
>> just for your info.
>> I will not use a Java model for my presentation friday because there are DNU popping up a lot.
>> In 10 min clicking I got at least 3 or 4 bugs.
>>
>> Stef
>>
>>
>> On May 24, 2011, at 3:35 PM, Tudor Girba wrote:
>>
>>> Could you please provide a link to the MSE file so that we can reproduce the problem?
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>>>
>>>> From: ss
>>>> To: [hidden email]
>>>> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>>
>>>> here insert explanation of what you were doing, suspect changes you've made and so forth.
>>>>
>>>> 24 May 2011 3:22:18 pm
>>>>
>>>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
>>>> Image: Pharo1.2.1 [Latest update: #12345]
>>>>
>>>> SecurityManager state:
>>>> Restricted: false
>>>> FileAccess: true
>>>> SocketAccess: true
>>>> Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
>>>>
>>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>> Receiver: Planet in ad_hoc (Type)
>>>> Arguments and temporary variables:
>>>> aMessage: lookUp: 'radius()'
>>>> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
>>>> resumeValue: nil
>>>> Receiver's instance variables:
>>>> mooseID: 2324
>>>> state: a MooseDefaultState
>>>> sourceAnchor: nil
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'Planet'
>>>> isStub: false
>>>> receivingInvocations: an Array(main -> Planet#values() (Invocation))
>>>> modifiers: a Set(#isFinal #isPublic)
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> subInheritances: #()
>>>> methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
>>>> container: ad_hoc (Namespace)
>>>> superInheritances: #()
>>>> attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
>>>> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...
>>>>
>>>> [:each | | invokedMtd | each isASureInvocation
>>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>>> invokedMtd isNil
>>>> ifFalse: [(invokedMtd isAbstract
>>>> or: [invokedMtd = self])
>>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>> Arguments and temporary variables:
>>>> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
>>>> each: a Set()
>>>> invokedMtd: nil
>>>> Receiver's instance variables:
>>>> mooseID: 3985
>>>> state: a MooseDefaultState
>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'surfaceGravity'
>>>> isStub: false
>>>> receivingInvocations: #()
>>>> modifiers: a Set()
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>> localVariables: #()
>>>> parameters: #()
>>>> signature: 'surfaceGravity()'
>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>> declaredType: double (Type)
>>>> kind: nil
>>>> parentType: Planet in ad_hoc (Type)
>>>>
>>>> OrderedCollection>>do:
>>>> Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
>>>> Arguments and temporary variables:
>>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>>> ifTrue: [invokedMtd :=...etc...
>>>> index: 3
>>>> Receiver's instance variables:
>>>> array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
>>>> firstIndex: 3
>>>> lastIndex: 5
>>>>
>>>> FMMultivalueLink>>do:
>>>> Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
>>>> Arguments and temporary variables:
>>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>>> ifTrue: [invokedMtd :=...etc...
>>>> Receiver's instance variables:
>>>> values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
>>>> owner: Planet>>surfaceGravity() (Method)
>>>> opposite: #sender:
>>>>
>>>> FAMIXMethod>>privateSureInvokedMethods
>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>> Arguments and temporary variables:
>>>> outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
>>>> sureInvokedMtdsSet: a Set()
>>>> Receiver's instance variables:
>>>> mooseID: 3985
>>>> state: a MooseDefaultState
>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'surfaceGravity'
>>>> isStub: false
>>>> receivingInvocations: #()
>>>> modifiers: a Set()
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>> localVariables: #()
>>>> parameters: #()
>>>> signature: 'surfaceGravity()'
>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>> declaredType: double (Type)
>>>> kind: nil
>>>> parentType: Planet in ad_hoc (Type)
>>>>
>>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> mooseID: 3985
>>>> state: a MooseDefaultState
>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'surfaceGravity'
>>>> isStub: false
>>>> receivingInvocations: #()
>>>> modifiers: a Set()
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>> localVariables: #()
>>>> parameters: #()
>>>> signature: 'surfaceGravity()'
>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>> declaredType: double (Type)
>>>> kind: nil
>>>> parentType: Planet in ad_hoc (Type)
>>>>
>>>> SmallDictionary>>at:ifAbsentPut:
>>>> Receiver: a SmallDictionary()
>>>> Arguments and temporary variables:
>>>> key: #sureInvokedMethods
>>>> aBlock: [self privateSureInvokedMethods]
>>>> index: 0
>>>> Receiver's instance variables:
>>>> keys: #(nil nil)
>>>> values: #(nil nil)
>>>> size: 0
>>>>
>>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>>> Receiver: a MooseDefaultState
>>>> Arguments and temporary variables:
>>>> name: #sureInvokedMethods
>>>> aBlock: [self privateSureInvokedMethods]
>>>> Receiver's instance variables:
>>>> attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
>>>> entity: Planet>>surfaceGravity() (Method)
>>>> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
>>>> queryCache: a SmallDictionary()
>>>>
>>>> FAMIXMethod>>sureInvokedMethods
>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> mooseID: 3985
>>>> state: a MooseDefaultState
>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'surfaceGravity'
>>>> isStub: false
>>>> receivingInvocations: #()
>>>> modifiers: a Set()
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>> localVariables: #()
>>>> parameters: #()
>>>> signature: 'surfaceGravity()'
>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>> declaredType: double (Type)
>>>> kind: nil
>>>> parentType: Planet in ad_hoc (Type)
>>>>
>>>> FAMIXMethod>>invokedMethods
>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> mooseID: 3985
>>>> state: a MooseDefaultState
>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>> sourceLanguage: nil
>>>> comments: #()
>>>> declaredSourceLanguage: nil
>>>> name: 'surfaceGravity'
>>>> isStub: false
>>>> receivingInvocations: #()
>>>> modifiers: a Set()
>>>> parentPackage: nil
>>>> outgoingReferences: #()
>>>> types: #()
>>>> incomingReferences: #()
>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>> localVariables: #()
>>>> parameters: #()
>>>> signature: 'surfaceGravity()'
>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>> declaredType: double (Type)
>>>> kind: nil
>>>> parentType: Planet in ad_hoc (Type)
>>>>
>>>> [:each | each invokedMethods size] in [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:each | each isStub not].
>>>> bar increment.
>>>> allModelClasses := aMooseModel allModelClasses.
>>>> bar increment.
>>>> nop := aMooseModel allModelPackages size.
>>>> bar increment.
>>>> noc := allModelClasses size.
>>>> bar increment.
>>>> nom := allModelMethods size.
>>>> bar increment.
>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>> bar increment.
>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>> bar increment.
>>>> fanout := allModelClasses sum: #fanOut.
>>>> bar increment.
>>>> calls := allModelMethods
>>>> sum: [:each | each invokedMethods size].
>>>> bar increment.
>>>> andc := (allModelClasses
>>>> sum: [:class | class directSubclasses size])
>>>> / noc.
>>>> bar increment.
>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>> Receiver: an OverviewPyramidMetrics
>>>> Arguments and temporary variables:
>>>> each: Planet>>surfaceGravity() (Method)
>>>> Receiver's instance variables:
>>>> nop: 0
>>>> noc: 27
>>>> nom: 238
>>>> loc: 4230
>>>> cyclo: 760
>>>> fanout: 81
>>>> calls: nil
>>>> andc: nil
>>>> ahh: nil
>>>>
>>>> [:sum :each | sum
>>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>>> Receiver: Group (238 FAMIXMethods)
>>>> Arguments and temporary variables:
>>>> aSymbolOrBlock: 442
>>>> sum: Planet>>surfaceGravity() (Method)
>>>> each: [:each | each invokedMethods size]
>>>> Receiver's instance variables:
>>>> mooseID: 13709
>>>> state: a MooseDefaultState
>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>
>>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>> Arguments and temporary variables:
>>>> binaryBlock: Planet>>surfaceGravity() (Method)
>>>> nextValue: [:sum :each | sum
>>>> + (aSymbolOrBlock value: each)]
>>>> each: #(442)
>>>> Receiver's instance variables:
>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>> firstIndex: 333
>>>> lastIndex: 570
>>>>
>>>> OrderedCollection>>do:
>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>> Arguments and temporary variables:
>>>> aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
>>>> index: 408
>>>> Receiver's instance variables:
>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>> firstIndex: 333
>>>> lastIndex: 570
>>>>
>>>> OrderedCollection(Collection)>>inject:into:
>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>> Arguments and temporary variables:
>>>> thisValue: 0
>>>> binaryBlock: [:sum :each | sum
>>>> + (aSymbolOrBlock value: each)]
>>>> nextValue: #(442)
>>>> Receiver's instance variables:
>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>> firstIndex: 333
>>>> lastIndex: 570
>>>>
>>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>>> Receiver: Group (238 FAMIXMethods)
>>>> Arguments and temporary variables:
>>>> neutral: 0
>>>> aBinaryBlock: [:sum :each | sum
>>>> + (aSymbolOrBlock value: each)]
>>>> Receiver's instance variables:
>>>> mooseID: 13709
>>>> state: a MooseDefaultState
>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>
>>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>>> Receiver: Group (238 FAMIXMethods)
>>>> Arguments and temporary variables:
>>>> aSymbolOrBlock: [:each | each invokedMethods size]
>>>> Receiver's instance variables:
>>>> mooseID: 13709
>>>> state: a MooseDefaultState
>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>
>>>> [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:each | each isStub not].
>>>> bar increment.
>>>> allModelClasses := aMooseModel allModelClasses.
>>>> bar increment.
>>>> nop := aMooseModel allModelPackages size.
>>>> bar increment.
>>>> noc := allModelClasses size.
>>>> bar increment.
>>>> nom := allModelMethods size.
>>>> bar increment.
>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>> bar increment.
>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>> bar increment.
>>>> fanout := allModelClasses sum: #fanOut.
>>>> bar increment.
>>>> calls := allModelMethods
>>>> sum: [:each | each invokedMethods size].
>>>> bar increment.
>>>> andc := (allModelClasses
>>>> sum: [:class | class directSubclasses size])
>>>> / noc.
>>>> bar increment.
>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>> Receiver: an OverviewPyramidMetrics
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> nop: 0
>>>> noc: 27
>>>> nom: 238
>>>> loc: 4230
>>>> cyclo: 760
>>>> fanout: 81
>>>> calls: nil
>>>> andc: nil
>>>> ahh: nil
>>>>
>>>> MooseCustomTask>>basicRun
>>>> Receiver: a MooseCustomTask
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> progBar: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> retu...etc...
>>>> nb: 8
>>>> computation: [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:e...etc...
>>>> description: 'OverviewPyramid - computing metrics'
>>>> length: 11
>>>>
>>>> [:bar |
>>>> progBar := bar.
>>>> result := self basicRun] in [self setUp.
>>>> nb := 0.
>>>> UIManager default
>>>> displayProgress: self description
>>>> at: Sensor cursorPoint
>>>> from: 1
>>>> to: self length
>>>> during: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>> Receiver: a MooseCustomTask
>>>> Arguments and temporary variables:
>>>> result: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> retur...etc...
>>>> bar: #(nil)
>>>> Receiver's instance variables:
>>>> progBar: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> retu...etc...
>>>> nb: 8
>>>> computation: [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:e...etc...
>>>> description: 'OverviewPyramid - computing metrics'
>>>> length: 11
>>>>
>>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>>> on: ProgressNotification
>>>> do: [:ex |
>>>> ex extraParam isString
>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>> progress: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> ret...etc...
>>>> result: #(nil)
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> BlockClosure>>on:do:
>>>> Receiver: [result := workBlock value: progress]
>>>> Arguments and temporary variables:
>>>> exception: ProgressNotification
>>>> handlerAction: [:ex |
>>>> ex extraParam isString
>>>> ifTrue: [SystemProgressMorph un...etc...
>>>> handlerActive: true
>>>> Receiver's instance variables:
>>>> outerContext: [[result := workBlock value: progress]
>>>> on: ProgressNotification...etc...
>>>> startpc: 83
>>>> numArgs: 0
>>>>
>>>> [[result := workBlock value: progress]
>>>> on: ProgressNotification
>>>> do: [:ex |
>>>> ex extraParam isString
>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>> progress: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> ret...etc...
>>>> result: #(nil)
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> BlockClosure>>ensure:
>>>> Receiver: [[result := workBlock value: progress]
>>>> on: ProgressNotification
>>>> do: [:ex |
>>>> ex extr...etc...
>>>> Arguments and temporary variables:
>>>> aBlock: [SystemProgressMorph close: progress]
>>>> complete: nil
>>>> returnValue: nil
>>>> Receiver's instance variables:
>>>> outerContext: ProgressInitiationException>>defaultMorphicAction
>>>> startpc: 77
>>>> numArgs: 0
>>>>
>>>> ProgressInitiationException>>defaultMorphicAction
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>> progress: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> ret...etc...
>>>> result: #(nil)
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>>> Receiver: a MorphicUIManager
>>>> Arguments and temporary variables:
>>>> anException: ProgressInitiationException:
>>>> Receiver's instance variables:
>>>> interactiveParser: nil
>>>>
>>>> ProgressInitiationException>>defaultAction
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> UndefinedObject>>handleSignal:
>>>> Receiver: nil
>>>> Arguments and temporary variables:
>>>> exception: ProgressInitiationException:
>>>> Receiver's instance variables:
>>>> nil
>>>>
>>>> MethodContext(ContextPart)>>handleSignal:
>>>> Receiver: BlockClosure>>on:do:
>>>> Arguments and temporary variables:
>>>> exception: ProgressInitiationException:
>>>> val: nil
>>>> Receiver's instance variables:
>>>> sender: PasteUpMorph>>becomeActiveDuring:
>>>> pc: 17
>>>> stackp: 3
>>>> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
>>>> closureOrNil: nil
>>>> receiver: [aBlock value]
>>>>
>>>> ProgressInitiationException(Exception)>>signal
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>>
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> ProgressInitiationException>>display:at:from:to:during:
>>>> Receiver: ProgressInitiationException:
>>>> Arguments and temporary variables:
>>>> argString: 'OverviewPyramid - computing metrics'
>>>> argPoint: 296@172
>>>> argMinVal: 1
>>>> argMaxVal: 11
>>>> argWorkBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> Receiver's instance variables:
>>>> messageText: nil
>>>> tag: nil
>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>> handlerContext: nil
>>>> outerContext: nil
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> maxVal: 11
>>>> minVal: 1
>>>> aPoint: 296@172
>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>
>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>> Receiver: ProgressInitiationException
>>>> Arguments and temporary variables:
>>>> aString: 'OverviewPyramid - computing metrics'
>>>> aPoint: 296@172
>>>> minVal: 1
>>>> maxVal: 11
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> Receiver's instance variables:
>>>> superclass: Exception
>>>> methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
>>>> format: 150
>>>> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
>>>> organization: ('*Morphic' defaultMorphicAction)
>>>> ('accessing' maxVal minVal poin...etc...
>>>> subclasses: nil
>>>> name: #ProgressInitiationException
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: a SystemDictionary(lots of globals)
>>>> category: #'UIManager-Support'
>>>> traitComposition: {}
>>>> localSelectors: nil
>>>>
>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>> Receiver: a MorphicUIManager
>>>> Arguments and temporary variables:
>>>> titleString: 'OverviewPyramid - computing metrics'
>>>> aPoint: 296@172
>>>> minVal: 1
>>>> maxVal: 11
>>>> workBlock: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]
>>>> Receiver's instance variables:
>>>> interactiveParser: nil
>>>>
>>>> [self setUp.
>>>> nb := 0.
>>>> UIManager default
>>>> displayProgress: self description
>>>> at: Sensor cursorPoint
>>>> from: 1
>>>> to: self length
>>>> during: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>> Receiver: a MooseCustomTask
>>>> Arguments and temporary variables:
>>>> result: #(nil)
>>>> Receiver's instance variables:
>>>> progBar: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> retu...etc...
>>>> nb: 8
>>>> computation: [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:e...etc...
>>>> description: 'OverviewPyramid - computing metrics'
>>>> length: 11
>>>>
>>>> BlockClosure>>ensure:
>>>> Receiver: [self setUp.
>>>> nb := 0.
>>>> UIManager default
>>>> displayProgress: self description
>>>> at: Sensor...etc...
>>>> Arguments and temporary variables:
>>>> aBlock: [self tearDown]
>>>> complete: nil
>>>> returnValue: nil
>>>> Receiver's instance variables:
>>>> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
>>>> startpc: 65
>>>> numArgs: 0
>>>>
>>>> MooseCustomTask(MooseTask)>>runWithProgress
>>>> Receiver: a MooseCustomTask
>>>> Arguments and temporary variables:
>>>> result: #(nil)
>>>> Receiver's instance variables:
>>>> progBar: [:barValArg |
>>>> | barVal return newBarSize |
>>>> barVal := barValArg.
>>>> retu...etc...
>>>> nb: 8
>>>> computation: [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:e...etc...
>>>> description: 'OverviewPyramid - computing metrics'
>>>> length: 11
>>>>
>>>> MooseCustomTask class>>runWithProgress:description:length:
>>>> Receiver: MooseCustomTask
>>>> Arguments and temporary variables:
>>>> aBlock: [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:each |...etc...
>>>> aDescription: 'OverviewPyramid - computing metrics'
>>>> aNumber: 11
>>>> Receiver's instance variables:
>>>> superclass: MooseTask
>>>> methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
>>>> format: 140
>>>> instanceVariables: #('computation' 'description' 'length')
>>>> organization: ('as yet unclassified' basicRun description length with:descripti...etc...
>>>> subclasses: nil
>>>> name: #MooseCustomTask
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: a SystemDictionary(lots of globals)
>>>> category: #'Moose-Core'
>>>> traitComposition: {}
>>>> localSelectors: nil
>>>>
>>>> OverviewPyramidMetrics>>model:
>>>> Receiver: an OverviewPyramidMetrics
>>>> Arguments and temporary variables:
>>>> <<error during printing>
>>>> Receiver's instance variables:
>>>> nop: 0
>>>> noc: 27
>>>> nom: 238
>>>> loc: 4230
>>>> cyclo: 760
>>>> fanout: 81
>>>> calls: nil
>>>> andc: nil
>>>> ahh: nil
>>>>
>>>> OverviewPyramidMetrics class>>on:
>>>> Receiver: OverviewPyramidMetrics
>>>> Arguments and temporary variables:
>>>> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
>>>> Receiver's instance variables:
>>>> superclass: Object
>>>> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
>>>> format: 148
>>>> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
>>>> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
>>>> subclasses: nil
>>>> name: #OverviewPyramidMetrics
>>>> classPool: nil
>>>> sharedPools: nil
>>>> environment: a SystemDictionary(lots of globals)
>>>> category: #'Famix-Extensions'
>>>> traitComposition: {}
>>>> localSelectors: nil
>>>>
>>>>
>>>> --- The full stack ---
>>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>> [:each | | invokedMtd | each isASureInvocation
>>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>>> invokedMtd isNil
>>>> ifFalse: [(invokedMtd isAbstract
>>>> or: [invokedMtd = self])
>>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>>> OrderedCollection>>do:
>>>> FMMultivalueLink>>do:
>>>> FAMIXMethod>>privateSureInvokedMethods
>>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>>> SmallDictionary>>at:ifAbsentPut:
>>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>>> FAMIXMethod>>sureInvokedMethods
>>>> FAMIXMethod>>invokedMethods
>>>> [:each | each invokedMethods size] in [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:each | each isStub not].
>>>> bar increment.
>>>> allModelClasses := aMooseModel allModelClasses.
>>>> bar increment.
>>>> nop := aMooseModel allModelPackages size.
>>>> bar increment.
>>>> noc := allModelClasses size.
>>>> bar increment.
>>>> nom := allModelMethods size.
>>>> bar increment.
>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>> bar increment.
>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>> bar increment.
>>>> fanout := allModelClasses sum: #fanOut.
>>>> bar increment.
>>>> calls := allModelMethods
>>>> sum: [:each | each invokedMethods size].
>>>> bar increment.
>>>> andc := (allModelClasses
>>>> sum: [:class | class directSubclasses size])
>>>> / noc.
>>>> bar increment.
>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>> [:sum :each | sum
>>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>>> OrderedCollection>>do:
>>>> OrderedCollection(Collection)>>inject:into:
>>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>>> [:bar |
>>>> allModelMethods := aMooseModel allMethods
>>>> select: [:each | each isStub not].
>>>> bar increment.
>>>> allModelClasses := aMooseModel allModelClasses.
>>>> bar increment.
>>>> nop := aMooseModel allModelPackages size.
>>>> bar increment.
>>>> noc := allModelClasses size.
>>>> bar increment.
>>>> nom := allModelMethods size.
>>>> bar increment.
>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>> bar increment.
>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>> bar increment.
>>>> fanout := allModelClasses sum: #fanOut.
>>>> bar increment.
>>>> calls := allModelMethods
>>>> sum: [:each | each invokedMethods size].
>>>> bar increment.
>>>> andc := (allModelClasses
>>>> sum: [:class | class directSubclasses size])
>>>> / noc.
>>>> bar increment.
>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>> MooseCustomTask>>basicRun
>>>> [:bar |
>>>> progBar := bar.
>>>> result := self basicRun] in [self setUp.
>>>> nb := 0.
>>>> UIManager default
>>>> displayProgress: self description
>>>> at: Sensor cursorPoint
>>>> from: 1
>>>> to: self length
>>>> during: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>>> on: ProgressNotification
>>>> do: [:ex |
>>>> ex extraParam isString
>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>> BlockClosure>>on:do:
>>>> [[result := workBlock value: progress]
>>>> on: ProgressNotification
>>>> do: [:ex |
>>>> ex extraParam isString
>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>> BlockClosure>>ensure:
>>>> ProgressInitiationException>>defaultMorphicAction
>>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>>> ProgressInitiationException>>defaultAction
>>>> UndefinedObject>>handleSignal:
>>>> MethodContext(ContextPart)>>handleSignal:
>>>> ProgressInitiationException(Exception)>>signal
>>>> ProgressInitiationException>>display:at:from:to:during:
>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>> [self setUp.
>>>> nb := 0.
>>>> UIManager default
>>>> displayProgress: self description
>>>> at: Sensor cursorPoint
>>>> from: 1
>>>> to: self length
>>>> during: [:bar |
>>>> progBar := bar.
>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>> BlockClosure>>ensure:
>>>> MooseCustomTask(MooseTask)>>runWithProgress
>>>> MooseCustomTask class>>runWithProgress:description:length:
>>>> OverviewPyramidMetrics>>model:
>>>> OverviewPyramidMetrics class>>on:
>>>> - - - - - - - - - - - - - - -  
>>>> - - - - - - - - - - - - - - - - - -
>>>> [OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
>>>> SmallDictionary>>at:ifAbsentPut:
>>>> MooseDefaultState>>propertyAt:ifAbsentPut:
>>>> MooseModel>>overviewPyramidMetrics
>>>> OverviewPyramid>>initializeWith:
>>>> OverviewPyramid class>>on:
>>>> MooseModel>>viewOverviewPyramidMap
>>>> [:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
>>>> action: [:x | self perform: eachPragma selector];
>>>>
>>>> title: (eachPragma argumentAt: 1);
>>>>
>>>> category: (eachPragma argumentAt: 2)] in [:eachClass |
>>>> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
>>>> collect: [:eachPragma | GLMGenericAction new
>>>> action: [:x | self perform: eachPragma selector];
>>>>
>>>> title: (eachPragma argumentAt: 1);
>>>>
>>>> category: (eachPragma argumentAt: 2)].
>>>> simple := (Pragma allNamed: #menuItem: in: eachClass)
>>>> collect: [:eachPragma | GLMGenericAction new
>>>> action: [:x | self perform: eachPragma selector];
>>>>
>>>> title: (eachPragma argumentAt: 1)].
>>>> categorized , simple] in MooseModel(Object)>>mooseFinderActions
>>>> BlockClosure>>glamourValueWithArgs:
>>>> GLMGenericAction(GLMAction)>>actOn:
>>>> [:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
>>>> [:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
>>>> ActionSequence(SequenceableCollection)>>do:
>>>> ActionSequence>>valueWithArguments:
>>>> [:class :actions | (class handles: announcement)
>>>> ifTrue: [actions
>>>> valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
>>>> [:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>> [:each | each
>>>> ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
>>>> Array(SequenceableCollection)>>do:
>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>> GLMAnnouncer>>announce:
>>>> GLMTreeMorphModel>>announce:
>>>> GLMTreeMorphNodeModel>>executeMenuAction:
>>>> [| selArgCount | (selArgCount := selector numArgs) = 0
>>>> ifTrue: [target perform: selector]
>>>> ifFalse: [selArgCount = arguments size
>>>> ifTrue: [target perform: selector withArguments: arguments]
>>>> ifFalse: [target
>>>> perform: selector
>>>> withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>>> BlockClosure>>ensure:
>>>> CursorWithMask(Cursor)>>showWhile:
>>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>>> MouseButtonEvent>>sentTo:
>>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>> MenuMorph(Morph)>>processEvent:using:
>>>> MenuMorph(Morph)>>processEvent:
>>>> MenuMorph>>handleFocusEvent:
>>>> [ActiveHand := self.
>>>> ActiveEvent := anEvent.
>>>> result := focusHolder
>>>> handleFocusEvent: (anEvent
>>>> transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
>>>> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
>>>> BlockClosure>>on:do:
>>>> PasteUpMorph>>becomeActiveDuring:
>>>> HandMorph>>sendFocusEvent:to:clear:
>>>> HandMorph>>sendEvent:focus:clear:
>>>> HandMorph>>sendMouseEvent:
>>>> HandMorph>>handleEvent:
>>>> HandMorph>>processEvents
>>>> [:h |
>>>> ActiveHand := h.
>>>> h processEvents.
>>>> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
>>>> Array(SequenceableCollection)>>do:
>>>> WorldState>>handsDo:
>>>> WorldState>>doOneCycleNowFor:
>>>> WorldState>>doOneCycleFor:
>>>> PasteUpMorph>>doOneCycle
>>>> [[World doOneCycle.
>>>> Processor yield.
>>>> false] whileFalse.
>>>> nil] in Project class>>spawnNewProcess
>>>> [self value.
>>>> Processor terminateActive] in BlockClosure>>newProcess
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "What is more important: To be happy, or to make happy?"
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Presenting is storytelling."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Hi Stef,

On 24 May 2011, at 22:49, Stéphane Ducasse wrote:

>
> On May 24, 2011, at 9:45 PM, Tudor Girba wrote:
>
>> Hi Stef,
>>
>> Thanks for letting us know. It would be even more useful if you would tell us what the problems were and how to reproduce them.
>
> I reported the pyramid.
> After there were in my flow so I closed them. Now I can take 10 min on browsing verveineJ model and produce them. I imagine that somebody
> has to use this interface.
> I think that we should all think if we want to succeed or not.
> I mean yes I can do what I'm told (cyrille), or do my experience (jannik), or fix mondrian (alex) but
> if nobody spend 1 hour to try to analyse a Java project then we will have bugs.

I know. There were recent changes that had unexpected effects and that were not captured in tests. This is not good and this is why I said that we should look into the API which seems to crash because of the methods that are in FAMIXClass instead of FAMIXType.

Cheers,
Doru


> Stef
>
>
>>
>> Cheers,
>> Doru
>>
>>
>> On 24 May 2011, at 21:27, Stéphane Ducasse wrote:
>>
>>> just for your info.
>>> I will not use a Java model for my presentation friday because there are DNU popping up a lot.
>>> In 10 min clicking I got at least 3 or 4 bugs.
>>>
>>> Stef
>>>
>>>
>>> On May 24, 2011, at 3:35 PM, Tudor Girba wrote:
>>>
>>>> Could you please provide a link to the MSE file so that we can reproduce the problem?
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>> On 24 May 2011, at 15:22, Stéphane Ducasse wrote:
>>>>
>>>>> From: ss
>>>>> To: [hidden email]
>>>>> Subject: [BUG]FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>>>
>>>>> here insert explanation of what you were doing, suspect changes you've made and so forth.
>>>>>
>>>>> 24 May 2011 3:22:18 pm
>>>>>
>>>>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Moose Suite 4.4
>>>>> Image: Pharo1.2.1 [Latest update: #12345]
>>>>>
>>>>> SecurityManager state:
>>>>> Restricted: false
>>>>> FileAccess: true
>>>>> SocketAccess: true
>>>>> Working Dir /Users/ducasse/Workspace/FirstCircle/Moose/StartUp-ClearVue/2011-05-27-Aix-Stef/Moose.app/Contents/Resources
>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
>>>>>
>>>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>>> Receiver: Planet in ad_hoc (Type)
>>>>> Arguments and temporary variables:
>>>>> aMessage: lookUp: 'radius()'
>>>>> exception: MessageNotUnderstood: FAMIXEnum>>lookUp:
>>>>> resumeValue: nil
>>>>> Receiver's instance variables:
>>>>> mooseID: 2324
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: nil
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'Planet'
>>>>> isStub: false
>>>>> receivingInvocations: an Array(main -> Planet#values() (Invocation))
>>>>> modifiers: a Set(#isFinal #isPublic)
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> subInheritances: #()
>>>>> methods: an Array(Planet>>surfaceWeight(double) (Method) Planet>>toString() (Me...etc...
>>>>> container: ad_hoc (Namespace)
>>>>> superInheritances: #()
>>>>> attributes: an Array(Planet.radius (Attribute) Planet.mass (Attribute) Planet.G...etc...
>>>>> values: an Array(a FAMIXEnumValue #JUPITER a FAMIXEnumValue #SATURN a FAMIXEnum...etc...
>>>>>
>>>>> [:each | | invokedMtd | each isASureInvocation
>>>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>>>> invokedMtd isNil
>>>>> ifFalse: [(invokedMtd isAbstract
>>>>> or: [invokedMtd = self])
>>>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>>> Arguments and temporary variables:
>>>>> sureInvokedMtdsSet: surfaceGravity -> self#radius() (Invocation)
>>>>> each: a Set()
>>>>> invokedMtd: nil
>>>>> Receiver's instance variables:
>>>>> mooseID: 3985
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'surfaceGravity'
>>>>> isStub: false
>>>>> receivingInvocations: #()
>>>>> modifiers: a Set()
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>>> localVariables: #()
>>>>> parameters: #()
>>>>> signature: 'surfaceGravity()'
>>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>>> declaredType: double (Type)
>>>>> kind: nil
>>>>> parentType: Planet in ad_hoc (Type)
>>>>>
>>>>> OrderedCollection>>do:
>>>>> Receiver: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#r...etc...
>>>>> Arguments and temporary variables:
>>>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>>>> ifTrue: [invokedMtd :=...etc...
>>>>> index: 3
>>>>> Receiver's instance variables:
>>>>> array: an Array(nil nil surfaceGravity -> self#radius() (Invocation) surfaceGra...etc...
>>>>> firstIndex: 3
>>>>> lastIndex: 5
>>>>>
>>>>> FMMultivalueLink>>do:
>>>>> Receiver: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGravity -> self#radius() (Inv...etc...
>>>>> Arguments and temporary variables:
>>>>> aBlock: [:each | | invokedMtd | each isASureInvocation
>>>>> ifTrue: [invokedMtd :=...etc...
>>>>> Receiver's instance variables:
>>>>> values: an OrderedCollection(surfaceGravity -> self#radius() (Invocation) surfa...etc...
>>>>> owner: Planet>>surfaceGravity() (Method)
>>>>> opposite: #sender:
>>>>>
>>>>> FAMIXMethod>>privateSureInvokedMethods
>>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>>> Arguments and temporary variables:
>>>>> outgoingInvo: an Array(surfaceGravity -> self#radius() (Invocation) surfaceGrav...etc...
>>>>> sureInvokedMtdsSet: a Set()
>>>>> Receiver's instance variables:
>>>>> mooseID: 3985
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'surfaceGravity'
>>>>> isStub: false
>>>>> receivingInvocations: #()
>>>>> modifiers: a Set()
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>>> localVariables: #()
>>>>> parameters: #()
>>>>> signature: 'surfaceGravity()'
>>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>>> declaredType: double (Type)
>>>>> kind: nil
>>>>> parentType: Planet in ad_hoc (Type)
>>>>>
>>>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> mooseID: 3985
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'surfaceGravity'
>>>>> isStub: false
>>>>> receivingInvocations: #()
>>>>> modifiers: a Set()
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>>> localVariables: #()
>>>>> parameters: #()
>>>>> signature: 'surfaceGravity()'
>>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>>> declaredType: double (Type)
>>>>> kind: nil
>>>>> parentType: Planet in ad_hoc (Type)
>>>>>
>>>>> SmallDictionary>>at:ifAbsentPut:
>>>>> Receiver: a SmallDictionary()
>>>>> Arguments and temporary variables:
>>>>> key: #sureInvokedMethods
>>>>> aBlock: [self privateSureInvokedMethods]
>>>>> index: 0
>>>>> Receiver's instance variables:
>>>>> keys: #(nil nil)
>>>>> values: #(nil nil)
>>>>> size: 0
>>>>>
>>>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>>>> Receiver: a MooseDefaultState
>>>>> Arguments and temporary variables:
>>>>> name: #sureInvokedMethods
>>>>> aBlock: [self privateSureInvokedMethods]
>>>>> Receiver's instance variables:
>>>>> attributes: an Array(#privateModel->a MooseModel #'verveine.extractor.java'(582...etc...
>>>>> entity: Planet>>surfaceGravity() (Method)
>>>>> propertyCache: a SmallDictionary('CYCLO'->1 'NOS'->4 #LOC->3)
>>>>> queryCache: a SmallDictionary()
>>>>>
>>>>> FAMIXMethod>>sureInvokedMethods
>>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> mooseID: 3985
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'surfaceGravity'
>>>>> isStub: false
>>>>> receivingInvocations: #()
>>>>> modifiers: a Set()
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>>> localVariables: #()
>>>>> parameters: #()
>>>>> signature: 'surfaceGravity()'
>>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>>> declaredType: double (Type)
>>>>> kind: nil
>>>>> parentType: Planet in ad_hoc (Type)
>>>>>
>>>>> FAMIXMethod>>invokedMethods
>>>>> Receiver: Planet>>surfaceGravity() (Method)
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> mooseID: 3985
>>>>> state: a MooseDefaultState
>>>>> sourceAnchor: a FAMIXFileAnchor #'/Users/ducasse/Workspace/FirstCircle/Moose/St...etc...
>>>>> sourceLanguage: nil
>>>>> comments: #()
>>>>> declaredSourceLanguage: nil
>>>>> name: 'surfaceGravity'
>>>>> isStub: false
>>>>> receivingInvocations: #()
>>>>> modifiers: a Set()
>>>>> parentPackage: nil
>>>>> outgoingReferences: #()
>>>>> types: #()
>>>>> incomingReferences: #()
>>>>> outgoingInvocations: an Array(surfaceGravity -> self#radius() (Invocation) surf...etc...
>>>>> incomingInvocations: an Array(surfaceWeight -> self#surfaceGravity() (Invocatio...etc...
>>>>> localVariables: #()
>>>>> parameters: #()
>>>>> signature: 'surfaceGravity()'
>>>>> accesses: an Array(surfaceGravity -> G (Access))
>>>>> declaredType: double (Type)
>>>>> kind: nil
>>>>> parentType: Planet in ad_hoc (Type)
>>>>>
>>>>> [:each | each invokedMethods size] in [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:each | each isStub not].
>>>>> bar increment.
>>>>> allModelClasses := aMooseModel allModelClasses.
>>>>> bar increment.
>>>>> nop := aMooseModel allModelPackages size.
>>>>> bar increment.
>>>>> noc := allModelClasses size.
>>>>> bar increment.
>>>>> nom := allModelMethods size.
>>>>> bar increment.
>>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>>> bar increment.
>>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>>> bar increment.
>>>>> fanout := allModelClasses sum: #fanOut.
>>>>> bar increment.
>>>>> calls := allModelMethods
>>>>> sum: [:each | each invokedMethods size].
>>>>> bar increment.
>>>>> andc := (allModelClasses
>>>>> sum: [:class | class directSubclasses size])
>>>>> / noc.
>>>>> bar increment.
>>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>>> Receiver: an OverviewPyramidMetrics
>>>>> Arguments and temporary variables:
>>>>> each: Planet>>surfaceGravity() (Method)
>>>>> Receiver's instance variables:
>>>>> nop: 0
>>>>> noc: 27
>>>>> nom: 238
>>>>> loc: 4230
>>>>> cyclo: 760
>>>>> fanout: 81
>>>>> calls: nil
>>>>> andc: nil
>>>>> ahh: nil
>>>>>
>>>>> [:sum :each | sum
>>>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>>>> Receiver: Group (238 FAMIXMethods)
>>>>> Arguments and temporary variables:
>>>>> aSymbolOrBlock: 442
>>>>> sum: Planet>>surfaceGravity() (Method)
>>>>> each: [:each | each invokedMethods size]
>>>>> Receiver's instance variables:
>>>>> mooseID: 13709
>>>>> state: a MooseDefaultState
>>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>>
>>>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>>> Arguments and temporary variables:
>>>>> binaryBlock: Planet>>surfaceGravity() (Method)
>>>>> nextValue: [:sum :each | sum
>>>>> + (aSymbolOrBlock value: each)]
>>>>> each: #(442)
>>>>> Receiver's instance variables:
>>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>>> firstIndex: 333
>>>>> lastIndex: 570
>>>>>
>>>>> OrderedCollection>>do:
>>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>>> Arguments and temporary variables:
>>>>> aBlock: [:each | nextValue := binaryBlock value: nextValue value: each]
>>>>> index: 408
>>>>> Receiver's instance variables:
>>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>>> firstIndex: 333
>>>>> lastIndex: 570
>>>>>
>>>>> OrderedCollection(Collection)>>inject:into:
>>>>> Receiver: an OrderedCollection(Dictionary>>Dictionary(Repository) (Method) VerveineVisitor>>endVisit...etc...
>>>>> Arguments and temporary variables:
>>>>> thisValue: 0
>>>>> binaryBlock: [:sum :each | sum
>>>>> + (aSymbolOrBlock value: each)]
>>>>> nextValue: #(442)
>>>>> Receiver's instance variables:
>>>>> array: an Array(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil...etc...
>>>>> firstIndex: 333
>>>>> lastIndex: 570
>>>>>
>>>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>>>> Receiver: Group (238 FAMIXMethods)
>>>>> Arguments and temporary variables:
>>>>> neutral: 0
>>>>> aBinaryBlock: [:sum :each | sum
>>>>> + (aSymbolOrBlock value: each)]
>>>>> Receiver's instance variables:
>>>>> mooseID: 13709
>>>>> state: a MooseDefaultState
>>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>>
>>>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>>>> Receiver: Group (238 FAMIXMethods)
>>>>> Arguments and temporary variables:
>>>>> aSymbolOrBlock: [:each | each invokedMethods size]
>>>>> Receiver's instance variables:
>>>>> mooseID: 13709
>>>>> state: a MooseDefaultState
>>>>> storage: a MooseGroupRuntimeStorage(Dictionary>>Dictionary(Repository) (Method)...etc...
>>>>>
>>>>> [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:each | each isStub not].
>>>>> bar increment.
>>>>> allModelClasses := aMooseModel allModelClasses.
>>>>> bar increment.
>>>>> nop := aMooseModel allModelPackages size.
>>>>> bar increment.
>>>>> noc := allModelClasses size.
>>>>> bar increment.
>>>>> nom := allModelMethods size.
>>>>> bar increment.
>>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>>> bar increment.
>>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>>> bar increment.
>>>>> fanout := allModelClasses sum: #fanOut.
>>>>> bar increment.
>>>>> calls := allModelMethods
>>>>> sum: [:each | each invokedMethods size].
>>>>> bar increment.
>>>>> andc := (allModelClasses
>>>>> sum: [:class | class directSubclasses size])
>>>>> / noc.
>>>>> bar increment.
>>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>>> Receiver: an OverviewPyramidMetrics
>>>>> Arguments and temporary variables:
>>>>> <<error during printing>
>>>>> Receiver's instance variables:
>>>>> nop: 0
>>>>> noc: 27
>>>>> nom: 238
>>>>> loc: 4230
>>>>> cyclo: 760
>>>>> fanout: 81
>>>>> calls: nil
>>>>> andc: nil
>>>>> ahh: nil
>>>>>
>>>>> MooseCustomTask>>basicRun
>>>>> Receiver: a MooseCustomTask
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> progBar: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> retu...etc...
>>>>> nb: 8
>>>>> computation: [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:e...etc...
>>>>> description: 'OverviewPyramid - computing metrics'
>>>>> length: 11
>>>>>
>>>>> [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun] in [self setUp.
>>>>> nb := 0.
>>>>> UIManager default
>>>>> displayProgress: self description
>>>>> at: Sensor cursorPoint
>>>>> from: 1
>>>>> to: self length
>>>>> during: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>>> Receiver: a MooseCustomTask
>>>>> Arguments and temporary variables:
>>>>> result: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> retur...etc...
>>>>> bar: #(nil)
>>>>> Receiver's instance variables:
>>>>> progBar: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> retu...etc...
>>>>> nb: 8
>>>>> computation: [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:e...etc...
>>>>> description: 'OverviewPyramid - computing metrics'
>>>>> length: 11
>>>>>
>>>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>>>> on: ProgressNotification
>>>>> do: [:ex |
>>>>> ex extraParam isString
>>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>> progress: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> ret...etc...
>>>>> result: #(nil)
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> BlockClosure>>on:do:
>>>>> Receiver: [result := workBlock value: progress]
>>>>> Arguments and temporary variables:
>>>>> exception: ProgressNotification
>>>>> handlerAction: [:ex |
>>>>> ex extraParam isString
>>>>> ifTrue: [SystemProgressMorph un...etc...
>>>>> handlerActive: true
>>>>> Receiver's instance variables:
>>>>> outerContext: [[result := workBlock value: progress]
>>>>> on: ProgressNotification...etc...
>>>>> startpc: 83
>>>>> numArgs: 0
>>>>>
>>>>> [[result := workBlock value: progress]
>>>>> on: ProgressNotification
>>>>> do: [:ex |
>>>>> ex extraParam isString
>>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>> progress: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> ret...etc...
>>>>> result: #(nil)
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> BlockClosure>>ensure:
>>>>> Receiver: [[result := workBlock value: progress]
>>>>> on: ProgressNotification
>>>>> do: [:ex |
>>>>> ex extr...etc...
>>>>> Arguments and temporary variables:
>>>>> aBlock: [SystemProgressMorph close: progress]
>>>>> complete: nil
>>>>> returnValue: nil
>>>>> Receiver's instance variables:
>>>>> outerContext: ProgressInitiationException>>defaultMorphicAction
>>>>> startpc: 77
>>>>> numArgs: 0
>>>>>
>>>>> ProgressInitiationException>>defaultMorphicAction
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>> progress: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> ret...etc...
>>>>> result: #(nil)
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>>>> Receiver: a MorphicUIManager
>>>>> Arguments and temporary variables:
>>>>> anException: ProgressInitiationException:
>>>>> Receiver's instance variables:
>>>>> interactiveParser: nil
>>>>>
>>>>> ProgressInitiationException>>defaultAction
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> UndefinedObject>>handleSignal:
>>>>> Receiver: nil
>>>>> Arguments and temporary variables:
>>>>> exception: ProgressInitiationException:
>>>>> Receiver's instance variables:
>>>>> nil
>>>>>
>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>> Receiver: BlockClosure>>on:do:
>>>>> Arguments and temporary variables:
>>>>> exception: ProgressInitiationException:
>>>>> val: nil
>>>>> Receiver's instance variables:
>>>>> sender: PasteUpMorph>>becomeActiveDuring:
>>>>> pc: 17
>>>>> stackp: 3
>>>>> method: (BlockClosure>>#on:do: "a CompiledMethod(25427968)")
>>>>> closureOrNil: nil
>>>>> receiver: [aBlock value]
>>>>>
>>>>> ProgressInitiationException(Exception)>>signal
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>>
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>> Receiver: ProgressInitiationException:
>>>>> Arguments and temporary variables:
>>>>> argString: 'OverviewPyramid - computing metrics'
>>>>> argPoint: 296@172
>>>>> argMinVal: 1
>>>>> argMaxVal: 11
>>>>> argWorkBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> Receiver's instance variables:
>>>>> messageText: nil
>>>>> tag: nil
>>>>> signalContext: ProgressInitiationException(Exception)>>signal
>>>>> handlerContext: nil
>>>>> outerContext: nil
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> maxVal: 11
>>>>> minVal: 1
>>>>> aPoint: 296@172
>>>>> progressTitle: 'OverviewPyramid - computing metrics'
>>>>>
>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>> Receiver: ProgressInitiationException
>>>>> Arguments and temporary variables:
>>>>> aString: 'OverviewPyramid - computing metrics'
>>>>> aPoint: 296@172
>>>>> minVal: 1
>>>>> maxVal: 11
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> Receiver's instance variables:
>>>>> superclass: Exception
>>>>> methodDict: a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
>>>>> format: 150
>>>>> instanceVariables: #('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
>>>>> organization: ('*Morphic' defaultMorphicAction)
>>>>> ('accessing' maxVal minVal poin...etc...
>>>>> subclasses: nil
>>>>> name: #ProgressInitiationException
>>>>> classPool: nil
>>>>> sharedPools: nil
>>>>> environment: a SystemDictionary(lots of globals)
>>>>> category: #'UIManager-Support'
>>>>> traitComposition: {}
>>>>> localSelectors: nil
>>>>>
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> Receiver: a MorphicUIManager
>>>>> Arguments and temporary variables:
>>>>> titleString: 'OverviewPyramid - computing metrics'
>>>>> aPoint: 296@172
>>>>> minVal: 1
>>>>> maxVal: 11
>>>>> workBlock: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]
>>>>> Receiver's instance variables:
>>>>> interactiveParser: nil
>>>>>
>>>>> [self setUp.
>>>>> nb := 0.
>>>>> UIManager default
>>>>> displayProgress: self description
>>>>> at: Sensor cursorPoint
>>>>> from: 1
>>>>> to: self length
>>>>> during: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>>> Receiver: a MooseCustomTask
>>>>> Arguments and temporary variables:
>>>>> result: #(nil)
>>>>> Receiver's instance variables:
>>>>> progBar: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> retu...etc...
>>>>> nb: 8
>>>>> computation: [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:e...etc...
>>>>> description: 'OverviewPyramid - computing metrics'
>>>>> length: 11
>>>>>
>>>>> BlockClosure>>ensure:
>>>>> Receiver: [self setUp.
>>>>> nb := 0.
>>>>> UIManager default
>>>>> displayProgress: self description
>>>>> at: Sensor...etc...
>>>>> Arguments and temporary variables:
>>>>> aBlock: [self tearDown]
>>>>> complete: nil
>>>>> returnValue: nil
>>>>> Receiver's instance variables:
>>>>> outerContext: MooseCustomTask(MooseTask)>>runWithProgress
>>>>> startpc: 65
>>>>> numArgs: 0
>>>>>
>>>>> MooseCustomTask(MooseTask)>>runWithProgress
>>>>> Receiver: a MooseCustomTask
>>>>> Arguments and temporary variables:
>>>>> result: #(nil)
>>>>> Receiver's instance variables:
>>>>> progBar: [:barValArg |
>>>>> | barVal return newBarSize |
>>>>> barVal := barValArg.
>>>>> retu...etc...
>>>>> nb: 8
>>>>> computation: [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:e...etc...
>>>>> description: 'OverviewPyramid - computing metrics'
>>>>> length: 11
>>>>>
>>>>> MooseCustomTask class>>runWithProgress:description:length:
>>>>> Receiver: MooseCustomTask
>>>>> Arguments and temporary variables:
>>>>> aBlock: [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:each |...etc...
>>>>> aDescription: 'OverviewPyramid - computing metrics'
>>>>> aNumber: 11
>>>>> Receiver's instance variables:
>>>>> superclass: MooseTask
>>>>> methodDict: a MethodDictionary(#basicRun->(MooseCustomTask>>#basicRun "a Compil...etc...
>>>>> format: 140
>>>>> instanceVariables: #('computation' 'description' 'length')
>>>>> organization: ('as yet unclassified' basicRun description length with:descripti...etc...
>>>>> subclasses: nil
>>>>> name: #MooseCustomTask
>>>>> classPool: nil
>>>>> sharedPools: nil
>>>>> environment: a SystemDictionary(lots of globals)
>>>>> category: #'Moose-Core'
>>>>> traitComposition: {}
>>>>> localSelectors: nil
>>>>>
>>>>> OverviewPyramidMetrics>>model:
>>>>> Receiver: an OverviewPyramidMetrics
>>>>> Arguments and temporary variables:
>>>>> <<error during printing>
>>>>> Receiver's instance variables:
>>>>> nop: 0
>>>>> noc: 27
>>>>> nom: 238
>>>>> loc: 4230
>>>>> cyclo: 760
>>>>> fanout: 81
>>>>> calls: nil
>>>>> andc: nil
>>>>> ahh: nil
>>>>>
>>>>> OverviewPyramidMetrics class>>on:
>>>>> Receiver: OverviewPyramidMetrics
>>>>> Arguments and temporary variables:
>>>>> aMooseModel: a MooseModel #'verveine.extractor.java'(5820)
>>>>> Receiver's instance variables:
>>>>> superclass: Object
>>>>> methodDict: a MethodDictionary(#ahh->(OverviewPyramidMetrics>>#ahh "a CompiledM...etc...
>>>>> format: 148
>>>>> instanceVariables: #('nop' 'noc' 'nom' 'loc' 'cyclo' 'fanout' 'calls' 'andc' 'a...etc...
>>>>> organization: ('accessing' ahh: andc: calls: cyclo: fanout: loc: noc: nom: nop:...etc...
>>>>> subclasses: nil
>>>>> name: #OverviewPyramidMetrics
>>>>> classPool: nil
>>>>> sharedPools: nil
>>>>> environment: a SystemDictionary(lots of globals)
>>>>> category: #'Famix-Extensions'
>>>>> traitComposition: {}
>>>>> localSelectors: nil
>>>>>
>>>>>
>>>>> --- The full stack ---
>>>>> FAMIXEnum(Object)>>doesNotUnderstand: #lookUp:
>>>>> [:each | | invokedMtd | each isASureInvocation
>>>>> ifTrue: [invokedMtd := each getReceivingFAMIXClass lookUp: each signature.
>>>>> invokedMtd isNil
>>>>> ifFalse: [(invokedMtd isAbstract
>>>>> or: [invokedMtd = self])
>>>>> ifFalse: [sureInvokedMtdsSet add: invokedMtd]]]] in FAMIXMethod>>privateSureInvokedMethods
>>>>> OrderedCollection>>do:
>>>>> FMMultivalueLink>>do:
>>>>> FAMIXMethod>>privateSureInvokedMethods
>>>>> [self privateSureInvokedMethods] in FAMIXMethod>>sureInvokedMethods
>>>>> SmallDictionary>>at:ifAbsentPut:
>>>>> MooseDefaultState>>cacheAt:ifAbsentPut:
>>>>> FAMIXMethod>>sureInvokedMethods
>>>>> FAMIXMethod>>invokedMethods
>>>>> [:each | each invokedMethods size] in [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:each | each isStub not].
>>>>> bar increment.
>>>>> allModelClasses := aMooseModel allModelClasses.
>>>>> bar increment.
>>>>> nop := aMooseModel allModelPackages size.
>>>>> bar increment.
>>>>> noc := allModelClasses size.
>>>>> bar increment.
>>>>> nom := allModelMethods size.
>>>>> bar increment.
>>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>>> bar increment.
>>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>>> bar increment.
>>>>> fanout := allModelClasses sum: #fanOut.
>>>>> bar increment.
>>>>> calls := allModelMethods
>>>>> sum: [:each | each invokedMethods size].
>>>>> bar increment.
>>>>> andc := (allModelClasses
>>>>> sum: [:class | class directSubclasses size])
>>>>> / noc.
>>>>> bar increment.
>>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>>> [:sum :each | sum
>>>>> + (aSymbolOrBlock value: each)] in FAMIXMethodGroup(MooseGroup)>>sum:
>>>>> [:each | nextValue := binaryBlock value: nextValue value: each] in OrderedCollection(Collection)>>inject:into:
>>>>> OrderedCollection>>do:
>>>>> OrderedCollection(Collection)>>inject:into:
>>>>> FAMIXMethodGroup(MooseAbstractGroup)>>inject:into:
>>>>> FAMIXMethodGroup(MooseGroup)>>sum:
>>>>> [:bar |
>>>>> allModelMethods := aMooseModel allMethods
>>>>> select: [:each | each isStub not].
>>>>> bar increment.
>>>>> allModelClasses := aMooseModel allModelClasses.
>>>>> bar increment.
>>>>> nop := aMooseModel allModelPackages size.
>>>>> bar increment.
>>>>> noc := allModelClasses size.
>>>>> bar increment.
>>>>> nom := allModelMethods size.
>>>>> bar increment.
>>>>> loc := allModelMethods sum: #numberOfLinesOfCode.
>>>>> bar increment.
>>>>> cyclo := allModelMethods sum: #cyclomaticComplexity.
>>>>> bar increment.
>>>>> fanout := allModelClasses sum: #fanOut.
>>>>> bar increment.
>>>>> calls := allModelMethods
>>>>> sum: [:each | each invokedMethods size].
>>>>> bar increment.
>>>>> andc := (allModelClasses
>>>>> sum: [:class | class directSubclasses size])
>>>>> / noc.
>>>>> bar increment.
>>>>> ahh := allModelClasses average: #hierarchyNestingLevel.
>>>>> bar increment] in OverviewPyramidMetrics>>model:
>>>>> MooseCustomTask>>basicRun
>>>>> [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun] in [self setUp.
>>>>> nb := 0.
>>>>> UIManager default
>>>>> displayProgress: self description
>>>>> at: Sensor cursorPoint
>>>>> from: 1
>>>>> to: self length
>>>>> during: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>>> [result := workBlock value: progress] in [[result := workBlock value: progress]
>>>>> on: ProgressNotification
>>>>> do: [:ex |
>>>>> ex extraParam isString
>>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>>> BlockClosure>>on:do:
>>>>> [[result := workBlock value: progress]
>>>>> on: ProgressNotification
>>>>> do: [:ex |
>>>>> ex extraParam isString
>>>>> ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam].
>>>>> ex resume]] in ProgressInitiationException>>defaultMorphicAction
>>>>> BlockClosure>>ensure:
>>>>> ProgressInitiationException>>defaultMorphicAction
>>>>> MorphicUIManager>>progressInitiationExceptionDefaultAction:
>>>>> ProgressInitiationException>>defaultAction
>>>>> UndefinedObject>>handleSignal:
>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>> ProgressInitiationException(Exception)>>signal
>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> [self setUp.
>>>>> nb := 0.
>>>>> UIManager default
>>>>> displayProgress: self description
>>>>> at: Sensor cursorPoint
>>>>> from: 1
>>>>> to: self length
>>>>> during: [:bar |
>>>>> progBar := bar.
>>>>> result := self basicRun]] in MooseCustomTask(MooseTask)>>runWithProgress
>>>>> BlockClosure>>ensure:
>>>>> MooseCustomTask(MooseTask)>>runWithProgress
>>>>> MooseCustomTask class>>runWithProgress:description:length:
>>>>> OverviewPyramidMetrics>>model:
>>>>> OverviewPyramidMetrics class>>on:
>>>>> - - - - - - - - - - - - - - -  
>>>>> - - - - - - - - - - - - - - - - - -
>>>>> [OverviewPyramidMetrics on: self] in MooseModel>>overviewPyramidMetrics
>>>>> SmallDictionary>>at:ifAbsentPut:
>>>>> MooseDefaultState>>propertyAt:ifAbsentPut:
>>>>> MooseModel>>overviewPyramidMetrics
>>>>> OverviewPyramid>>initializeWith:
>>>>> OverviewPyramid class>>on:
>>>>> MooseModel>>viewOverviewPyramidMap
>>>>> [:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction new
>>>>> action: [:x | self perform: eachPragma selector];
>>>>>
>>>>> title: (eachPragma argumentAt: 1);
>>>>>
>>>>> category: (eachPragma argumentAt: 2)] in [:eachClass |
>>>>> categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
>>>>> collect: [:eachPragma | GLMGenericAction new
>>>>> action: [:x | self perform: eachPragma selector];
>>>>>
>>>>> title: (eachPragma argumentAt: 1);
>>>>>
>>>>> category: (eachPragma argumentAt: 2)].
>>>>> simple := (Pragma allNamed: #menuItem: in: eachClass)
>>>>> collect: [:eachPragma | GLMGenericAction new
>>>>> action: [:x | self perform: eachPragma selector];
>>>>>
>>>>> title: (eachPragma argumentAt: 1)].
>>>>> categorized , simple] in MooseModel(Object)>>mooseFinderActions
>>>>> BlockClosure>>glamourValueWithArgs:
>>>>> GLMGenericAction(GLMAction)>>actOn:
>>>>> [:ann | ann action actOn: aPresentation] in GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
>>>>> [:each | answer := each valueWithArguments: anArray] in ActionSequence>>valueWithArguments:
>>>>> ActionSequence(SequenceableCollection)>>do:
>>>>> ActionSequence>>valueWithArguments:
>>>>> [:class :actions | (class handles: announcement)
>>>>> ifTrue: [actions
>>>>> valueWithArguments: (Array with: announcement)]] in GLMAnnouncer>>announce:
>>>>> [:assoc | aBlock value: assoc key value: assoc value] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>> [:each | each
>>>>> ifNotNil: [aBlock value: each]] in IdentityDictionary(Dictionary)>>associationsDo:
>>>>> Array(SequenceableCollection)>>do:
>>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>> GLMAnnouncer>>announce:
>>>>> GLMTreeMorphModel>>announce:
>>>>> GLMTreeMorphNodeModel>>executeMenuAction:
>>>>> [| selArgCount | (selArgCount := selector numArgs) = 0
>>>>> ifTrue: [target perform: selector]
>>>>> ifFalse: [selArgCount = arguments size
>>>>> ifTrue: [target perform: selector withArguments: arguments]
>>>>> ifFalse: [target
>>>>> perform: selector
>>>>> withArguments: (arguments copyWith: evt)]]] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>>>> BlockClosure>>ensure:
>>>>> CursorWithMask(Cursor)>>showWhile:
>>>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>>>> MouseButtonEvent>>sentTo:
>>>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>> MenuMorph(Morph)>>processEvent:using:
>>>>> MenuMorph(Morph)>>processEvent:
>>>>> MenuMorph>>handleFocusEvent:
>>>>> [ActiveHand := self.
>>>>> ActiveEvent := anEvent.
>>>>> result := focusHolder
>>>>> handleFocusEvent: (anEvent
>>>>> transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
>>>>> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
>>>>> BlockClosure>>on:do:
>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>> HandMorph>>sendEvent:focus:clear:
>>>>> HandMorph>>sendMouseEvent:
>>>>> HandMorph>>handleEvent:
>>>>> HandMorph>>processEvents
>>>>> [:h |
>>>>> ActiveHand := h.
>>>>> h processEvents.
>>>>> ActiveHand := nil] in WorldState>>doOneCycleNowFor:
>>>>> Array(SequenceableCollection)>>do:
>>>>> WorldState>>handsDo:
>>>>> WorldState>>doOneCycleNowFor:
>>>>> WorldState>>doOneCycleFor:
>>>>> PasteUpMorph>>doOneCycle
>>>>> [[World doOneCycle.
>>>>> Processor yield.
>>>>> false] whileFalse.
>>>>> nil] in Project class>>spawnNewProcess
>>>>> [self value.
>>>>> Processor terminateActive] in BlockClosure>>newProcess
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Moose-dev mailing list
>>>>> [hidden email]
>>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "What is more important: To be happy, or to make happy?"
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "Presenting is storytelling."
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Every successful trip needs a suitable vehicle."





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Nicolas Anquetil
In reply to this post by Stéphane Ducasse

> I reported the pyramid.
> After there were in my flow so I closed them. Now I can take 10 min on
> browsing verveineJ model and produce them. I imagine that somebody
> has to use this interface.
> I think that we should all think if we want to succeed or not.
> I mean yes I can do what I'm told (cyrille), or do my experience
> (jannik), or fix mondrian (alex) but
> if nobody spend 1 hour to try to analyse a Java project then we will
> have bugs.

I do use Moose, and Usman and Andre too.
But we use it to compute metrics, very little to browse source code.

and last time we used it was a month ago (ICSM deadline ...) and we used the version before changes to the meta-model, the one that worked.

since then we had significant changes to Famix (this is why Jannik asked for a 4.0 release) that left things in an unstable state.
Problem lies somewhere in underestimating the impact of the changes to Famix. It should probably have been considered a development version so that it is clearer what one was dealing with.

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Hi,

On 25 May 2011, at 09:08, Nicolas Anquetil wrote:

>
>> I reported the pyramid.
>> After there were in my flow so I closed them. Now I can take 10 min on
>> browsing verveineJ model and produce them. I imagine that somebody
>> has to use this interface.
>> I think that we should all think if we want to succeed or not.
>> I mean yes I can do what I'm told (cyrille), or do my experience
>> (jannik), or fix mondrian (alex) but
>> if nobody spend 1 hour to try to analyse a Java project then we will
>> have bugs.
>
> I do use Moose, and Usman and Andre too.
> But we use it to compute metrics, very little to browse source code.
>
> and last time we used it was a month ago (ICSM deadline ...) and we used the version before changes to the meta-model, the one that worked.
>
> since then we had significant changes to Famix (this is why Jannik asked for a 4.0 release) that left things in an unstable state.
> Problem lies somewhere in underestimating the impact of the changes to Famix. It should probably have been considered a development version so that it is clearer what one was dealing with.

The issue is like I mentioned before: The Cook API is broken and needs revision. The larger problem is that we do not have tests that capture the problems.

Cheers,
Doru

> nicolas
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"One cannot do more than one can do."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Stéphane Ducasse
We will fix that.
I will generate some bugs :)

Stef

On May 25, 2011, at 9:23 AM, Tudor Girba wrote:

> Hi,
>
> On 25 May 2011, at 09:08, Nicolas Anquetil wrote:
>
>>
>>> I reported the pyramid.
>>> After there were in my flow so I closed them. Now I can take 10 min on
>>> browsing verveineJ model and produce them. I imagine that somebody
>>> has to use this interface.
>>> I think that we should all think if we want to succeed or not.
>>> I mean yes I can do what I'm told (cyrille), or do my experience
>>> (jannik), or fix mondrian (alex) but
>>> if nobody spend 1 hour to try to analyse a Java project then we will
>>> have bugs.
>>
>> I do use Moose, and Usman and Andre too.
>> But we use it to compute metrics, very little to browse source code.
>>
>> and last time we used it was a month ago (ICSM deadline ...) and we used the version before changes to the meta-model, the one that worked.
>>
>> since then we had significant changes to Famix (this is why Jannik asked for a 4.0 release) that left things in an unstable state.
>> Problem lies somewhere in underestimating the impact of the changes to Famix. It should probably have been considered a development version so that it is clearer what one was dealing with.
>
> The issue is like I mentioned before: The Cook API is broken and needs revision. The larger problem is that we do not have tests that capture the problems.
>
> Cheers,
> Doru
>
>> nicolas
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "One cannot do more than one can do."
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
In the meantime, I will write some tests.

Doru


On 25 May 2011, at 09:50, Stéphane Ducasse wrote:

> We will fix that.
> I will generate some bugs :)
>
> Stef
>
> On May 25, 2011, at 9:23 AM, Tudor Girba wrote:
>
>> Hi,
>>
>> On 25 May 2011, at 09:08, Nicolas Anquetil wrote:
>>
>>>
>>>> I reported the pyramid.
>>>> After there were in my flow so I closed them. Now I can take 10 min on
>>>> browsing verveineJ model and produce them. I imagine that somebody
>>>> has to use this interface.
>>>> I think that we should all think if we want to succeed or not.
>>>> I mean yes I can do what I'm told (cyrille), or do my experience
>>>> (jannik), or fix mondrian (alex) but
>>>> if nobody spend 1 hour to try to analyse a Java project then we will
>>>> have bugs.
>>>
>>> I do use Moose, and Usman and Andre too.
>>> But we use it to compute metrics, very little to browse source code.
>>>
>>> and last time we used it was a month ago (ICSM deadline ...) and we used the version before changes to the meta-model, the one that worked.
>>>
>>> since then we had significant changes to Famix (this is why Jannik asked for a 4.0 release) that left things in an unstable state.
>>> Problem lies somewhere in underestimating the impact of the changes to Famix. It should probably have been considered a development version so that it is clearer what one was dealing with.
>>
>> The issue is like I mentioned before: The Cook API is broken and needs revision. The larger problem is that we do not have tests that capture the problems.
>>
>> Cheers,
>> Doru
>>
>>> nicolas
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> www.tudorgirba.com
>>
>> "One cannot do more than one can do."
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Every thing should have the right to be different."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Nicolas Anquetil
In reply to this post by Tudor Girba-2

> > since then we had significant changes to Famix (this is why Jannik
> > asked for a 4.0 release) that left things in an unstable state.
> > Problem lies somewhere in underestimating the impact of the changes
> > to Famix. It should probably have been considered a development
> > version so that it is clearer what one was dealing with.

> The issue is like I mentioned before: The Cook API is broken and needs
> revision. The larger problem is that we do not have tests that capture
> the problems.


Maybe we should consider retiring Moose Cook and migrating to Moose Chef?

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bringing the overview pyramid on verveineJ model -> DNU

Tudor Girba-2
Yes, this is the idea. Now we just have to do it :)

Doru



On May 30, 2011, at 9:55, Nicolas Anquetil <[hidden email]> wrote:

>
>>> since then we had significant changes to Famix (this is why Jannik
>>> asked for a 4.0 release) that left things in an unstable state.
>>> Problem lies somewhere in underestimating the impact of the changes
>>> to Famix. It should probably have been considered a development
>>> version so that it is clearer what one was dealing with.
>
>> The issue is like I mentioned before: The Cook API is broken and needs
>> revision. The larger problem is that we do not have tests that capture
>> the problems.
>
>
> Maybe we should consider retiring Moose Cook and migrating to Moose Chef?
>
> nicolas
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev