[ANN] Spaghetti Tracer (0.4)

danielv at netvision.net.il danielv at netvision.net.il
Sat Nov 2 11:31:33 UTC 2002


Hi PhiHo.
It would appear that IdentitySet>>, doesn't exist in your image. 

Aha, I see, it's something I'm using that is actually an extension from
the RB...
Sorry about that, I just work with the RB all the time, it's the first
thing I load.

Well, it's ugly anyway, I'll change it.

Ok, 0.41 is up now, please try with that (I tested it on a fresh image
without the RB).

Daniel

PhiHo Hoang <phiho.hoang at rogers.com> wrote:
> This is a multi-part message in MIME format.
> 
> --Boundary_(ID_eeVtW8VBdd3tBL72HWg0XQ)
> Content-type: text/plain; charset=iso-8859-1
> Content-transfer-encoding: 7BIT
> 
> Daniel,
> 
> > Yes, the description now mentions that DVS is a requirement.
> 
>     My bad :-)
> 
>     I could install SpaghettiTracer and run the demos.
> 
>     1/- I got  'IdentitySet ,? " :
> 
>         For 'FFI' samples, at :
> 
>             'mma badStrongComponentsIn: mma classStrongComponents '
> 
>         And eToy at :
> 
>             MessageSet openMessageList:  mma
> cycleExampleForLargestPackageStrongComponent name: 'Methods/inheritance
> references that create one bad cycle (might be more)'
> 
>     Please find the log file attached.
> 
>     2/- Unknown selector 'pathBetween:and:in::' for CodeAnalyzer.
> 
>     Thanks for the tracer, Daniel.
> 
>     I will spend more time learning it.
> 
>     Hopefully we will also have LasagnaCutter (not from me ;-).
> 
>     Cheers,
> 
>     PhiHo.
> 
> 
> ----- Original Message -----
> From: <danielv at netvision.net.il>
> To: <squeak-dev at lists.squeakfoundation.org>
> Sent: Saturday, November 02, 2002 3:45 AM
> Subject: Re: [ANN] Spaghetti Tracer (0.4)
> 
> 
> > Yes, the description now mentions that DVS is a requirement.
> >
> > This is because the analysis operates on the DVS concept of a package -
> > by default, a group of system categories that share a prefix + the
> > method categories outside it begin with '*',thePrefix.
> >
> > Just load DVS and try again, please.
> >
> > Daniel Vainsencher
> >
> > PhiHo Hoang <phiho.hoang at rogers.com> wrote:
> > > This is a multi-part message in MIME format.
> > >
> > > --Boundary_(ID_rbOVtc8iS018uZwXiEqaGA)
> > > Content-type: text/plain; charset=iso-8859-1
> > > Content-transfer-encoding: 7BIT
> > >
> > > Daniel,
> > >
> > >     I got: 'MessageNotUnderstood: methodsFor:stamp:'
> > >
> > >     Please find attached the log file.
> > >
> > >     Cheers,
> > >
> > >     PhiHo.
> > >
> > >
> > > ----- Original Message -----
> > > From: <danielv at netvision.net.il>
> > > To: "squeak" <squeak-dev at lists.squeakfoundation.org>
> > > Sent: Friday, November 01, 2002 2:16 PM
> > > Subject: [ANN] Spaghetti Tracer (0.4)
> > >
> > >
> > > > Now on SqueakMap.
> > > >
> > > > This version has a new analysis for multiple modules. This means you
> can
> > > > now ask questions like "is Sunit hierarchially structured?" (yes) "is
> > > > Balloon3D?" (well, not quite) "No? why not?" (you'll get a list of
> > > > references that create a cyclic dependency between classes that are
> not
> > > > in the same system category).
> > > >
> > > > Load it and do -
> > > >
> > > > mma _ MultiModuleAnalyzer onPackageNamedStarting: 'Balloon3D'
> > > > mma isNonCyclic.
> > > > mma packageStrongComponents.
> > > > mma badStrongComponentsIn: mma packageStrongComponents.
> > > > MessageSet openMessageList:  mma
> > > > cycleExampleForLargestPackageStrongComponent name: 'Methods that
> create
> > > > one bad cycle'.
> > > >
> > > > More tutorial material is available on the SM package description,
> which
> > > > I've cleaned up and updated.
> > > >
> > > > Especially if you maintain a package that spans more than one
> category,
> > > > trying it out and let me know if it helps you find problems or find
> > > > bogus problems, so forth.
> > > >
> > > > Daniel Vainsencher
> > > >
> > > >
> > >
> > > --Boundary_(ID_rbOVtc8iS018uZwXiEqaGA)
> > > Content-type: application/octet-stream; name=SpaghettiTracer.log
> > > Content-transfer-encoding: quoted-printable
> > > Content-disposition: attachment; filename=SpaghettiTracer.log
> > >
> > > MessageNotUnderstood: methodsFor:stamp:=0D2 November 2002 3:06:15 =
> > > am=0D=0DVM: Win32 - MobVM - RFC version (Tracking 3.2.3)=0A=
> > > Oct 30 2002=0A=
> > > Compiler: gcc 2.95.3-6 (mingw special)=0DImage: Squeak3.2 [latest =
> > > update: #4956]=0D=0DUndefinedObject(Object)>>doesNotUnderstand:=0D =
> > > Receiver: nil=0D Arguments and temporary variables: =0D aMessage: a =
> > > Message with selector: #methodsFor:stamp: and arguments: =
> > > #('*Analys...etc...=0D Receiver's instance variables: =
> > > =0Dnil=0DUndefinedObject>>DoIt=0D Receiver: nil=0D Arguments and =
> > > temporary variables: =0D=0D Receiver's instance variables: =
> > > =0Dnil=0DCompiler>>evaluate:in:to:notifying:ifFail:=0D Receiver: a =
> > > Compiler=0D Arguments and temporary variables: =0D textOrStream: =
> > > 'PackageInfo methodsFor: ''*Analysis-Extensions'' stamp: ''dvf =
> > > 10...etc...=0D aContext: nil=0D receiver: nil=0D aRequestor: =
> > > nil=0D failBlock: [] in Compiler =
> > > class>>evaluate:for:notifying:logged:=0D methodNode: DoIt=0D ^ =
> > > PackageInfo methodsFor: '*Analysis-Extensions' stamp: 'dvf ...etc...=0D
> =
> > > method: a CompiledMethod (3267)=0D value: nil=0D Receiver's instance =
> > > variables: =0D sourceStream: a ReadStream=0D requestor: nil=0D =
> > > class: UndefinedObject=0D context: nil=0D=0DCompiler =
> > > class>>evaluate:for:notifying:logged:=0D Receiver: Compiler=0D Arguments
> =
> > > and temporary variables: =0D textOrString: 'PackageInfo methodsFor: =
> > > ''*Analysis-Extensions'' stamp: ''dvf 10...etc...=0D anObject: nil=0D =
> > > aController: nil=0D logFlag: false=0D val: nil=0D Receiver's =
> > > instance variables: =0D superclass: Object=0D methodDict: a =
> > > MethodDictionary(#compile:in:notifying:ifFail:->a CompiledMethod =
> > > ...etc...=0D format: 138=0D instanceVariables: #('sourceStream' =
> > > 'requestor' 'class' 'context')=0D organization: ('error handling' =
> > > interactive notify: notify:at:)=0D('public access...etc...=0D =
> > > subclasses: nil=0D name: #Compiler=0D classPool: a Dictionary()=0D =
> > > sharedPools: nil=0D environment: nil=0D category: nil=0D=0D--- The =
> > > rest of the stack ---=0DCompiler class>>evaluate:for:logged:=0DCompiler
> =
> > > class>>evaluate:logged:=0D[] in =
> > >
> StandardFileStream(PositionableStream)>>fileInAnnouncing:=0DBlockContext>=
> > > >on:do:=0D[] in =
> > >
> StandardFileStream(PositionableStream)>>fileInAnnouncing:=0DProgressIniti=
> > >
> ationException>>defaultAction=0DProgressInitiationException(Exception)>>s=
> > >
> ignal=0DProgressInitiationException>>display:at:from:to:during:=0DProgres=
> > > sInitiationException =
> > >
> class>>display:at:from:to:during:=0DString>>displayProgressAt:from:to:dur=
> > > ing:=0DStandardFileStream(PositionableStream)>>fileInAnnouncing:=0D[] in
> =
> > > ChangeSorter =
> > >
> class>>newChangesFromStream:named:=0DBlockContext>>ensure:=0DChangeSorter=
> > >  =
> > >
> class>>newChangesFromStream:named:=0DFileList>>fileIntoNewChangeSet=0DPlu=
> > > ggableButtonMorph>>performAction=0D[] in =
> > >
> PluggableButtonMorph>>mouseUp:=0DArray(SequenceableCollection)>>do:=0DPlu=
> > >
> ggableButtonMorph>>mouseUp:=0DPluggableButtonMorph(Morph)>>handleMouseUp:=
> > >
> =0DMouseButtonEvent>>sentTo:=0DPluggableButtonMorph(Morph)>>handleEvent:=0D=
> > > PluggableButtonMorph(Morph)>>handleFocusEvent:=0D[] in =
> > >
> HandMorph>>sendFocusEvent:to:clear:=0DPasteUpMorph>>becomeActiveDuring:=0D=
> > >
> HandMorph>>sendFocusEvent:to:clear:=0DHandMorph>>sendEvent:focus:clear:=0D=
> > >
> HandMorph>>sendMouseEvent:=0DHandMorph>>handleEvent:=0DHandMorph>>process=
> > > Events=0D[] in =
> > >
> WorldState>>doOneCycleNowFor:=0DArray(SequenceableCollection)>>do:=0DWorl=
> > >
> dState>>handsDo:=0DWorldState>>doOneCycleNowFor:=0DWorldState>>doOneCycle=
> > > For:=0DPasteUpMorph>>doOneCycle=0D[] in Project =
> > > class>>spawnNewProcess=0D[] in BlockContext>>newProcess=0D=
> > >
> > > --Boundary_(ID_rbOVtc8iS018uZwXiEqaGA)--
> >
> 
> --Boundary_(ID_eeVtW8VBdd3tBL72HWg0XQ)
> Content-type: application/octet-stream; name=SpaghettiTracer.log
> Content-transfer-encoding: quoted-printable
> Content-disposition: attachment; filename=SpaghettiTracer.log
> 
> IdentitySet ,?=0D2 November 2002 6:20:28 am=0D=0DVM: Win32 - MobVM - RFC =
> version (Tracking 3.2.3)=0A=
> Oct 30 2002=0A=
> Compiler: gcc 2.95.3-6 (mingw special)=0DImage: Squeak3.2[VI4] [latest =
> update: #4956]=0D=0D214 MessageNotUnderstood(Exception)>>signal=0D	=
> Receiver: IdentitySet ,?=0D	Arguments and temporary variables: =0D=0D	=
> Receiver's instance variables: =0D		messageText: 	nil=0D		=
> initialContext: 	214 MessageNotUnderstood(Exception)>>signal=0D		=
> handlerContext: 	214 MessageNotUnderstood(Exception)>>signal=0D		=
> message: 	, an OrderedCollection(ExternalAddress ExternalData =
> ExternalFunction E...etc...=0D		receiver: 	an IdentitySet()=0D=0D211 =
> IdentitySet(Object)>>doesNotUnderstand: ,=0D	Receiver: an =
> IdentitySet()=0D	Arguments and temporary variables: =0D		aMessage: 	, an =
> OrderedCollection(ExternalAddress ExternalData ExternalFunction =
> ...etc...=0D	Receiver's instance variables: =0D		tally: 	0=0D		array: 	=
> #(nil nil nil nil nil nil)=0D=0D207 [] from 177 =
> MultiModuleAnalyzer>>classGraph=0D	Receiver: a BlockClosure (3)=0D	=
> Arguments and temporary variables: =0D		package: 	FFI-Kernel=0D	=
> Receiver's instance variables: =0D		method: 	a CompiledMethod2 =
> (3397)=0D=0D202 [] from 183 Array(Collection)>>gather:=0D	Receiver: a =
> BlockClosure (3935)=0D	Arguments and temporary variables: =0D		ea: 	=
> FFI-Kernel=0D	Receiver's instance variables: =0D		method: 	a =
> CompiledMethod2 (1449)=0D=0D--- The rest of the stack ---=0D196 =
> Array(SequenceableCollection)>>do:=0D192 [] from 183 =
> Array(Collection)>>gather:=0D187 Array class(SequenceableCollection =
> class)>>streamContents:=0D183 Array(Collection)>>gather:=0D177 =
> MultiModuleAnalyzer>>classGraph=0D173 =
> MultiModuleAnalyzer>>classStrongComponents=0D169 []=0D166 =
> Compiler>>evaluate:in:to:notifying:ifFail:=0D158 [] from 148 =
> TextMorphEditor(ParagraphEditor)>>evaluateSelection=0D155 =
> BlockClosure>>on:do:=0D148 =
> TextMorphEditor(ParagraphEditor)>>evaluateSelection=0D145 =
> TextMorphEditor(ParagraphEditor)>>printIt=0D142 [] from 135 =
> TextMorphEditor(ParagraphEditor)>>printIt:=0D139 =
> TextMorphEditor(Controller)>>terminateAndInitializeAround:=0D135 =
> TextMorphEditor(ParagraphEditor)>>printIt:=0D130 =
> TextMorphEditor(ParagraphEditor)>>dispatchOnCharacter:with:=0D123 =
> TextMorphEditor(ParagraphEditor)>>readKeyboard=0D120 =
> TextMorphEditor>>readKeyboard=0D117 [] from 100 =
> TextMorphForEditView(TextMorph)>>keyStroke:=0D111 =
> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:=0D106 =
> TextMorphForEditView>>handleInteraction:fromEvent:=0D100 =
> TextMorphForEditView(TextMorph)>>keyStroke:=0D95 =
> TextMorphForEditView>>keyStroke:=0D90 =
> TextMorphForEditView(TextMorph)>>handleKeystroke:=0D86 =
> KeyboardEvent>>sentTo:=0D82 =
> TextMorphForEditView(Morph)>>handleEvent:=0D78 =
> TextMorphForEditView(Morph)>>handleFocusEvent:=0D74 [] from 62 =
> HandMorph>>sendFocusEvent:to:clear:=0D68 =
> PasteUpMorph>>becomeActiveDuring:=0D62 =
> HandMorph>>sendFocusEvent:to:clear:=0D56 =
> HandMorph>>sendEvent:focus:clear:=0D50 =
> HandMorph>>sendKeyboardEvent:=0D44 HandMorph>>handleEvent:=0D36 =
> HandMorph>>processEvents=0D33 [] from 18 =
> WorldState>>doOneCycleNowFor:=0D27 =
> Array(SequenceableCollection)>>do:=0D23 WorldState>>handsDo:=0D18 =
> WorldState>>doOneCycleNowFor:=0D14 WorldState>>doOneCycleFor:=0D10 =
> PasteUpMorph>>doOneCycle=0D7 []=0D4 []=0D=
> 
> --Boundary_(ID_eeVtW8VBdd3tBL72HWg0XQ)--



More information about the Squeak-dev mailing list