[ANN] Spaghetti Tracer (0.4)

PhiHo Hoang phiho.hoang at rogers.com
Sat Nov 2 11:52:04 UTC 2002


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)--
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SpaghettiTracer.log
Type: application/octet-stream
Size: 3047 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20021102/62ec9b0d/SpaghettiTracer.obj


More information about the Squeak-dev mailing list