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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |