Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 3 participants
- 144615 messages
Re: [Pharo-project] WikiServer for the iPhone goes Live
by John M McIntosh
Further to this I have a number of coupons (30) that can be redeemed
for a free 4 week trial in
case some people would like to write a review for the Store. If you
would like to write a review
please email me, not the list, and we'll see about getting you the
magic number.
On 21-May-09, at 9:13 AM, John M McIntosh wrote:
> Well after weeks of delay Apple silently put WikiServer up for sale
> on the App Store yesterday.
>
> http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312622071…
>
> No doubt I will break out the Champagne tonight.
>
> http://www.mobilewikiserver.com
> --
--
=
=
=
========================================================================
John M. McIntosh <johnmci(a)smalltalkconsulting.com> Twitter:
squeaker68882
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
=
=
=
========================================================================
May 22, 2009
Re: [Pharo-project] invalid utf8 input detected
by Hernan Wilkinson
yes please!
On Fri, May 22, 2009 at 7:01 PM, Tudor Girba <girba(a)iam.unibe.ch> wrote:
> Hi,
>
> Could we not solve this for the couple of offending methods for the
> moment? Having a problem in Object>>doesNotUnderstand: makes the whole
> debugging a pain because I can actually not debug such a case.
>
> Cheers,
> Doru
>
>
> On 19 May 2009, at 22:03, Nicolas Cellier wrote:
>
> > I opened http://code.google.com/p/pharo/issues/detail?id=830
> >
> > I think other UTF-8 issues are different:
> > Two for FileBrowser :
> > http://code.google.com/p/pharo/issues/detail?id=370
> > http://code.google.com/p/pharo/issues/detail?id=513
> > One about VM crash :
> > http://code.google.com/p/pharo/issues/detail?id=744
> >
> > Nicolas
> >
> > 2009/5/19 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >> thanks for making progress on this front.
> >>
> >> On May 19, 2009, at 6:40 PM, Nicolas Cellier wrote:
> >>
> >>>> From what I see in a 10304, all these methods had a non ASCII
> >>> character in comment:
> >>>
> >>> {Object>>#doesNotUnderstand:.
> >>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
> >>> Utilities class>>#changeStampPerSe.
> >>> Utilities class>>#methodsWithInitials:} collect: [:e | (e
> >>> getSourceFromFile select: [:s | s charCode > 127]) asArray collect:
> >>> [:c | c charCode]]
> >>> #(#(160 160) #(172 143 172 143) #(183) #(246))
> >>> That is:
> >>>
> >>> an Array(a Text for ' ' a Text for '¬â¬â' a Text for '·' a
> >>> Text for 'ö')
> >>> First are non breaking space.
> >>> Last but ones are not rendered same in Squeak.
> >>>
> >>> These four methods are changed in:
> >>> - Kernel-stephane_ducasse.renggli.319.mcz
> >>> - System-Support-stephane_ducasse.20.mcz
> >>> If I merge 10305 manually, I get some decompiled code in the merge
> >>> window.
> >>> So there might be a problem already either in Monticello or in
> >>> the .mcz.
> >>> After the merge, there is decomipled code in the changes and no
> >>> error
> >>> when executing above code.
> >>>
> >>> If I load instead of merging, then I also get the decompiled code in
> >>> the change log, so I can't reproduce completely the faulty behavior
> >>> (having an invalid utf-8 notifier), maybe because the process is no
> >>> the same when there are conflicts...
> >>>
> >>> If I extract .mcz contents, I can read contents from FileBrowser.
> >>> But
> >>> it does not use an UTF-8 encoding...
> >>> I can't say if the encoding is macRoman or ISO8859L1 or CP1252 or
> >>> what, but what I can say is that the source.st is not UTF-8 encoded.
> >>>
> >>> So without searching further I guess here lies the problems:
> >>> transfer
> >>> of raw bytes from non UTF-8 .mcz/source.st to the UTF-8 .changes
> >>> change-log...
> >>>
> >>> Every time we'll modify a method with a Character code > 127, we
> >>> will
> >>> likely create an invalid UTF-8 bug or get some decompiled code, or
> >>> corrupt source code in extreme case...
> >>>
> >>> Could the Monticello / UTF-8 experts confirm my guess ?
> >>>
> >>> Nicolas
> >>>
> >>> 2009/5/17 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
> >>>> OK,
> >>>>
> >>>> {Object>>#doesNotUnderstand:.
> >>>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
> >>>> Utilities class>>#changeStampPerSe.
> >>>> Utilities class>>#methodsWithInitials:} collect: [:e | e
> >>>> getSourceFromFile].
> >>>>
> >>>> does not fail for me, BUT all these sources look like
> >>>> decompileString.
> >>>> I guess this is dating from the condenseChanges that occured in
> >>>> #update10298
> >>>> Change log prior to this update should have the problem.
> >>>>
> >>>> Nicolas
> >>>>
> >>>> 2009/5/17 Tudor Girba <girba(a)iam.unibe.ch>:
> >>>>> Hi,
> >>>>>
> >>>>> I ran the snippet you sent on both 304cl and 306cl and I get the
> >>>>> following list:
> >>>>>
> >>>>> Object->#doesNotUnderstand:
> >>>>> SystemNavigation->#browseMethodsWhoseNamesContain:
> >>>>> Utilities class->#changeStampPerSe
> >>>>> Utilities class->#methodsWithInitials:
> >>>>>
> >>>>> Indeed, most of the annoyances are due to the
> >>>>> Object>>doesNotUnderstand: because when I get a DNU I am stuck
> >>>>> (and I
> >>>>> feel like in Java :)).
> >>>>>
> >>>>> I am not sure I understand if there is a fix to the problem.
> >>>>>
> >>>>> Cheers,
> >>>>> Doru
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 17 May 2009, at 12:06, Nicolas Cellier wrote:
> >>>>>
> >>>>>> There's something weird... If you hit var (UndefinedObject)
> >>>>>> doesNotUnderstand: #value: that means there were a problem the
> >>>>>> first
> >>>>>> time.
> >>>>>>
> >>>>>> Unfortunately, due to bug in MethodContext tempNames, we don't
> >>>>>> know
> >>>>>> the class and selector guilty.
> >>>>>> From the set of selectors I can see this is Object.
> >>>>>> From the source file position, I cannot say anything because I do
> >>>>>> not
> >>>>>> have same change log history (sorry, own image).
> >>>>>>
> >>>>>> You could try
> >>>>>> (SourceFiles at: 2) readOnlyCopy position: 10007336; nextChunk
> >>>>>>
> >>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >>>>>>> sorry for not checking either.
> >>>>>>> When I run this code I indeed do not have a problem on 10306cl
> >>>>>>>
> >>>>>>> stef
> >>>>>>>
> >>>>>>> On May 17, 2009, at 11:36 AM, Nicolas Cellier wrote:
> >>>>>>>
> >>>>>>>> Sure, a key stroke error, it's bar value:, not var value:,
> >>>>>>>> This @!* workspace takes it as global without a warning....
> >>>>>>>>
> >>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >>>>>>>>> Nicolas
> >>>>>>>>>
> >>>>>>>>> when I run your script on the license looking for image
> >>>>>>>>> I got using 10306cl
> >>>>>>>>>
> >>>>>>>>> I get the following error:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug
> >>>>>>>>> 2006' [latest
> >>>>>>>>> update: #6747] Squeak VM 4.1.1b2
> >>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
> >>>>>>>>>
> >>>>>>>>> SecurityManager state:
> >>>>>>>>> Restricted: false
> >>>>>>>>> FileAccess: true
> >>>>>>>>> SocketAccess: true
> >>>>>>>>> Working Dir /Data/squeak4.0-relicenseTools/history
> >>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
> >>>>>>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/
> >>>>>>>>> Internet/My
> >>>>>>>>> Squeak
> >>>>>>>>>
> >>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
> >>>>>>>>> Receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> anArray: an Array('Error: Invalid utf8 input
> >>>>>>>>> detected' an
> >>>>>>>>> UTF8TextConverter)
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> startpc: 183
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> [] in BlockClosure>>ifError:
> >>>>>>>>> Receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> errorHandlerBlock: Error: Invalid utf8 input
> >>>>>>>>> detected
> >>>>>>>>> ex: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> startpc: 171
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
> >>>>>>>>> Receiver: [closure] in BlockClosure>>ifError:
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> anArray: an Array(Error: Invalid utf8 input
> >>>>>>>>> detected)
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: BlockClosure>>ifError:
> >>>>>>>>> startpc: 40
> >>>>>>>>> numArgs: 1
> >>>>>>>>>
> >>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> Receiver: BlockClosure>>on:do:
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> sender: BlockClosure>>ifError:
> >>>>>>>>> pc: 17
> >>>>>>>>> stackp: 3
> >>>>>>>>> method: a CompiledMethod (2306)
> >>>>>>>>> closureOrNil: nil
> >>>>>>>>> receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> Receiver: [closure] in
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> returnValue: nil
> >>>>>>>>> b: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext:
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> startpc: 90
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> Receiver: BlockClosure>>on:do:
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> exception: Error: Invalid utf8 input detected
> >>>>>>>>> val: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> sender: BlockClosure>>ifError:
> >>>>>>>>> pc: 17
> >>>>>>>>> stackp: 3
> >>>>>>>>> method: a CompiledMethod (2306)
> >>>>>>>>> closureOrNil: nil
> >>>>>>>>> receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>>
> >>>>>>>>> Error(Exception)>>signal
> >>>>>>>>> Receiver: Error: Invalid utf8 input detected
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> messageText: 'Invalid utf8 input detected'
> >>>>>>>>> tag: nil
> >>>>>>>>> signalContext: Error(Exception)>>signal
> >>>>>>>>> handlerContext: BlockClosure>>on:do:
> >>>>>>>>> outerContext: nil
> >>>>>>>>>
> >>>>>>>>> Error(Exception)>>signal:
> >>>>>>>>> Receiver: Error: Invalid utf8 input detected
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> signalerText: 'Invalid utf8 input detected'
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> messageText: 'Invalid utf8 input detected'
> >>>>>>>>> tag: nil
> >>>>>>>>> signalContext: Error(Exception)>>signal
> >>>>>>>>> handlerContext: BlockClosure>>on:do:
> >>>>>>>>> outerContext: nil
> >>>>>>>>>
> >>>>>>>>> UTF8TextConverter(Object)>>error:
> >>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aString: 'Invalid utf8 input detected'
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> an UTF8TextConverter
> >>>>>>>>>
> >>>>>>>>> UTF8TextConverter>>errorMalformedInput
> >>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> an UTF8TextConverter
> >>>>>>>>>
> >>>>>>>>> UTF8TextConverter>>nextFromStream:
> >>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aStream: MultiByteFileStream: '/Data/
> >>>>>>>>> squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1C...etc...
> >>>>>>>>> character1: $
> >>>>>>>>> value1: 160
> >>>>>>>>> character2: Character tab
> >>>>>>>>> value2: 9
> >>>>>>>>> unicode: nil
> >>>>>>>>> character3: Character tab
> >>>>>>>>> value3: 9
> >>>>>>>>> character4: nil
> >>>>>>>>> value4: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> an UTF8TextConverter
> >>>>>>>>>
> >>>>>>>>> MultiByteFileStream>>next
> >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> char: nil
> >>>>>>>>> secondChar: nil
> >>>>>>>>> state: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
> >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> terminator: $!
> >>>>>>>>> out: a WriteStream 'doesNotUnderstand: aMessage
> >>>>>>>>> "Handle the fact that there ...etc...
> >>>>>>>>> ch: Character cr
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
> >>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> string: nil
> >>>>>>>>> runsRaw: nil
> >>>>>>>>> strm: nil
> >>>>>>>>> runs: nil
> >>>>>>>>> peek: nil
> >>>>>>>>> pos: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> [] in RemoteString>>text
> >>>>>>>>> Receiver: a RemoteString
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> theFile: MultiByteFileStream: '/Data/
> >>>>>>>>> squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1C...etc...
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> sourceFileNumber: 2
> >>>>>>>>> filePositionHi: 10007336
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> Receiver: [closure] in RemoteString>>text
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in RemoteString>>text
> >>>>>>>>> returnValue: nil
> >>>>>>>>> b: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: RemoteString>>text
> >>>>>>>>> startpc: 72
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> RemoteString>>text
> >>>>>>>>> Receiver: a RemoteString
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> theFile: MultiByteFileStream: '/Data/
> >>>>>>>>> squeak4.0-
> >>>>>>>>> relicenseTools/
> >>>>>>>>> history/Pharo0.1C...etc...
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> sourceFileNumber: 2
> >>>>>>>>> filePositionHi: 10007336
> >>>>>>>>>
> >>>>>>>>> CompiledMethod>>getSourceFromFile
> >>>>>>>>> Receiver: a CompiledMethod (838)
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> position: 10007336
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> a CompiledMethod (838)
> >>>>>>>>>
> >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>on:do:
> >>>>>>>>> Receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> exception: Error
> >>>>>>>>> handlerAction: [closure] in BlockClosure>>ifError:
> >>>>>>>>> handlerActive: false
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> startpc: 171
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>ifError:
> >>>>>>>>> Receiver: [closure] in [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> errorHandlerBlock: [closure] in [] in [] in []
> >>>>>>>>> in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext: [] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> startpc: 171
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> IdentitySet(Set)>>do:
> >>>>>>>>> Receiver: an IdentitySet(#name #inheritsFromAnyIn: #asOop
> >>>>>>>>> #isWebBrowser #storeOnStream: #wantsDroppe...etc...
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in [] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> index: 394
> >>>>>>>>> each: #doesNotUnderstand:
> >>>>>>>>> indexLimiT: 498
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> tally: 373
> >>>>>>>>> array: #(nil nil #name nil #inheritsFromAnyIn:
> >>>>>>>>> #asOop nil nil
> >>>>>>>>> #isWebBrowser nil...etc...
> >>>>>>>>>
> >>>>>>>>> [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> Receiver: ProtoObject
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: Object
> >>>>>>>>> cl: [closure] in [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> superclass: nil
> >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
> >>>>>>>>> CompiledMethod (602)
> >>>>>>>>> #become:->a Compil...etc...
> >>>>>>>>> format: 2
> >>>>>>>>> instanceVariables: nil
> >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
> >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
> >>>>>>>>> subclasses: {Object . ObjectOut .
> >>>>>>>>> ImageSegmentRootStub .
> >>>>>>>>> MessageCatcher . TestC...etc...
> >>>>>>>>> name: #ProtoObject
> >>>>>>>>> classPool: nil
> >>>>>>>>> sharedPools: nil
> >>>>>>>>> environment: nil
> >>>>>>>>> category: #'Kernel-Objects'
> >>>>>>>>> traitComposition: nil
> >>>>>>>>> localSelectors: nil
> >>>>>>>>>
> >>>>>>>>> Array(SequenceableCollection)>>do:
> >>>>>>>>> Receiver: {Object . ObjectOut . ImageSegmentRootStub .
> >>>>>>>>> MessageCatcher . TestCoverage}
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in ProtoObject
> >>>>>>>>> class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> index: 1
> >>>>>>>>> indexLimiT: 5
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher .
> >>>>>>>>> TestCoverage}
> >>>>>>>>>
> >>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
> >>>>>>>>> Receiver: ProtoObject
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in ProtoObject
> >>>>>>>>> class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> superclass: nil
> >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
> >>>>>>>>> CompiledMethod (602)
> >>>>>>>>> #become:->a Compil...etc...
> >>>>>>>>> format: 2
> >>>>>>>>> instanceVariables: nil
> >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
> >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
> >>>>>>>>> subclasses: {Object . ObjectOut .
> >>>>>>>>> ImageSegmentRootStub .
> >>>>>>>>> MessageCatcher . TestC...etc...
> >>>>>>>>> name: #ProtoObject
> >>>>>>>>> classPool: nil
> >>>>>>>>> sharedPools: nil
> >>>>>>>>> environment: nil
> >>>>>>>>> category: #'Kernel-Objects'
> >>>>>>>>> traitComposition: nil
> >>>>>>>>> localSelectors: nil
> >>>>>>>>>
> >>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> Receiver: ProtoObject
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> superclass: nil
> >>>>>>>>> methodDict: a MethodDictionary(#'=='->a
> >>>>>>>>> CompiledMethod (602)
> >>>>>>>>> #become:->a Compil...etc...
> >>>>>>>>> format: 2
> >>>>>>>>> instanceVariables: nil
> >>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
> >>>>>>>>> tryNamedPrimitive: tryNamed...etc...
> >>>>>>>>> subclasses: {Object . ObjectOut .
> >>>>>>>>> ImageSegmentRootStub .
> >>>>>>>>> MessageCatcher . TestC...etc...
> >>>>>>>>> name: #ProtoObject
> >>>>>>>>> classPool: nil
> >>>>>>>>> sharedPools: nil
> >>>>>>>>> environment: nil
> >>>>>>>>> category: #'Kernel-Objects'
> >>>>>>>>> traitComposition: nil
> >>>>>>>>> localSelectors: nil
> >>>>>>>>>
> >>>>>>>>> SystemNavigation>>allBehaviorsDo:
> >>>>>>>>> Receiver: a SystemNavigation
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in [] in
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> browserClass: nil
> >>>>>>>>> hierarchyBrowserClass: nil
> >>>>>>>>>
> >>>>>>>>> [] in UndefinedObject>>DoIt
> >>>>>>>>> Receiver: nil
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> <<error during printing>
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> nil
> >>>>>>>>>
> >>>>>>>>> [] in ProgressInitiationException>>defaultAction
> >>>>>>>>> Receiver: ProgressInitiationException
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> progress: [closure] in
> >>>>>>>>> SystemProgressMorph>>label:min:max:
> >>>>>>>>> result: #(nil)
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> messageText: nil
> >>>>>>>>> tag: nil
> >>>>>>>>> signalContext:
> >>>>>>>>> ProgressInitiationException(Exception)>>signal
> >>>>>>>>> handlerContext: nil
> >>>>>>>>> outerContext: nil
> >>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
> >>>>>>>>> maxVal: 3874
> >>>>>>>>> minVal: 0
> >>>>>>>>> aPoint: 840@306
> >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
> >>>>>>>>>
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> Receiver: [closure] in
> >>>>>>>>> ProgressInitiationException>>defaultAction
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> aBlock: [closure] in
> >>>>>>>>> ProgressInitiationException>>defaultAction
> >>>>>>>>> returnValue: nil
> >>>>>>>>> b: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> outerContext:
> >>>>>>>>> ProgressInitiationException>>defaultAction
> >>>>>>>>> startpc: 49
> >>>>>>>>> numArgs: 0
> >>>>>>>>>
> >>>>>>>>> ProgressInitiationException>>defaultAction
> >>>>>>>>> Receiver: ProgressInitiationException
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> progress: [closure] in
> >>>>>>>>> SystemProgressMorph>>label:min:max:
> >>>>>>>>> result: #(nil)
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> messageText: nil
> >>>>>>>>> tag: nil
> >>>>>>>>> signalContext:
> >>>>>>>>> ProgressInitiationException(Exception)>>signal
> >>>>>>>>> handlerContext: nil
> >>>>>>>>> outerContext: nil
> >>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
> >>>>>>>>> maxVal: 3874
> >>>>>>>>> minVal: 0
> >>>>>>>>> aPoint: 840@306
> >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
> >>>>>>>>>
> >>>>>>>>> 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: a CompiledMethod (2306)
> >>>>>>>>> closureOrNil: nil
> >>>>>>>>> receiver: [closure] in
> >>>>>>>>> PasteUpMorph>>becomeActiveDuring:
> >>>>>>>>>
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> Receiver: BlockClosure>>on:do:
> >>>>>>>>> Arguments and temporary variables:
> >>>>>>>>> exception: ProgressInitiationException
> >>>>>>>>> val: nil
> >>>>>>>>> Receiver's instance variables:
> >>>>>>>>> sender:
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> >>>>>>>>> pc: 17
> >>>>>>>>> stackp: 3
> >>>>>>>>> method: a CompiledMethod (2306)
> >>>>>>>>> closureOrNil: nil
> >>>>>>>>> receiver: [closure] in
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> >>>>>>>>>
> >>>>>>>>> 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: [closure] in UndefinedObject>>DoIt
> >>>>>>>>> maxVal: 3874
> >>>>>>>>> minVal: 0
> >>>>>>>>> aPoint: 840@306
> >>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --- The full stack ---
> >>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
> >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
> >>>>>>>>> [] in BlockClosure>>ifError:
> >>>>>>>>> BlockClosure>>valueWithPossibleArgs:
> >>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> Error(Exception)>>signal
> >>>>>>>>> Error(Exception)>>signal:
> >>>>>>>>> UTF8TextConverter(Object)>>error:
> >>>>>>>>> UTF8TextConverter>>errorMalformedInput
> >>>>>>>>> UTF8TextConverter>>nextFromStream:
> >>>>>>>>> MultiByteFileStream>>next
> >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
> >>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
> >>>>>>>>> [] in RemoteString>>text
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> RemoteString>>text
> >>>>>>>>> CompiledMethod>>getSourceFromFile
> >>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> BlockClosure>>on:do:
> >>>>>>>>> BlockClosure>>ifError:
> >>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> IdentitySet(Set)>>do:
> >>>>>>>>> [] in [] in UndefinedObject>>DoIt
> >>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> Array(SequenceableCollection)>>do:
> >>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
> >>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
> >>>>>>>>> SystemNavigation>>allBehaviorsDo:
> >>>>>>>>> [] in UndefinedObject>>DoIt
> >>>>>>>>> [] in ProgressInitiationException>>defaultAction
> >>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>> ProgressInitiationException>>defaultAction
> >>>>>>>>> UndefinedObject>>handleSignal:
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> MethodContext(ContextPart)>>handleSignal:
> >>>>>>>>> ProgressInitiationException(Exception)>>signal
> >>>>>>>>> - - - - - - - - - - - - - - -
> >>>>>>>>> - - - - - - - - - - - - - - - - - -
> >>>>>>>>> ProgressInitiationException>>display:at:from:to:during:
> >>>>>>>>> ProgressInitiationException class>>display:at:from:to:during:
> >>>>>>>>> ByteString(String)>>displayProgressAt:from:to:during:
> >>>>>>>>> UndefinedObject>>DoIt
> >>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> >>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
> >>>>>>>>> BlockClosure>>on:do:
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt
> >>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>doIt:
> >>>>>>>>> TextMorphEditor
> >>>>>>>>> (ParagraphEditor)>>terminateAndInitializeAround:
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt:
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
> >>>>>>>>> TextMorphEditor>>dispatchOnKeyEvent:with:
> >>>>>>>>> TextMorphEditor(ParagraphEditor)>>keystroke:
> >>>>>>>>> TextMorphEditor>>keystroke:
> >>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
> >>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:
> >>>>>>>>> TextMorphForEditView>>handleInteraction:
> >>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke:
> >>>>>>>>> TextMorphForEditView>>keyStroke:
> >>>>>>>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
> >>>>>>>>> KeyboardEvent>>sentTo:
> >>>>>>>>> TextMorphForEditView(Morph)>>handleEvent:
> >>>>>>>>> TextMorphForEditView(Morph)>>handleFocusEvent:
> >>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
> >>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
> >>>>>>>>> BlockClosure>>on:do:
> >>>>>>>>> PasteUpMorph>>becomeActiveDuring:
> >>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
> >>>>>>>>> HandMorph>>sendEvent:focus:clear:
> >>>>>>>>> HandMorph>>sendKeyboardEvent:
> >>>>>>>>> HandMorph>>handleEvent:
> >>>>>>>>> HandMorph>>processEvents
> >>>>>>>>> [] in WorldState>>doOneCycleNowFor:
> >>>>>>>>> Array(SequenceableCollection)>>do:
> >>>>>>>>> WorldState>>handsDo:
> >>>>>>>>> WorldState>>doOneCycleNowFor:
> >>>>>>>>> WorldState>>doOneCycleFor:
> >>>>>>>>> PasteUpMorph>>doOneCycle
> >>>>>>>>> [] in Project class>>spawnNewProcess
> >>>>>>>>> [] in BlockClosure>>newProcess
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On May 17, 2009, at 11:13 AM, Nicolas Cellier wrote:
> >>>>>>>>>
> >>>>>>>>>> One solution would be to use getSource rather than
> >>>>>>>>>> getSourceFromFile.
> >>>>>>>>>> However, with following code I detected no problem in my
> >>>>>>>>>> pharo-
> >>>>>>>>>> core
> >>>>>>>>>> copy (10281 updated to 10306)
> >>>>>>>>>>
> >>>>>>>>>> | problems total |
> >>>>>>>>>> problems := OrderedCollection new.
> >>>>>>>>>> total := 0.
> >>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl | total :=
> >>>>>>>>>> total +
> >>>>>>>>>> 1].
> >>>>>>>>>> 'Searching UTF-8 Problems...'
> >>>>>>>>>> displayProgressAt: Sensor cursorPoint
> >>>>>>>>>> from: 0 to: total
> >>>>>>>>>> during:
> >>>>>>>>>> [:bar | | count |
> >>>>>>>>>> count := 0.
> >>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl |
> >>>>>>>>>> bar value: (count := count + 1).
> >>>>>>>>>> cl selectors do: [:sel |
> >>>>>>>>>> [(cl compiledMethodAt: sel)
> >>>>>>>>>> getSourceFromFile] ifError: [
> >>>>>>>>>> var value: 'last problem
> >>>>>>>>>> found ' , cl name , '>>#' , sel.
> >>>>>>>>>> problems add: cl->sel]]]].
> >>>>>>>>>> ^problems
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >>>>>>>>>>> yes same here.
> >>>>>>>>>>>
> >>>>>>>>>>> On May 17, 2009, at 2:10 AM, Tudor Girba wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Hi,
> >>>>>>>>>>>>
> >>>>>>>>>>>> Recently I encounter a strange error:
> >>>>>>>>>>>> - I sometimes get a debugger due to some problems in my
> >>>>>>>>>>>> code
> >>>>>>>>>>>> - when I try to investigate the trace, I get another
> >>>>>>>>>>>> debugger
> >>>>>>>>>>>> saying
> >>>>>>>>>>>> that "Invalid utf8 input detected'"
> >>>>>>>>>>>>
> >>>>>>>>>>>> This second debugger I can investigate, the previous not.
> >>>>>>>>>>>> It
> >>>>>>>>>>>> looks
> >>>>>>>>>>>> like something got messed up with the text conversion of
> >>>>>>>>>>>> the
> >>>>>>>>>>>> sources.
> >>>>>>>>>>>>
> >>>>>>>>>>>> I am working on 10306 using the 4.1.1b2 VM on Mac. The code
> >>>>>>>>>>>> I am
> >>>>>>>>>>>> working on is loaded from squeaksource (Moose, Glamour,
> >>>>>>>>>>>> Mondrian).
> >>>>>>>>>>>>
> >>>>>>>>>>>> Anyone can confirm this problem?
> >>>>>>>>>>>>
> >>>>>>>>>>>> Cheers,
> >>>>>>>>>>>> Doru
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> ----ERROR REPORT----
> >>>>>>>>>>>>
> >>>>>>>>>>>> '17 May 2009 2:05:50 am
> >>>>>>>>>>>>
> >>>>>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of ''28 Aug
> >>>>>>>>>>>> 2006'' [latest
> >>>>>>>>>>>> update: #6747] Squeak VM 4.1.1b2
> >>>>>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
> >>>>>>>>>>>>
> >>>>>>>>>>>> SecurityManager state:
> >>>>>>>>>>>> Restricted: false
> >>>>>>>>>>>> FileAccess: true
> >>>>>>>>>>>> SocketAccess: true
> >>>>>>>>>>>> Working Dir /Users/girba/Work/Code/squeakingmoose
> >>>>>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
> >>>>>>>>>>>> Untrusted Dir /Users/girba/Library/Preferences/Squeak/
> >>>>>>>>>>>> Internet/
> >>>>>>>>>>>> My
> >>>>>>>>>>>> Squeak
> >>>>>>>>>>>>
> >>>>>>>>>>>> UTF8TextConverter(Object)>>error:
> >>>>>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aString: ''Invalid utf8 input detected''
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> an UTF8TextConverter
> >>>>>>>>>>>>
> >>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
> >>>>>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> an UTF8TextConverter
> >>>>>>>>>>>>
> >>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
> >>>>>>>>>>>> Receiver: an UTF8TextConverter
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aStream: MultiByteFileStream: ''/Users/girba/
> >>>>>>>>>>>> Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.chan...etc...
> >>>>>>>>>>>> character1: $
> >>>>>>>>>>>> value1: 160
> >>>>>>>>>>>> character2: Character tab
> >>>>>>>>>>>> value2: 9
> >>>>>>>>>>>> unicode: nil
> >>>>>>>>>>>> character3: Character tab
> >>>>>>>>>>>> value3: 9
> >>>>>>>>>>>> character4: nil
> >>>>>>>>>>>> value4: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> an UTF8TextConverter
> >>>>>>>>>>>>
> >>>>>>>>>>>> MultiByteFileStream>>next
> >>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.changes''
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> char: nil
> >>>>>>>>>>>> secondChar: nil
> >>>>>>>>>>>> state: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
> >>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.changes''
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> terminator: $!
> >>>>>>>>>>>> out: a WriteStream ''doesNotUnderstand: aMessage
> >>>>>>>>>>>> "Handle the fact that there ...etc...
> >>>>>>>>>>>> ch: Character cr
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
> >>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.changes''
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> string: nil
> >>>>>>>>>>>> runsRaw: nil
> >>>>>>>>>>>> strm: nil
> >>>>>>>>>>>> runs: nil
> >>>>>>>>>>>> peek: nil
> >>>>>>>>>>>> pos: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in RemoteString>>text
> >>>>>>>>>>>> Receiver: a RemoteString
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
> >>>>>>>>>>>> Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.chan...etc...
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> sourceFileNumber: 2
> >>>>>>>>>>>> filePositionHi: 10007336
> >>>>>>>>>>>>
> >>>>>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>>>>> Receiver: [closure] in RemoteString>>text
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: [closure] in RemoteString>>text
> >>>>>>>>>>>> returnValue: nil
> >>>>>>>>>>>> b: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> outerContext: RemoteString>>text
> >>>>>>>>>>>> startpc: 72
> >>>>>>>>>>>> numArgs: 0
> >>>>>>>>>>>>
> >>>>>>>>>>>> RemoteString>>text
> >>>>>>>>>>>> Receiver: a RemoteString
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
> >>>>>>>>>>>> Work/Code/
> >>>>>>>>>>>> squeakingmoose/moose.chan...etc...
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> sourceFileNumber: 2
> >>>>>>>>>>>> filePositionHi: 10007336
> >>>>>>>>>>>>
> >>>>>>>>>>>> CompiledMethod>>getSourceFromFile
> >>>>>>>>>>>> Receiver: a CompiledMethod (838)
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> position: 10007336
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> a CompiledMethod (838)
> >>>>>>>>>>>>
> >>>>>>>>>>>> CompiledMethod>>methodNode
> >>>>>>>>>>>> Receiver: a CompiledMethod (838)
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aClass: Object
> >>>>>>>>>>>> source: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> a CompiledMethod (838)
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
> >>>>>>>>>>>> Receiver: DebuggerMethodMap
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aMethod: a CompiledMethod (838)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: Object
> >>>>>>>>>>>> methodDict: a
> >>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
> >>>>>>>>>>>>> a CompiledMethod
> >>>>>>>>>>>> (1628) #for...etc...
> >>>>>>>>>>>> format: 140
> >>>>>>>>>>>> instanceVariables: #(''timestamp''
> >>>>>>>>>>>> ''methodReference''
> >>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
> >>>>>>>>>>>> organization: (''initialize-release''
> >>>>>>>>>>>> forMethod:methodNode:)
> >>>>>>>>>>>> (''accessing'' markRec...etc...
> >>>>>>>>>>>> subclasses:
> >>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
> >>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
> >>>>>>>>>>>> name: #DebuggerMethodMap
> >>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
> >>>>>>>>>>>> WeakIdentityKeyDictionary(a
> >>>>>>>>>>>> CompiledMethod...etc...
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
> >>>>>>>>>>>> Receiver: a WeakIdentityKeyDictionary(a CompiledMethod
> >>>>>>>>>>>> (126)-
> >>>>>>>>>>>>> a
> >>>>>>>>>>>> DebuggerMethodMapForClosureCompiledM...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> key: a CompiledMethod (838)
> >>>>>>>>>>>> aBlock: [closure] in DebuggerMethodMap
> >>>>>>>>>>>> class>>forMethod:
> >>>>>>>>>>>> assoc: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> tally: 16
> >>>>>>>>>>>> array: an Array(nil nil a CompiledMethod (2402)->a
> >>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
> >>>>>>>>>>>> Receiver: DebuggerMethodMap
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aMethod: a CompiledMethod (838)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: Object
> >>>>>>>>>>>> methodDict: a
> >>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
> >>>>>>>>>>>>> a CompiledMethod
> >>>>>>>>>>>> (1628) #for...etc...
> >>>>>>>>>>>> format: 140
> >>>>>>>>>>>> instanceVariables: #(''timestamp''
> >>>>>>>>>>>> ''methodReference''
> >>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
> >>>>>>>>>>>> organization: (''initialize-release''
> >>>>>>>>>>>> forMethod:methodNode:)
> >>>>>>>>>>>> (''accessing'' markRec...etc...
> >>>>>>>>>>>> subclasses:
> >>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
> >>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
> >>>>>>>>>>>> name: #DebuggerMethodMap
> >>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
> >>>>>>>>>>>> WeakIdentityKeyDictionary(a
> >>>>>>>>>>>> CompiledMethod...etc...
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> CompiledMethod>>debuggerMap
> >>>>>>>>>>>> Receiver: a CompiledMethod (838)
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> a CompiledMethod (838)
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTClosureContextNode>>selection
> >>>>>>>>>>>> Receiver: an OTClosureContextNode
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> metaNode: context
> >>>>>>>>>>>>
> >>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
> >>>>>>>>>>>> process: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> context: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> parseTree: nil
> >>>>>>>>>>>> sourceMap: nil
> >>>>>>>>>>>> debuggerMap: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
> >>>>>>>>>>>> Receiver: an OTClosureContextNode
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> metaNode: context
> >>>>>>>>>>>>
> >>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
> >>>>>>>>>>>> process: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> context: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> parseTree: nil
> >>>>>>>>>>>> sourceMap: nil
> >>>>>>>>>>>> debuggerMap: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
> >>>>>>>>>>>> Receiver: an OTDefinitionPanel
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aNode: an OTClosureContextNode
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> browser: an OTDebugger
> >>>>>>>>>>>> definition: nil
> >>>>>>>>>>>> selection: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
> >>>>>>>>>>>> Receiver: an OTDefinitionPanel
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> ann: an OBSelectionChanged
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> browser: an OTDebugger
> >>>>>>>>>>>> definition: nil
> >>>>>>>>>>>> selection: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> MessageSend>>valueWithArguments:
> >>>>>>>>>>>> Receiver: MessageSend(#selectionChanged: -> an
> >>>>>>>>>>>> OTDefinitionPanel)
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> receiver: an OTDefinitionPanel
> >>>>>>>>>>>> selector: #selectionChanged:
> >>>>>>>>>>>> arguments: #()
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
> >>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> anArray: MessageSend(#selectionChanged: -> an
> >>>>>>>>>>>> OTDefinitionPanel)
> >>>>>>>>>>>> answer: an Array(an OBSelectionChanged)
> >>>>>>>>>>>> each: an Array(an OBFixedButtonPanel)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
> >>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: [closure] in
> >>>>>>>>>>>> ActionSequence>>valueWithArguments:
> >>>>>>>>>>>> index: 4
> >>>>>>>>>>>> indexLimiT: 6
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> ActionSequence>>valueWithArguments:
> >>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
> >>>>>>>>>>>> answer: an Array(an OBFixedButtonPanel)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
> >>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in OBAnnouncer>>announce:
> >>>>>>>>>>>> Receiver: an OBAnnouncer
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> <<error during printing>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> subscriptions: an
> >>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
> >>>>>>>>>>>>> an
> >>>>>>>>>>>> ActionSequence(Message...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: OBSelectionChanged-
> >>>>>>>>>>>>> #(MessageSend(#relabel: -> an
> >>>>>>>>>>>> OTDebugger)
> >>>>>>>>>>>> MessageSe...etc...
> >>>>>>>>>>>> assoc: [closure] in OBAnnouncer>>announce:
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> tally: 12
> >>>>>>>>>>>> array: {OBNodeCreated->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
> >>>>>>>>>>>>> an OBColum...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> IdentityDictionary(Set)>>do:
> >>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: [closure] in
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> index: 6
> >>>>>>>>>>>> each: OBSelectionChanged-
> >>>>>>>>>>>> >#(MessageSend(#relabel: -
> >>>>>>>>>>>>> an OTDebugger)
> >>>>>>>>>>>> MessageSend...etc...
> >>>>>>>>>>>> indexLimiT: 20
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> tally: 12
> >>>>>>>>>>>> array: {OBNodeCreated->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
> >>>>>>>>>>>>> an OBColum...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
> >>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: [closure] in
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> tally: 12
> >>>>>>>>>>>> array: {OBNodeCreated->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
> >>>>>>>>>>>>> an OBColum...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aBlock: [closure] in OBAnnouncer>>announce:
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> tally: 12
> >>>>>>>>>>>> array: {OBNodeCreated->an
> >>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
> >>>>>>>>>>>>> an OBColum...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> OBAnnouncer>>announce:
> >>>>>>>>>>>> Receiver: an OBAnnouncer
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> anObject: an OBSelectionChanged
> >>>>>>>>>>>> ann: an OBSelectionChanged
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> subscriptions: an
> >>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
> >>>>>>>>>>>>> an
> >>>>>>>>>>>> ActionSequence(Message...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> OBColumnPanel>>jumpTo:
> >>>>>>>>>>>> Receiver: an OBColumnPanel
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aNode: an OTClosureContextNode
> >>>>>>>>>>>> column: an OBColumn(Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand:
> >>>>>>>>>>>> #fullName)
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> browser: an OTDebugger
> >>>>>>>>>>>> root: an OTProcessNode
> >>>>>>>>>>>> current: an OTClosureContextNode
> >>>>>>>>>>>> columns: an OrderedCollection(an
> >>>>>>>>>>>> OBColumn(Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstan...etc...
> >>>>>>>>>>>> minPanes: 1
> >>>>>>>>>>>> maxPanes: 1
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
> >>>>>>>>>>>> Receiver: an OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aNode: an OTClosureContextNode
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> panels: an OrderedCollection(an
> >>>>>>>>>>>> OBColumnPanel
> >>>>>>>>>>>> an OBFixedButtonPanel
> >>>>>>>>>>>> an OTDefini...etc...
> >>>>>>>>>>>> announcer: an OBAnnouncer
> >>>>>>>>>>>> cmdFactories: an Array(OTCmdProceedDebugger
> >>>>>>>>>>>> OTCmdIntoDebugger
> >>>>>>>>>>>> OTCmdThroughDebug...etc...
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger class(OBBrowser
> >>>>>>>>>>>> class)>>metaNode:root:selection:panels:
> >>>>>>>>>>>> Receiver: OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> metaNode: process
> >>>>>>>>>>>> #longStack->context
> >>>>>>>>>>>>
> >>>>>>>>>>>> rootNode: an OTProcessNode
> >>>>>>>>>>>> selectedNode: an OTClosureContextNode
> >>>>>>>>>>>> panels: an Array(an OBColumnPanel an
> >>>>>>>>>>>> OBFixedButtonPanel an
> >>>>>>>>>>>> OTDefinitionPanel an...etc...
> >>>>>>>>>>>> browser: an OTDebugger
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: OBBrowser
> >>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
> >>>>>>>>>>>> CompiledMethod (3978)
> >>>>>>>>>>>> #cmdDebug->a...etc...
> >>>>>>>>>>>> format: 136
> >>>>>>>>>>>> instanceVariables: nil
> >>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
> >>>>>>>>>>>> cmdInspector)
> >>>>>>>>>>>> (''updating'' debugger...etc...
> >>>>>>>>>>>> subclasses: nil
> >>>>>>>>>>>> name: #OTDebugger
> >>>>>>>>>>>> classPool: nil
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''OB-Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
> >>>>>>>>>>>> Receiver: OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> rootNode: an OTProcessNode
> >>>>>>>>>>>> selectedNode: an OTClosureContextNode
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: OBBrowser
> >>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
> >>>>>>>>>>>> CompiledMethod (3978)
> >>>>>>>>>>>> #cmdDebug->a...etc...
> >>>>>>>>>>>> format: 136
> >>>>>>>>>>>> instanceVariables: nil
> >>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
> >>>>>>>>>>>> cmdInspector)
> >>>>>>>>>>>> (''updating'' debugger...etc...
> >>>>>>>>>>>> subclasses: nil
> >>>>>>>>>>>> name: #OTDebugger
> >>>>>>>>>>>> classPool: nil
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''OB-Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
> >>>>>>>>>>>> Receiver: OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aProcess: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> aContext: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> aBool: true
> >>>>>>>>>>>> processNode: an OTProcessNode
> >>>>>>>>>>>> contextNode: an OTClosureContextNode
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: OBBrowser
> >>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
> >>>>>>>>>>>> CompiledMethod (3978)
> >>>>>>>>>>>> #cmdDebug->a...etc...
> >>>>>>>>>>>> format: 136
> >>>>>>>>>>>> instanceVariables: nil
> >>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
> >>>>>>>>>>>> cmdInspector)
> >>>>>>>>>>>> (''updating'' debugger...etc...
> >>>>>>>>>>>> subclasses: nil
> >>>>>>>>>>>> name: #OTDebugger
> >>>>>>>>>>>> classPool: nil
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''OB-Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger
> >>>>>>>>>>>> class>>process:context:label:errorWasInUIProcess:
> >>>>>>>>>>>> Receiver: OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aProcess: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> aContext: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
> >>>>>>>>>>>> class>>fullName''
> >>>>>>>>>>>> aBool: true
> >>>>>>>>>>>> debugger: nil
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: OBBrowser
> >>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
> >>>>>>>>>>>> CompiledMethod (3978)
> >>>>>>>>>>>> #cmdDebug->a...etc...
> >>>>>>>>>>>> format: 136
> >>>>>>>>>>>> instanceVariables: nil
> >>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
> >>>>>>>>>>>> cmdInspector)
> >>>>>>>>>>>> (''updating'' debugger...etc...
> >>>>>>>>>>>> subclasses: nil
> >>>>>>>>>>>> name: #OTDebugger
> >>>>>>>>>>>> classPool: nil
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''OB-Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> OTDebugger
> >>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
> >>>>>>>>>>>> Receiver: OTDebugger
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aProcess: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> aContext: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
> >>>>>>>>>>>> class>>fullName''
> >>>>>>>>>>>> aBool: true
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> superclass: OBBrowser
> >>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
> >>>>>>>>>>>> CompiledMethod (3978)
> >>>>>>>>>>>> #cmdDebug->a...etc...
> >>>>>>>>>>>> format: 136
> >>>>>>>>>>>> instanceVariables: nil
> >>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
> >>>>>>>>>>>> cmdInspector)
> >>>>>>>>>>>> (''updating'' debugger...etc...
> >>>>>>>>>>>> subclasses: nil
> >>>>>>>>>>>> name: #OTDebugger
> >>>>>>>>>>>> classPool: nil
> >>>>>>>>>>>> sharedPools: nil
> >>>>>>>>>>>> environment: Smalltalk
> >>>>>>>>>>>> category: #''OB-Tools-Debugger''
> >>>>>>>>>>>> traitComposition: nil
> >>>>>>>>>>>> localSelectors: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>> [] in OTPreDebugNode>>debug:
> >>>>>>>>>>>> Receiver: an OTPreDebugNode
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aRequestor: an OTPreDebugPanel
> >>>>>>>>>>>> proc: a Process in OTToolset
> >>>>>>>>>>>> class>>debug:context:label:contents:fullView:
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> metaNode: Predebug
> >>>>>>>>>>>>
> >>>>>>>>>>>> navigation: nil
> >>>>>>>>>>>> errorWasInUI: true
> >>>>>>>>>>>> process: nil
> >>>>>>>>>>>> context: Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> label: ''MessageNotUnderstood: Model
> >>>>>>>>>>>> class>>fullName''
> >>>>>>>>>>>> contents: ''Model
> >>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
> >>>>>>>>>>>> UtilitiesTest>>tes...etc...
> >>>>>>>>>>>> debugOnMouseClick: true
> >>>>>>>>>>>>
> >>>>>>>>>>>> WorldState>>runStepMethodsIn:
> >>>>>>>>>>>> Receiver: a WorldState
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>> aWorld: a PasteUpMorph(1622) [world]
> >>>>>>>>>>>> queue: a SharedQueue
> >>>>>>>>>>>> numItems: 1
> >>>>>>>>>>>> i: 0
> >>>>>>>>>>>> limit: 200
> >>>>>>>>>>>> stamp: 12765762
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> hands: an Array(a HandMorph(3216))
> >>>>>>>>>>>> viewBox: 0@0 corner: 1440@807
> >>>>>>>>>>>> canvas: a FormCanvas on:
> >>>>>>>>>>>> DisplayScreen(1440x807x32)
> >>>>>>>>>>>> damageRecorder: a DamageRecorder
> >>>>>>>>>>>> stepList: a Heap(StepMessage(#stepAt: -> a
> >>>>>>>>>>>> SystemWindow(3380))(a
> >>>>>>>>>>>> SystemWindow(3...etc...
> >>>>>>>>>>>> lastStepTime: 12791780
> >>>>>>>>>>>> lastStepMessage: nil
> >>>>>>>>>>>> lastCycleTime: 12791800
> >>>>>>>>>>>> commandHistory: a CommandHistory
> >>>>>>>>>>>> alarms: a Heap()
> >>>>>>>>>>>> lastAlarmTime: 12791780
> >>>>>>>>>>>>
> >>>>>>>>>>>> PasteUpMorph>>runStepMethods
> >>>>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
> >>>>>>>>>>>> Arguments and temporary variables:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Receiver''s instance variables:
> >>>>>>>>>>>> bounds: 0@0 corner: 1440@807
> >>>>>>>>>>>> owner: nil
> >>>>>>>>>>>> submorphs: an Array(a TaskbarMorph(3095) a
> >>>>>>>>>>>> SystemWindow(171) a
> >>>>>>>>>>>> PluggableStandar...etc...
> >>>>>>>>>>>> fullBounds: nil
> >>>>>>>>>>>> color: (Color r: 0.972 g: 0.972 b: 0.976)
> >>>>>>>>>>>> extension: a MorphExtension (2543)
> >>>>>>>>>>>> [eventHandler
> >>>>>>>>>>>> = an
> >>>>>>>>>>>> EventHandler] [other: (...etc...
> >>>>>>>>>>>> borderWidth: 0
> >>>>>>>>>>>> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
> >>>>>>>>>>>> presenter: a Presenter (1246)
> >>>>>>>>>>>> model: a MorphicModel(1926)
> >>>>>>>>>>>> cursor: 1
> >>>>>>>>>>>> padding: 3
> >>>>>>>>>>>> backgroundMorph: nil
> >>>>>>>>>>>> isPartsBin: nil
> >>>>>>>>>>>> autoLineLayout: false
> >>>>>>>>>>>> indicateCursor: nil
> >>>>>>>>>>>> resizeToFit: nil
> >>>>>>>>>>>> wantsMouseOverHalos: nil
> >>>>>>>>>>>> worldState: a WorldState
> >>>>>>>>>>>> griddingOn: nil
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> --- The full stack ---
> >>>>>>>>>>>> UTF8TextConverter(Object)>>error:
> >>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
> >>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
> >>>>>>>>>>>> MultiByteFileStream>>next
> >>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
> >>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
> >>>>>>>>>>>> [] in RemoteString>>text
> >>>>>>>>>>>> BlockClosure>>ensure:
> >>>>>>>>>>>> RemoteString>>text
> >>>>>>>>>>>> CompiledMethod>>getSourceFromFile
> >>>>>>>>>>>> CompiledMethod>>methodNode
> >>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
> >>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
> >>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
> >>>>>>>>>>>> CompiledMethod>>debuggerMap
> >>>>>>>>>>>> OTClosureContextNode>>selection
> >>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
> >>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
> >>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
> >>>>>>>>>>>> MessageSend>>valueWithArguments:
> >>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
> >>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
> >>>>>>>>>>>> ActionSequence>>valueWithArguments:
> >>>>>>>>>>>> [] in OBAnnouncer>>announce:
> >>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> IdentityDictionary(Set)>>do:
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
> >>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
> >>>>>>>>>>>> OBAnnouncer>>announce:
> >>>>>>>>>>>> OBColumnPanel>>jumpTo:
> >>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
> >>>>>>>>>>>> OTDebugger class(OBBrowser
> >>>>>>>>>>>> class)>>metaNode:root:selection:panels:
> >>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
> >>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
> >>>>>>>>>>>> OTDebugger
> >>>>>>>>>>>> class>>process:context:label:errorWasInUIProcess:
> >>>>>>>>>>>> OTDebugger
> >>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
> >>>>>>>>>>>> [] in OTPreDebugNode>>debug:
> >>>>>>>>>>>> WorldState>>runStepMethodsIn:
> >>>>>>>>>>>> PasteUpMorph>>runStepMethods
> >>>>>>>>>>>> - - - - - - - - - - - - - - -
> >>>>>>>>>>>> - - - - - - - - - - - - - - - - - -
> >>>>>>>>>>>> WorldState>>doOneCycleNowFor:
> >>>>>>>>>>>> WorldState>>doOneCycleFor:
> >>>>>>>>>>>> PasteUpMorph>>doOneCycle
> >>>>>>>>>>>> [] in Project class>>spawnNewProcess
> >>>>>>>>>>>> [] in BlockClosure>>newProcess
> >>>>>>>>>>>> '
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> --
> >>>>>>>>>>>> www.tudorgirba.com
> >>>>>>>>>>>>
> >>>>>>>>>>>> "To lead is not to demand things, it is to make them
> >>>>>>>>>>>> happen."
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>> Pharo-project mailing list
> >>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/
> >>>>>>>>>>>> pharo-
> >>>>>>>>>>>> project
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> _______________________________________________
> >>>>>>>>>>> Pharo-project mailing list
> >>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> Pharo-project mailing list
> >>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> >>>>>>>>>> project
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> Pharo-project mailing list
> >>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> Pharo-project mailing list
> >>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Pharo-project mailing list
> >>>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> >>>>>>> project
> >>>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> Pharo-project mailing list
> >>>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> www.tudorgirba.com
> >>>>>
> >>>>> "It's not how it is, it is how we see it."
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> Pharo-project mailing list
> >>>>> Pharo-project(a)lists.gforge.inria.fr
> >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> >>>>> project
> >>>>>
> >>>>
> >>>
> >>> _______________________________________________
> >>> Pharo-project mailing list
> >>> Pharo-project(a)lists.gforge.inria.fr
> >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >>>
> >>
> >>
> >> _______________________________________________
> >> Pharo-project mailing list
> >> Pharo-project(a)lists.gforge.inria.fr
> >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
>
> --
> www.tudorgirba.com
>
> "Some battles are better lost than fought."
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 22, 2009
Re: [Pharo-project] invalid utf8 input detected
by Tudor Girba
Hi,
Could we not solve this for the couple of offending methods for the
moment? Having a problem in Object>>doesNotUnderstand: makes the whole
debugging a pain because I can actually not debug such a case.
Cheers,
Doru
On 19 May 2009, at 22:03, Nicolas Cellier wrote:
> I opened http://code.google.com/p/pharo/issues/detail?id=830
>
> I think other UTF-8 issues are different:
> Two for FileBrowser :
> http://code.google.com/p/pharo/issues/detail?id=370
> http://code.google.com/p/pharo/issues/detail?id=513
> One about VM crash :
> http://code.google.com/p/pharo/issues/detail?id=744
>
> Nicolas
>
> 2009/5/19 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>> thanks for making progress on this front.
>>
>> On May 19, 2009, at 6:40 PM, Nicolas Cellier wrote:
>>
>>>> From what I see in a 10304, all these methods had a non ASCII
>>> character in comment:
>>>
>>> {Object>>#doesNotUnderstand:.
>>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
>>> Utilities class>>#changeStampPerSe.
>>> Utilities class>>#methodsWithInitials:} collect: [:e | (e
>>> getSourceFromFile select: [:s | s charCode > 127]) asArray collect:
>>> [:c | c charCode]]
>>> #(#(160 160) #(172 143 172 143) #(183) #(246))
>>> That is:
>>>
>>> an Array(a Text for ' ' a Text for '¬â¬â' a Text for '·' a
>>> Text for 'ö')
>>> First are non breaking space.
>>> Last but ones are not rendered same in Squeak.
>>>
>>> These four methods are changed in:
>>> - Kernel-stephane_ducasse.renggli.319.mcz
>>> - System-Support-stephane_ducasse.20.mcz
>>> If I merge 10305 manually, I get some decompiled code in the merge
>>> window.
>>> So there might be a problem already either in Monticello or in
>>> the .mcz.
>>> After the merge, there is decomipled code in the changes and no
>>> error
>>> when executing above code.
>>>
>>> If I load instead of merging, then I also get the decompiled code in
>>> the change log, so I can't reproduce completely the faulty behavior
>>> (having an invalid utf-8 notifier), maybe because the process is no
>>> the same when there are conflicts...
>>>
>>> If I extract .mcz contents, I can read contents from FileBrowser.
>>> But
>>> it does not use an UTF-8 encoding...
>>> I can't say if the encoding is macRoman or ISO8859L1 or CP1252 or
>>> what, but what I can say is that the source.st is not UTF-8 encoded.
>>>
>>> So without searching further I guess here lies the problems:
>>> transfer
>>> of raw bytes from non UTF-8 .mcz/source.st to the UTF-8 .changes
>>> change-log...
>>>
>>> Every time we'll modify a method with a Character code > 127, we
>>> will
>>> likely create an invalid UTF-8 bug or get some decompiled code, or
>>> corrupt source code in extreme case...
>>>
>>> Could the Monticello / UTF-8 experts confirm my guess ?
>>>
>>> Nicolas
>>>
>>> 2009/5/17 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
>>>> OK,
>>>>
>>>> {Object>>#doesNotUnderstand:.
>>>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
>>>> Utilities class>>#changeStampPerSe.
>>>> Utilities class>>#methodsWithInitials:} collect: [:e | e
>>>> getSourceFromFile].
>>>>
>>>> does not fail for me, BUT all these sources look like
>>>> decompileString.
>>>> I guess this is dating from the condenseChanges that occured in
>>>> #update10298
>>>> Change log prior to this update should have the problem.
>>>>
>>>> Nicolas
>>>>
>>>> 2009/5/17 Tudor Girba <girba(a)iam.unibe.ch>:
>>>>> Hi,
>>>>>
>>>>> I ran the snippet you sent on both 304cl and 306cl and I get the
>>>>> following list:
>>>>>
>>>>> Object->#doesNotUnderstand:
>>>>> SystemNavigation->#browseMethodsWhoseNamesContain:
>>>>> Utilities class->#changeStampPerSe
>>>>> Utilities class->#methodsWithInitials:
>>>>>
>>>>> Indeed, most of the annoyances are due to the
>>>>> Object>>doesNotUnderstand: because when I get a DNU I am stuck
>>>>> (and I
>>>>> feel like in Java :)).
>>>>>
>>>>> I am not sure I understand if there is a fix to the problem.
>>>>>
>>>>> Cheers,
>>>>> Doru
>>>>>
>>>>>
>>>>>
>>>>> On 17 May 2009, at 12:06, Nicolas Cellier wrote:
>>>>>
>>>>>> There's something weird... If you hit var (UndefinedObject)
>>>>>> doesNotUnderstand: #value: that means there were a problem the
>>>>>> first
>>>>>> time.
>>>>>>
>>>>>> Unfortunately, due to bug in MethodContext tempNames, we don't
>>>>>> know
>>>>>> the class and selector guilty.
>>>>>> From the set of selectors I can see this is Object.
>>>>>> From the source file position, I cannot say anything because I do
>>>>>> not
>>>>>> have same change log history (sorry, own image).
>>>>>>
>>>>>> You could try
>>>>>> (SourceFiles at: 2) readOnlyCopy position: 10007336; nextChunk
>>>>>>
>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>> sorry for not checking either.
>>>>>>> When I run this code I indeed do not have a problem on 10306cl
>>>>>>>
>>>>>>> stef
>>>>>>>
>>>>>>> On May 17, 2009, at 11:36 AM, Nicolas Cellier wrote:
>>>>>>>
>>>>>>>> Sure, a key stroke error, it's bar value:, not var value:,
>>>>>>>> This @!* workspace takes it as global without a warning....
>>>>>>>>
>>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>>>> Nicolas
>>>>>>>>>
>>>>>>>>> when I run your script on the license looking for image
>>>>>>>>> I got using 10306cl
>>>>>>>>>
>>>>>>>>> I get the following error:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug
>>>>>>>>> 2006' [latest
>>>>>>>>> update: #6747] Squeak VM 4.1.1b2
>>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
>>>>>>>>>
>>>>>>>>> SecurityManager state:
>>>>>>>>> Restricted: false
>>>>>>>>> FileAccess: true
>>>>>>>>> SocketAccess: true
>>>>>>>>> Working Dir /Data/squeak4.0-relicenseTools/history
>>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>>>>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/
>>>>>>>>> Internet/My
>>>>>>>>> Squeak
>>>>>>>>>
>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>>> Receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> anArray: an Array('Error: Invalid utf8 input
>>>>>>>>> detected' an
>>>>>>>>> UTF8TextConverter)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> startpc: 183
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> [] in BlockClosure>>ifError:
>>>>>>>>> Receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> errorHandlerBlock: Error: Invalid utf8 input
>>>>>>>>> detected
>>>>>>>>> ex: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> startpc: 171
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>>> Receiver: [closure] in BlockClosure>>ifError:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> anArray: an Array(Error: Invalid utf8 input
>>>>>>>>> detected)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: BlockClosure>>ifError:
>>>>>>>>> startpc: 40
>>>>>>>>> numArgs: 1
>>>>>>>>>
>>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> sender: BlockClosure>>ifError:
>>>>>>>>> pc: 17
>>>>>>>>> stackp: 3
>>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>>> closureOrNil: nil
>>>>>>>>> receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> returnValue: nil
>>>>>>>>> b: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext:
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> startpc: 90
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> exception: Error: Invalid utf8 input detected
>>>>>>>>> val: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> sender: BlockClosure>>ifError:
>>>>>>>>> pc: 17
>>>>>>>>> stackp: 3
>>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>>> closureOrNil: nil
>>>>>>>>> receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>>
>>>>>>>>> Error(Exception)>>signal
>>>>>>>>> Receiver: Error: Invalid utf8 input detected
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> messageText: 'Invalid utf8 input detected'
>>>>>>>>> tag: nil
>>>>>>>>> signalContext: Error(Exception)>>signal
>>>>>>>>> handlerContext: BlockClosure>>on:do:
>>>>>>>>> outerContext: nil
>>>>>>>>>
>>>>>>>>> Error(Exception)>>signal:
>>>>>>>>> Receiver: Error: Invalid utf8 input detected
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> signalerText: 'Invalid utf8 input detected'
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> messageText: 'Invalid utf8 input detected'
>>>>>>>>> tag: nil
>>>>>>>>> signalContext: Error(Exception)>>signal
>>>>>>>>> handlerContext: BlockClosure>>on:do:
>>>>>>>>> outerContext: nil
>>>>>>>>>
>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aString: 'Invalid utf8 input detected'
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> an UTF8TextConverter
>>>>>>>>>
>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> an UTF8TextConverter
>>>>>>>>>
>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aStream: MultiByteFileStream: '/Data/
>>>>>>>>> squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>>> character1: $
>>>>>>>>> value1: 160
>>>>>>>>> character2: Character tab
>>>>>>>>> value2: 9
>>>>>>>>> unicode: nil
>>>>>>>>> character3: Character tab
>>>>>>>>> value3: 9
>>>>>>>>> character4: nil
>>>>>>>>> value4: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> an UTF8TextConverter
>>>>>>>>>
>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> char: nil
>>>>>>>>> secondChar: nil
>>>>>>>>> state: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> terminator: $!
>>>>>>>>> out: a WriteStream 'doesNotUnderstand: aMessage
>>>>>>>>> "Handle the fact that there ...etc...
>>>>>>>>> ch: Character cr
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> string: nil
>>>>>>>>> runsRaw: nil
>>>>>>>>> strm: nil
>>>>>>>>> runs: nil
>>>>>>>>> peek: nil
>>>>>>>>> pos: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [] in RemoteString>>text
>>>>>>>>> Receiver: a RemoteString
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> theFile: MultiByteFileStream: '/Data/
>>>>>>>>> squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> sourceFileNumber: 2
>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in RemoteString>>text
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in RemoteString>>text
>>>>>>>>> returnValue: nil
>>>>>>>>> b: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: RemoteString>>text
>>>>>>>>> startpc: 72
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> RemoteString>>text
>>>>>>>>> Receiver: a RemoteString
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> theFile: MultiByteFileStream: '/Data/
>>>>>>>>> squeak4.0-
>>>>>>>>> relicenseTools/
>>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> sourceFileNumber: 2
>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>
>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> position: 10007336
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>
>>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> Receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> exception: Error
>>>>>>>>> handlerAction: [closure] in BlockClosure>>ifError:
>>>>>>>>> handlerActive: false
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> startpc: 171
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> BlockClosure>>ifError:
>>>>>>>>> Receiver: [closure] in [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> errorHandlerBlock: [closure] in [] in [] in []
>>>>>>>>> in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> startpc: 171
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> IdentitySet(Set)>>do:
>>>>>>>>> Receiver: an IdentitySet(#name #inheritsFromAnyIn: #asOop
>>>>>>>>> #isWebBrowser #storeOnStream: #wantsDroppe...etc...
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in [] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> index: 394
>>>>>>>>> each: #doesNotUnderstand:
>>>>>>>>> indexLimiT: 498
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> tally: 373
>>>>>>>>> array: #(nil nil #name nil #inheritsFromAnyIn:
>>>>>>>>> #asOop nil nil
>>>>>>>>> #isWebBrowser nil...etc...
>>>>>>>>>
>>>>>>>>> [] in [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> Receiver: ProtoObject
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: Object
>>>>>>>>> cl: [closure] in [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> superclass: nil
>>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>>> CompiledMethod (602)
>>>>>>>>> #become:->a Compil...etc...
>>>>>>>>> format: 2
>>>>>>>>> instanceVariables: nil
>>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>>> ImageSegmentRootStub .
>>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>>> name: #ProtoObject
>>>>>>>>> classPool: nil
>>>>>>>>> sharedPools: nil
>>>>>>>>> environment: nil
>>>>>>>>> category: #'Kernel-Objects'
>>>>>>>>> traitComposition: nil
>>>>>>>>> localSelectors: nil
>>>>>>>>>
>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>> Receiver: {Object . ObjectOut . ImageSegmentRootStub .
>>>>>>>>> MessageCatcher . TestCoverage}
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in ProtoObject
>>>>>>>>> class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> index: 1
>>>>>>>>> indexLimiT: 5
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher .
>>>>>>>>> TestCoverage}
>>>>>>>>>
>>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
>>>>>>>>> Receiver: ProtoObject
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in ProtoObject
>>>>>>>>> class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> superclass: nil
>>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>>> CompiledMethod (602)
>>>>>>>>> #become:->a Compil...etc...
>>>>>>>>> format: 2
>>>>>>>>> instanceVariables: nil
>>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>>> ImageSegmentRootStub .
>>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>>> name: #ProtoObject
>>>>>>>>> classPool: nil
>>>>>>>>> sharedPools: nil
>>>>>>>>> environment: nil
>>>>>>>>> category: #'Kernel-Objects'
>>>>>>>>> traitComposition: nil
>>>>>>>>> localSelectors: nil
>>>>>>>>>
>>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> Receiver: ProtoObject
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> superclass: nil
>>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>>> CompiledMethod (602)
>>>>>>>>> #become:->a Compil...etc...
>>>>>>>>> format: 2
>>>>>>>>> instanceVariables: nil
>>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>>> ImageSegmentRootStub .
>>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>>> name: #ProtoObject
>>>>>>>>> classPool: nil
>>>>>>>>> sharedPools: nil
>>>>>>>>> environment: nil
>>>>>>>>> category: #'Kernel-Objects'
>>>>>>>>> traitComposition: nil
>>>>>>>>> localSelectors: nil
>>>>>>>>>
>>>>>>>>> SystemNavigation>>allBehaviorsDo:
>>>>>>>>> Receiver: a SystemNavigation
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in [] in
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> browserClass: nil
>>>>>>>>> hierarchyBrowserClass: nil
>>>>>>>>>
>>>>>>>>> [] in UndefinedObject>>DoIt
>>>>>>>>> Receiver: nil
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> <<error during printing>
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> nil
>>>>>>>>>
>>>>>>>>> [] in ProgressInitiationException>>defaultAction
>>>>>>>>> Receiver: ProgressInitiationException
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> progress: [closure] in
>>>>>>>>> SystemProgressMorph>>label:min:max:
>>>>>>>>> result: #(nil)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> messageText: nil
>>>>>>>>> tag: nil
>>>>>>>>> signalContext:
>>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>>> handlerContext: nil
>>>>>>>>> outerContext: nil
>>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
>>>>>>>>> maxVal: 3874
>>>>>>>>> minVal: 0
>>>>>>>>> aPoint: 840@306
>>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>>
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> Receiver: [closure] in
>>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> aBlock: [closure] in
>>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>>> returnValue: nil
>>>>>>>>> b: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> outerContext:
>>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>>> startpc: 49
>>>>>>>>> numArgs: 0
>>>>>>>>>
>>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>>> Receiver: ProgressInitiationException
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> progress: [closure] in
>>>>>>>>> SystemProgressMorph>>label:min:max:
>>>>>>>>> result: #(nil)
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> messageText: nil
>>>>>>>>> tag: nil
>>>>>>>>> signalContext:
>>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>>> handlerContext: nil
>>>>>>>>> outerContext: nil
>>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
>>>>>>>>> maxVal: 3874
>>>>>>>>> minVal: 0
>>>>>>>>> aPoint: 840@306
>>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>>
>>>>>>>>> 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: a CompiledMethod (2306)
>>>>>>>>> closureOrNil: nil
>>>>>>>>> receiver: [closure] in
>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>>> Arguments and temporary variables:
>>>>>>>>> exception: ProgressInitiationException
>>>>>>>>> val: nil
>>>>>>>>> Receiver's instance variables:
>>>>>>>>> sender:
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>>> pc: 17
>>>>>>>>> stackp: 3
>>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>>> closureOrNil: nil
>>>>>>>>> receiver: [closure] in
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>>>
>>>>>>>>> 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: [closure] in UndefinedObject>>DoIt
>>>>>>>>> maxVal: 3874
>>>>>>>>> minVal: 0
>>>>>>>>> aPoint: 840@306
>>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --- The full stack ---
>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
>>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>>> [] in BlockClosure>>ifError:
>>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> Error(Exception)>>signal
>>>>>>>>> Error(Exception)>>signal:
>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>> [] in RemoteString>>text
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> RemoteString>>text
>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> BlockClosure>>ifError:
>>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>>> IdentitySet(Set)>>do:
>>>>>>>>> [] in [] in UndefinedObject>>DoIt
>>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
>>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>>> SystemNavigation>>allBehaviorsDo:
>>>>>>>>> [] in UndefinedObject>>DoIt
>>>>>>>>> [] in ProgressInitiationException>>defaultAction
>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>>> UndefinedObject>>handleSignal:
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>>> - - - - - - - - - - - - - - -
>>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>>>>>> ByteString(String)>>displayProgressAt:from:to:during:
>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt
>>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>doIt:
>>>>>>>>> TextMorphEditor
>>>>>>>>> (ParagraphEditor)>>terminateAndInitializeAround:
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt:
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
>>>>>>>>> TextMorphEditor>>dispatchOnKeyEvent:with:
>>>>>>>>> TextMorphEditor(ParagraphEditor)>>keystroke:
>>>>>>>>> TextMorphEditor>>keystroke:
>>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:
>>>>>>>>> TextMorphForEditView>>handleInteraction:
>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>> TextMorphForEditView>>keyStroke:
>>>>>>>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
>>>>>>>>> KeyboardEvent>>sentTo:
>>>>>>>>> TextMorphForEditView(Morph)>>handleEvent:
>>>>>>>>> TextMorphForEditView(Morph)>>handleFocusEvent:
>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>> HandMorph>>sendEvent:focus:clear:
>>>>>>>>> HandMorph>>sendKeyboardEvent:
>>>>>>>>> HandMorph>>handleEvent:
>>>>>>>>> HandMorph>>processEvents
>>>>>>>>> [] in WorldState>>doOneCycleNowFor:
>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>> WorldState>>handsDo:
>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On May 17, 2009, at 11:13 AM, Nicolas Cellier wrote:
>>>>>>>>>
>>>>>>>>>> One solution would be to use getSource rather than
>>>>>>>>>> getSourceFromFile.
>>>>>>>>>> However, with following code I detected no problem in my
>>>>>>>>>> pharo-
>>>>>>>>>> core
>>>>>>>>>> copy (10281 updated to 10306)
>>>>>>>>>>
>>>>>>>>>> | problems total |
>>>>>>>>>> problems := OrderedCollection new.
>>>>>>>>>> total := 0.
>>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl | total :=
>>>>>>>>>> total +
>>>>>>>>>> 1].
>>>>>>>>>> 'Searching UTF-8 Problems...'
>>>>>>>>>> displayProgressAt: Sensor cursorPoint
>>>>>>>>>> from: 0 to: total
>>>>>>>>>> during:
>>>>>>>>>> [:bar | | count |
>>>>>>>>>> count := 0.
>>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl |
>>>>>>>>>> bar value: (count := count + 1).
>>>>>>>>>> cl selectors do: [:sel |
>>>>>>>>>> [(cl compiledMethodAt: sel)
>>>>>>>>>> getSourceFromFile] ifError: [
>>>>>>>>>> var value: 'last problem
>>>>>>>>>> found ' , cl name , '>>#' , sel.
>>>>>>>>>> problems add: cl->sel]]]].
>>>>>>>>>> ^problems
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>>>>>> yes same here.
>>>>>>>>>>>
>>>>>>>>>>> On May 17, 2009, at 2:10 AM, Tudor Girba wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> Recently I encounter a strange error:
>>>>>>>>>>>> - I sometimes get a debugger due to some problems in my
>>>>>>>>>>>> code
>>>>>>>>>>>> - when I try to investigate the trace, I get another
>>>>>>>>>>>> debugger
>>>>>>>>>>>> saying
>>>>>>>>>>>> that "Invalid utf8 input detected'"
>>>>>>>>>>>>
>>>>>>>>>>>> This second debugger I can investigate, the previous not.
>>>>>>>>>>>> It
>>>>>>>>>>>> looks
>>>>>>>>>>>> like something got messed up with the text conversion of
>>>>>>>>>>>> the
>>>>>>>>>>>> sources.
>>>>>>>>>>>>
>>>>>>>>>>>> I am working on 10306 using the 4.1.1b2 VM on Mac. The code
>>>>>>>>>>>> I am
>>>>>>>>>>>> working on is loaded from squeaksource (Moose, Glamour,
>>>>>>>>>>>> Mondrian).
>>>>>>>>>>>>
>>>>>>>>>>>> Anyone can confirm this problem?
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> Doru
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ----ERROR REPORT----
>>>>>>>>>>>>
>>>>>>>>>>>> '17 May 2009 2:05:50 am
>>>>>>>>>>>>
>>>>>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of ''28 Aug
>>>>>>>>>>>> 2006'' [latest
>>>>>>>>>>>> update: #6747] Squeak VM 4.1.1b2
>>>>>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
>>>>>>>>>>>>
>>>>>>>>>>>> SecurityManager state:
>>>>>>>>>>>> Restricted: false
>>>>>>>>>>>> FileAccess: true
>>>>>>>>>>>> SocketAccess: true
>>>>>>>>>>>> Working Dir /Users/girba/Work/Code/squeakingmoose
>>>>>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>>>>>>>>>> Untrusted Dir /Users/girba/Library/Preferences/Squeak/
>>>>>>>>>>>> Internet/
>>>>>>>>>>>> My
>>>>>>>>>>>> Squeak
>>>>>>>>>>>>
>>>>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aString: ''Invalid utf8 input detected''
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>>
>>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>>
>>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aStream: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>>> Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>>> character1: $
>>>>>>>>>>>> value1: 160
>>>>>>>>>>>> character2: Character tab
>>>>>>>>>>>> value2: 9
>>>>>>>>>>>> unicode: nil
>>>>>>>>>>>> character3: Character tab
>>>>>>>>>>>> value3: 9
>>>>>>>>>>>> character4: nil
>>>>>>>>>>>> value4: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>>
>>>>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> char: nil
>>>>>>>>>>>> secondChar: nil
>>>>>>>>>>>> state: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> terminator: $!
>>>>>>>>>>>> out: a WriteStream ''doesNotUnderstand: aMessage
>>>>>>>>>>>> "Handle the fact that there ...etc...
>>>>>>>>>>>> ch: Character cr
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> string: nil
>>>>>>>>>>>> runsRaw: nil
>>>>>>>>>>>> strm: nil
>>>>>>>>>>>> runs: nil
>>>>>>>>>>>> peek: nil
>>>>>>>>>>>> pos: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> [] in RemoteString>>text
>>>>>>>>>>>> Receiver: a RemoteString
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>>> Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> sourceFileNumber: 2
>>>>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>>>>
>>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>>> Receiver: [closure] in RemoteString>>text
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: [closure] in RemoteString>>text
>>>>>>>>>>>> returnValue: nil
>>>>>>>>>>>> b: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> outerContext: RemoteString>>text
>>>>>>>>>>>> startpc: 72
>>>>>>>>>>>> numArgs: 0
>>>>>>>>>>>>
>>>>>>>>>>>> RemoteString>>text
>>>>>>>>>>>> Receiver: a RemoteString
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>>> Work/Code/
>>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> sourceFileNumber: 2
>>>>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>>>>
>>>>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> position: 10007336
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>>
>>>>>>>>>>>> CompiledMethod>>methodNode
>>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aClass: Object
>>>>>>>>>>>> source: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>>
>>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
>>>>>>>>>>>> Receiver: DebuggerMethodMap
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aMethod: a CompiledMethod (838)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: Object
>>>>>>>>>>>> methodDict: a
>>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
>>>>>>>>>>>>> a CompiledMethod
>>>>>>>>>>>> (1628) #for...etc...
>>>>>>>>>>>> format: 140
>>>>>>>>>>>> instanceVariables: #(''timestamp''
>>>>>>>>>>>> ''methodReference''
>>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
>>>>>>>>>>>> organization: (''initialize-release''
>>>>>>>>>>>> forMethod:methodNode:)
>>>>>>>>>>>> (''accessing'' markRec...etc...
>>>>>>>>>>>> subclasses:
>>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
>>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>>> name: #DebuggerMethodMap
>>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
>>>>>>>>>>>> WeakIdentityKeyDictionary(a
>>>>>>>>>>>> CompiledMethod...etc...
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
>>>>>>>>>>>> Receiver: a WeakIdentityKeyDictionary(a CompiledMethod
>>>>>>>>>>>> (126)-
>>>>>>>>>>>>> a
>>>>>>>>>>>> DebuggerMethodMapForClosureCompiledM...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> key: a CompiledMethod (838)
>>>>>>>>>>>> aBlock: [closure] in DebuggerMethodMap
>>>>>>>>>>>> class>>forMethod:
>>>>>>>>>>>> assoc: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> tally: 16
>>>>>>>>>>>> array: an Array(nil nil a CompiledMethod (2402)->a
>>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
>>>>>>>>>>>> Receiver: DebuggerMethodMap
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aMethod: a CompiledMethod (838)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: Object
>>>>>>>>>>>> methodDict: a
>>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
>>>>>>>>>>>>> a CompiledMethod
>>>>>>>>>>>> (1628) #for...etc...
>>>>>>>>>>>> format: 140
>>>>>>>>>>>> instanceVariables: #(''timestamp''
>>>>>>>>>>>> ''methodReference''
>>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
>>>>>>>>>>>> organization: (''initialize-release''
>>>>>>>>>>>> forMethod:methodNode:)
>>>>>>>>>>>> (''accessing'' markRec...etc...
>>>>>>>>>>>> subclasses:
>>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
>>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>>> name: #DebuggerMethodMap
>>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
>>>>>>>>>>>> WeakIdentityKeyDictionary(a
>>>>>>>>>>>> CompiledMethod...etc...
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> CompiledMethod>>debuggerMap
>>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>>
>>>>>>>>>>>> OTClosureContextNode>>selection
>>>>>>>>>>>> Receiver: an OTClosureContextNode
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> metaNode: context
>>>>>>>>>>>>
>>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
>>>>>>>>>>>> process: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> context: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> parseTree: nil
>>>>>>>>>>>> sourceMap: nil
>>>>>>>>>>>> debuggerMap: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
>>>>>>>>>>>> Receiver: an OTClosureContextNode
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> metaNode: context
>>>>>>>>>>>>
>>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
>>>>>>>>>>>> process: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> context: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> parseTree: nil
>>>>>>>>>>>> sourceMap: nil
>>>>>>>>>>>> debuggerMap: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
>>>>>>>>>>>> Receiver: an OTDefinitionPanel
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>>> definition: nil
>>>>>>>>>>>> selection: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
>>>>>>>>>>>> Receiver: an OTDefinitionPanel
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> ann: an OBSelectionChanged
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>>> definition: nil
>>>>>>>>>>>> selection: nil
>>>>>>>>>>>>
>>>>>>>>>>>> MessageSend>>valueWithArguments:
>>>>>>>>>>>> Receiver: MessageSend(#selectionChanged: -> an
>>>>>>>>>>>> OTDefinitionPanel)
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> receiver: an OTDefinitionPanel
>>>>>>>>>>>> selector: #selectionChanged:
>>>>>>>>>>>> arguments: #()
>>>>>>>>>>>>
>>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
>>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> anArray: MessageSend(#selectionChanged: -> an
>>>>>>>>>>>> OTDefinitionPanel)
>>>>>>>>>>>> answer: an Array(an OBSelectionChanged)
>>>>>>>>>>>> each: an Array(an OBFixedButtonPanel)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
>>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>>> index: 4
>>>>>>>>>>>> indexLimiT: 6
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
>>>>>>>>>>>> answer: an Array(an OBFixedButtonPanel)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> [] in OBAnnouncer>>announce:
>>>>>>>>>>>> Receiver: an OBAnnouncer
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> <<error during printing>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> subscriptions: an
>>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
>>>>>>>>>>>>> an
>>>>>>>>>>>> ActionSequence(Message...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: OBSelectionChanged-
>>>>>>>>>>>>> #(MessageSend(#relabel: -> an
>>>>>>>>>>>> OTDebugger)
>>>>>>>>>>>> MessageSe...etc...
>>>>>>>>>>>> assoc: [closure] in OBAnnouncer>>announce:
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> tally: 12
>>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> IdentityDictionary(Set)>>do:
>>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> index: 6
>>>>>>>>>>>> each: OBSelectionChanged-
>>>>>>>>>>>> >#(MessageSend(#relabel: -
>>>>>>>>>>>>> an OTDebugger)
>>>>>>>>>>>> MessageSend...etc...
>>>>>>>>>>>> indexLimiT: 20
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> tally: 12
>>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> tally: 12
>>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aBlock: [closure] in OBAnnouncer>>announce:
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> tally: 12
>>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> OBAnnouncer>>announce:
>>>>>>>>>>>> Receiver: an OBAnnouncer
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> anObject: an OBSelectionChanged
>>>>>>>>>>>> ann: an OBSelectionChanged
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> subscriptions: an
>>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
>>>>>>>>>>>>> an
>>>>>>>>>>>> ActionSequence(Message...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> OBColumnPanel>>jumpTo:
>>>>>>>>>>>> Receiver: an OBColumnPanel
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>>> column: an OBColumn(Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand:
>>>>>>>>>>>> #fullName)
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>>> root: an OTProcessNode
>>>>>>>>>>>> current: an OTClosureContextNode
>>>>>>>>>>>> columns: an OrderedCollection(an
>>>>>>>>>>>> OBColumn(Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstan...etc...
>>>>>>>>>>>> minPanes: 1
>>>>>>>>>>>> maxPanes: 1
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
>>>>>>>>>>>> Receiver: an OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> panels: an OrderedCollection(an
>>>>>>>>>>>> OBColumnPanel
>>>>>>>>>>>> an OBFixedButtonPanel
>>>>>>>>>>>> an OTDefini...etc...
>>>>>>>>>>>> announcer: an OBAnnouncer
>>>>>>>>>>>> cmdFactories: an Array(OTCmdProceedDebugger
>>>>>>>>>>>> OTCmdIntoDebugger
>>>>>>>>>>>> OTCmdThroughDebug...etc...
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger class(OBBrowser
>>>>>>>>>>>> class)>>metaNode:root:selection:panels:
>>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> metaNode: process
>>>>>>>>>>>> #longStack->context
>>>>>>>>>>>>
>>>>>>>>>>>> rootNode: an OTProcessNode
>>>>>>>>>>>> selectedNode: an OTClosureContextNode
>>>>>>>>>>>> panels: an Array(an OBColumnPanel an
>>>>>>>>>>>> OBFixedButtonPanel an
>>>>>>>>>>>> OTDefinitionPanel an...etc...
>>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>>> format: 136
>>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>>> cmdInspector)
>>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>>> subclasses: nil
>>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>>> classPool: nil
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
>>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> rootNode: an OTProcessNode
>>>>>>>>>>>> selectedNode: an OTClosureContextNode
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>>> format: 136
>>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>>> cmdInspector)
>>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>>> subclasses: nil
>>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>>> classPool: nil
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
>>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> aContext: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> aBool: true
>>>>>>>>>>>> processNode: an OTProcessNode
>>>>>>>>>>>> contextNode: an OTClosureContextNode
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>>> format: 136
>>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>>> cmdInspector)
>>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>>> subclasses: nil
>>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>>> classPool: nil
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger
>>>>>>>>>>>> class>>process:context:label:errorWasInUIProcess:
>>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> aContext: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
>>>>>>>>>>>> class>>fullName''
>>>>>>>>>>>> aBool: true
>>>>>>>>>>>> debugger: nil
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>>> format: 136
>>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>>> cmdInspector)
>>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>>> subclasses: nil
>>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>>> classPool: nil
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> OTDebugger
>>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
>>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> aContext: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
>>>>>>>>>>>> class>>fullName''
>>>>>>>>>>>> aBool: true
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>>> format: 136
>>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>>> cmdInspector)
>>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>>> subclasses: nil
>>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>>> classPool: nil
>>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>>
>>>>>>>>>>>> [] in OTPreDebugNode>>debug:
>>>>>>>>>>>> Receiver: an OTPreDebugNode
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aRequestor: an OTPreDebugPanel
>>>>>>>>>>>> proc: a Process in OTToolset
>>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> metaNode: Predebug
>>>>>>>>>>>>
>>>>>>>>>>>> navigation: nil
>>>>>>>>>>>> errorWasInUI: true
>>>>>>>>>>>> process: nil
>>>>>>>>>>>> context: Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> label: ''MessageNotUnderstood: Model
>>>>>>>>>>>> class>>fullName''
>>>>>>>>>>>> contents: ''Model
>>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>>> UtilitiesTest>>tes...etc...
>>>>>>>>>>>> debugOnMouseClick: true
>>>>>>>>>>>>
>>>>>>>>>>>> WorldState>>runStepMethodsIn:
>>>>>>>>>>>> Receiver: a WorldState
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>> aWorld: a PasteUpMorph(1622) [world]
>>>>>>>>>>>> queue: a SharedQueue
>>>>>>>>>>>> numItems: 1
>>>>>>>>>>>> i: 0
>>>>>>>>>>>> limit: 200
>>>>>>>>>>>> stamp: 12765762
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> hands: an Array(a HandMorph(3216))
>>>>>>>>>>>> viewBox: 0@0 corner: 1440@807
>>>>>>>>>>>> canvas: a FormCanvas on:
>>>>>>>>>>>> DisplayScreen(1440x807x32)
>>>>>>>>>>>> damageRecorder: a DamageRecorder
>>>>>>>>>>>> stepList: a Heap(StepMessage(#stepAt: -> a
>>>>>>>>>>>> SystemWindow(3380))(a
>>>>>>>>>>>> SystemWindow(3...etc...
>>>>>>>>>>>> lastStepTime: 12791780
>>>>>>>>>>>> lastStepMessage: nil
>>>>>>>>>>>> lastCycleTime: 12791800
>>>>>>>>>>>> commandHistory: a CommandHistory
>>>>>>>>>>>> alarms: a Heap()
>>>>>>>>>>>> lastAlarmTime: 12791780
>>>>>>>>>>>>
>>>>>>>>>>>> PasteUpMorph>>runStepMethods
>>>>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>
>>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>> bounds: 0@0 corner: 1440@807
>>>>>>>>>>>> owner: nil
>>>>>>>>>>>> submorphs: an Array(a TaskbarMorph(3095) a
>>>>>>>>>>>> SystemWindow(171) a
>>>>>>>>>>>> PluggableStandar...etc...
>>>>>>>>>>>> fullBounds: nil
>>>>>>>>>>>> color: (Color r: 0.972 g: 0.972 b: 0.976)
>>>>>>>>>>>> extension: a MorphExtension (2543)
>>>>>>>>>>>> [eventHandler
>>>>>>>>>>>> = an
>>>>>>>>>>>> EventHandler] [other: (...etc...
>>>>>>>>>>>> borderWidth: 0
>>>>>>>>>>>> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
>>>>>>>>>>>> presenter: a Presenter (1246)
>>>>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>>>> cursor: 1
>>>>>>>>>>>> padding: 3
>>>>>>>>>>>> backgroundMorph: nil
>>>>>>>>>>>> isPartsBin: nil
>>>>>>>>>>>> autoLineLayout: false
>>>>>>>>>>>> indicateCursor: nil
>>>>>>>>>>>> resizeToFit: nil
>>>>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>>>> worldState: a WorldState
>>>>>>>>>>>> griddingOn: nil
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --- The full stack ---
>>>>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>>>>> [] in RemoteString>>text
>>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>>> RemoteString>>text
>>>>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>>>>> CompiledMethod>>methodNode
>>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
>>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
>>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
>>>>>>>>>>>> CompiledMethod>>debuggerMap
>>>>>>>>>>>> OTClosureContextNode>>selection
>>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
>>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
>>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
>>>>>>>>>>>> MessageSend>>valueWithArguments:
>>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
>>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
>>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>>> [] in OBAnnouncer>>announce:
>>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> IdentityDictionary(Set)>>do:
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>>> OBAnnouncer>>announce:
>>>>>>>>>>>> OBColumnPanel>>jumpTo:
>>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
>>>>>>>>>>>> OTDebugger class(OBBrowser
>>>>>>>>>>>> class)>>metaNode:root:selection:panels:
>>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
>>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
>>>>>>>>>>>> OTDebugger
>>>>>>>>>>>> class>>process:context:label:errorWasInUIProcess:
>>>>>>>>>>>> OTDebugger
>>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
>>>>>>>>>>>> [] in OTPreDebugNode>>debug:
>>>>>>>>>>>> WorldState>>runStepMethodsIn:
>>>>>>>>>>>> PasteUpMorph>>runStepMethods
>>>>>>>>>>>> - - - - - - - - - - - - - - -
>>>>>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>>>> '
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> www.tudorgirba.com
>>>>>>>>>>>>
>>>>>>>>>>>> "To lead is not to demand things, it is to make them
>>>>>>>>>>>> happen."
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/
>>>>>>>>>>>> pharo-
>>>>>>>>>>>> project
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>>>>>> project
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pharo-project mailing list
>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Pharo-project mailing list
>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pharo-project mailing list
>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>>> project
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pharo-project mailing list
>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>
>>>>>
>>>>> --
>>>>> www.tudorgirba.com
>>>>>
>>>>> "It's not how it is, it is how we see it."
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>> project
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
--
www.tudorgirba.com
"Some battles are better lost than fought."
May 22, 2009
Re: [Pharo-project] Sensor bug
by Mariano Martinez Peck
On Fri, May 22, 2009 at 5:16 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> Hi mike
>
> it seems that any of the Form methods using Sensor blocks the image.
> how do we fix that?
> I have a lecture monday and I wanted to have fun with that.
>
> Form exampleMagnify.
> Form exampleBorder
> None of the alphablending bitBlt examples work.
I could reproduce them.
I created the ticket: http://code.google.com/p/pharo/issues/detail?id=841
Cheers,
Mariano
>
>
> Clicking on any colored text in Form also blocks.
>
> Stef
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 22, 2009
[Pharo-project] Alien FFI & COM
by Carlos Crosetti
looking for pointers to a sample Alien FFi code calling a COM based DLL....
May 22, 2009
Re: [Pharo-project] Symbol>>value:value:
by Damien Pollet
Maybe an alternative would be to use Helvetia to write blocks in shorthand.
Currently, writing the whole [:each | each abs] is a bit of a pain, so
the much shorter #abs is nice. But what if there was [⦠abs], the
ellipsis meaning "it" or "the argument, duh" ?
Several instances of ⦠could be used in order:
[⦠foo: ⦠bar: â¦]
being equivalent to #foo:bar: value: x value: y value: z
or [:x :y :z | x foo: y bar: z]
Actually that problem exists in functional languages with partial
application, you can only apply the arguments in order, else you have
to name them (except with infix operators in Haskell, where (+2) is
(\x x+2) and (2+) is (\x 2+x). I was thinking that in OCaml, one could
write foo _ 42 to partially apply function foo to its second argument.
On Fri, May 22, 2009 at 13:47, Alexandre Bergel <alexandre(a)bergel.eu> wrote:
> I share the point made by Lukas. Symbol>>value:value: is very obscure.
> If we introduce Symbol>>value:value:, why not
> Symbol>>value:value:value: and so on?
>
> Alexandre
>
>
> On 21 May 2009, at 04:00, Stéphane Ducasse wrote:
>
>> I would be in favor of having value: value: on symbol and get rid of
>> value on Object
>> Because this is really cool to write #( 1 2 3) collect: #abs
>>
>>
>>
>> On May 20, 2009, at 4:01 PM, Tudor Girba wrote:
>>
>>> Hi,
>>>
>>> (I apologize for the length of this email, but I did not know how to
>>> write it shorter)
>>>
>>> My reasons for Symbol>>value: and similar selectors are as follows.
>>>
>>> A Symbol is already used for several things, like a key in an
>>> identity
>>> dictionary. But it is also used for parameterizing a mapping to a
>>> piece of behavior via a #symbol stored in a selector instance
>>> variable. Later on, this behavior is invoked as:
>>>
>>> receiver perform: selector.
>>>
>>> This is for example what happens in Morphic, and as a result I am
>>> forced to create a Model class for a custom Morph, even if the
>>> customization is minimal. This is a hurdle when you are in prototype
>>> mode. Instead I would like to have the possibility to prototype
>>> faster
>>> using blocks instead of creating a class.
>>>
>>> This is possible right now for unary methods when the framework does
>>> not directly do a perform:, but instead it does:
>>>
>>> selector value: receiver.
>>>
>>> Ideally, we could have in the entire image only one place in which
>>> perform: is called explicitly: in the Symbol>>value:. In this way, I
>>> will be able to pass a block everywhere a unary method is now used.
>>> This is something we do when we want to use Smalltalk for scripting
>>> (Mondrian and Glamour do that)
>>>
>>> The same case goes for Symbol>>value:value: . These two methods would
>>> already cover the large majority of performs, but I would argue for
>>> adding all possibilities of evaluating blocks and of performing
>>> messages.
>>>
>>> If you are asking what do Symbol have to do with blocks from a
>>> conceptual point of view, I will answer that when the Symbol is used
>>> as a selector, it does nothing else but point to a piece of behavior.
>>> Given that a Block does a similar thing, you can as well treat them
>>> in
>>> a polymorphic fashion.
>>>
>>> The only question that remains in my mind is: does a modification
>>> like
>>> this has the possibility of harming? I am not aware of a case in
>>> which
>>> it is harmful, but who knows.
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 20 May 2009, at 15:27, Stéphane Ducasse wrote:
>>>
>>>> value from Object and value: from Symbol are different
>>>> with value: on Symbol you can do
>>>>
>>>> self collect: #abs
>>>>
>>>> :)
>>>>
>>>> On May 20, 2009, at 2:48 PM, Gabriel Cotelli wrote:
>>>>
>>>>> +1 to the removal of value: from Symbol....
>>>>>
>>>>> On Wed, May 20, 2009 at 3:18 AM, Lukas Renggli <renggli(a)gmail.com>
>>>>> wrote:
>>>>>> Given that in Pharo we have Symbol>>value:, are there any reasons
>>>>> not
>>>>>> to have also
>>>>>>
>>>>>> Symbol>>value: anObject value: anotherObject
>>>>>> Â Â ^ anObject perform: self with: anotherObject
>>>>>
>>>>> While Symbol>>#value: is at the border of being readable,
>>>>> Symbol>>#value:value: is even worse. It is not immediately obvious
>>>>> what it does. The order of receiver and arguments is hardcoded and
>>>>> thus the construct cannot be applied in most cases without
>>>>> rewriting
>>>>> the code. Fixed arguments cannot be given.
>>>>>
>>>>> Instead of adding new #value: variants, we should rather try to
>>>>> remove
>>>>> Object>>#value which is a real nightmare ;-)
>>>>>
>>>>> Cheers,
>>>>> Lukas
>>>>>
>>>>> --
>>>>> Lukas Renggli
>>>>> http://www.lukas-renggli.ch
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project(a)lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "Problem solving efficiency grows with the abstractness level of
>>> problem understanding."
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet
May 22, 2009
Re: [Pharo-project] call for hypercool fonts configuration
by Rob Rothwell
flash menu?
Rob
On Fri, May 22, 2009 at 11:33 AM, Stéphane Ducasse <
stephane.ducasse(a)inria.fr> wrote:
> I found the flash menu :)
> and this is cool
>
> Stef
>
> On May 22, 2009, at 4:53 PM, Steve Wirts wrote:
>
> > I like Arial, and I think it's a very common font available on most
> > platforms.....
> >
> > | aStandardFont aBoldFont |
> >
> >
> > aStandardFont := LogicalFont familyName: 'Arial' pointSize: 9
> > stretchValue: 5 weightValue: 400 slantValue: 0.
> > aBoldFont := LogicalFont familyName: 'Arial' pointSize: 9
> > stretchValue: 5 weightValue: 700 slantValue: 0.
> >
> > Preferences setWindowTitleFontTo: aBoldFont.
> > Preferences setEToysTitleFontTo: aBoldFont.
> > Preferences setFlapsFontTo: aBoldFont.
> > Preferences setBalloonHelpFontTo: aStandardFont.
> > Preferences setButtonFontTo: aStandardFont.
> > Preferences setCodeFontTo: aStandardFont.
> > Preferences setEToysFontTo: aStandardFont.
> > Preferences setHaloLabelFontTo: aStandardFont.
> > Preferences setListFontTo: aStandardFont.
> > Preferences setMenuFontTo: aStandardFont.
> > Preferences setPaintBoxButtonFontTo: aStandardFont.
> > Preferences setSystemFontTo: aStandardFont.
> >
> >
> > On Fri, May 22, 2009 at 9:52 AM, Stéphane Ducasse <
> stephane.ducasse(a)inria.fr
> > > wrote:
> > What you do not like OBPackageAdaptor... Great Squeakish ui.
> >
> > Stef
> >
> > On May 22, 2009, at 3:38 PM, Adrian Lienhard wrote:
> >
> > >
> > > On May 22, 2009, at 14:19 , Tudor Girba wrote:
> > >
> > >> I certainly will not try to enforce it on anybody :).
> > >>
> > >> The reason why I used condensed bold for the title and menu is that
> > >> because we have so many of them both windows and menus, it is
> > >> difficult to identify them. So, I want to quickly spot the title
> > when
> > >> hovering over the tabs at the bottom which is not accomplishable.
> > >
> > > Then we should probably fix that the label of the tab shows what you
> > > need to know (I assume the class name). Currently, the class name is
> > > prefixed with "System Browser: ", which uses up all the space as
> > soon
> > > as one has several open windows. I would just remove "System
> > Browser:
> > > " in the window title and tab label and only print the class name.
> > > Would that help?
> > >
> > > Adrian
> > >
> > >> As
> > >> for the menus, I just find them easier to grasp in this way.
> > >>
> > >> Anyway, I added this script together with a version for demos
> > (larger
> > >> font size) here:
> > >>
> > >> MCHttpRepository
> > >> location: 'http://www.squeaksource.com/setup'
> > >> user: ''
> > >> password: ''
> > >>
> > >> Cheers,
> > >> Doru
> > >>
> > >>
> > >> On 22 May 2009, at 13:20, Adrian Lienhard wrote:
> > >>
> > >>> gaah, these fat menus and title fonts look awful to me! ;)
> > >>> Adrian
> > >>>
> > >>> On May 22, 2009, at 12:48 , Stéphane Ducasse wrote:
> > >>>
> > >>>> :)
> > >>>> looks cool to me. thanks doru.
> > >>>>
> > >>>> <Picture 7.pdf><Picture 6.pdf>
> > >>>> On May 22, 2009, at 12:24 PM, Tudor Girba wrote:
> > >>>>
> > >>>>> Thanks a lot, that worked fine.
> > >>>>>
> > >>>>> So, I list below my settings. I use Helvetica Neue Condensed
> > Bold
> > >>>>> for
> > >>>>> menus and window title. Because I use it there, I also use
> > >>>>> Helvetica
> > >>>>> Neue regular for the rest of the items, except for the code
> > >>>>> where I
> > >>>>> use Monaco:
> > >>>>>
> > >>>>> menuFont := LogicalFont
> > >>>>> familyName: 'Helvetica Neue'
> > >>>>> pointSize: 9
> > >>>>> stretchValue: (LogicalFont stretchCondensed)
> > >>>>> weightValue: (LogicalFont weightBold)
> > >>>>> slantValue: (LogicalFont slantNormal).
> > >>>>> titleFont := LogicalFont
> > >>>>> familyName: 'Helvetica Neue'
> > >>>>> pointSize: 14
> > >>>>> stretchValue: (LogicalFont stretchCondensed)
> > >>>>> weightValue: (LogicalFont weightBold)
> > >>>>> slantValue: (LogicalFont slantNormal).
> > >>>>> codeFont := LogicalFont familyName: 'Monaco' pointSize: 8.
> > >>>>> defaultFont := LogicalFont familyName: 'Helvetica Neue'
> > pointSize:
> > >>>>> 9.
> > >>>>> Preferences setSystemFontTo: defaultFont.
> > >>>>> Preferences setListFontTo: defaultFont.
> > >>>>> Preferences setFlapsFontTo: menuFont.
> > >>>>> Preferences setHaloLabelFontTo: defaultFont.
> > >>>>> Preferences setMenuFontTo: menuFont.
> > >>>>> Preferences setWindowTitleFontTo: titleFont.
> > >>>>> Preferences setBalloonHelpFontTo: defaultFont.
> > >>>>> Preferences setCodeFontTo: codeFont.
> > >>>>> Preferences setButtonFontTo: defaultFont.
> > >>>>>
> > >>>>>
> > >>>>> Cheers,
> > >>>>> Doru
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> On 22 May 2009, at 11:05, Andrew Tween wrote:
> > >>>>>
> > >>>>>> Hi
> > >>>>>>
> > >>>>>>
> > >>>>>>> From: girba(a)iam.unibe.ch
> > >>>>>>> To: Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>> Date: Fri, 22 May 2009 10:19:44 +0200
> > >>>>>>> Subject: Re: [Pharo-project] call for hypercool fonts
> > >>>>>>> configuration
> > >>>>>>>
> > >>>>>>> Hi,
> > >>>>>>>
> > >>>>>>> I would like to give my script, but I do not know how to
> > specify
> > >>>>>> in a
> > >>>>>>> script that I want 'Helvetica Neue' - 'Condensed Bold'. Can
> > >>>>>>> anyone
> > >>>>>> help?
> > >>>>>>
> > >>>>>>
> > >>>>>> codeFont := LogicalFont
> > >>>>>> familyName: 'Helvetica Neue'
> > >>>>>> pointSize: 9
> > >>>>>> stretchValue: (LogicalFont stretchCondensed)
> > >>>>>> weightValue: (LogicalFont weightBold)
> > >>>>>> slantValue: (LogicalFont slantNormal).
> > >>>>>> Preferences setCodeFontTo: codeFont.
> > >>>>>>
> > >>>>>> Cheers,
> > >>>>>> Andy
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>>
> > >>>>>>> Cheers,
> > >>>>>>> Doru
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> On 22 May 2009, at 09:56, Adrian Lienhard wrote:
> > >>>>>>>
> > >>>>>>>> Hm, they look perfect on my machine. I just took a 10310
> > Pharo
> > >>>>>> core
> > >>>>>>>> and run the script I posted.
> > >>>>>>>>
> > >>>>>>>> Do you have the BitBlt plugin added to the VM?
> > >>>>>>>> Are the DejaVu fonts blurry as well? Can you post a
> > screenshot?
> > >>>>>>>>
> > >>>>>>>> Adrian
> > >>>>>>>>
> > >>>>>>>> On May 21, 2009, at 23:30 , Stéphane Ducasse wrote:
> > >>>>>>>>
> > >>>>>>>>> this is strange because I get a blurry result.
> > >>>>>>>>> Should I have a specific package loaded: I tried with the
> > >>>>>> 10309dev
> > >>>>>>>>> and
> > >>>>>>>>> the VM has the FT2plugin
> > >>>>>>>>>
> > >>>>>>>>> Stef
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> On May 21, 2009, at 10:50 PM, Adrian Lienhard wrote:
> > >>>>>>>>>
> > >>>>>>>>>> On Mac, I like the following "special" configuration with
> > >>>>>>>>>> Lucida
> > >>>>>>>>>> Grande and Monaco:
> > >>>>>>>>>>
> > >>>>>>>>>> font := LogicalFont familyName: 'Lucida Grande' pointSize:
> > >>>>>>>>>> 10.
> > >>>>>>>>>> codeFont := LogicalFont familyName: 'Monaco' pointSize: 9.
> > >>>>>>>>>> codeFont realFont instVarNamed: 'cachedAscent' put: 12.
> > >>>>>>>>>> codeFont realFont instVarNamed: 'cachedHeight' put: 15.
> > >>>>>>>>>> titleFont := LogicalFont familyName: 'Lucida Grande'
> > >>>>>> pointSize: 10.
> > >>>>>>>>>>
> > >>>>>>>>>> Preferences setListFontTo: font.
> > >>>>>>>>>> Preferences setMenuFontTo: font.
> > >>>>>>>>>> Preferences setCodeFontTo: codeFont.
> > >>>>>>>>>> Preferences setButtonFontTo: font.
> > >>>>>>>>>> Preferences setSystemFontTo: font.
> > >>>>>>>>>> Preferences setWindowTitleFontTo: titleFont.
> > >>>>>>>>>>
> > >>>>>>>>>> Note, I manually tweak the font description of Monaco to
> > >>>>>> decrease
> > >>>>>>>>>> the
> > >>>>>>>>>> line height (don't know why it is that high by default).
> > With
> > >>>>>> the
> > >>>>>>>>>> above, it looks more like in TextMate for example.
> > >>>>>>>>>>
> > >>>>>>>>>> Adrian
> > >>>>>>>>>>
> > >>>>>>>>>> On May 21, 2009, at 10:55 , Hilaire Fernandes wrote:
> > >>>>>>>>>>
> > >>>>>>>>>>> Yes, anythinks related to look'nd feel and overal design
> > in
> > >>>>>> Pharo
> > >>>>>>>>>>> could help a lot to make people to LOVE Pharo or to RUN
> > >>>>>>>>>>> AWAY.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Regarding fonts, I found myself sharing the point
> > previously
> > >>>>>>>>>>> expressed there:
> > >>>>>>>>>>> -Dejavu Sans for all but code
> > >>>>>>>>>>> -Code with Dedavu mono
> > >>>>>>>>>>>
> > >>>>>>>>>>> The issue about Freetype efficiency, related to submorph
> > >>>>>>>>>>> damage
> > >>>>>>>>>>> code
> > >>>>>>>>>>> related previsouly, is of equal importance.
> > >>>>>>>>>>>
> > >>>>>>>>>>> If the user experience is ungood -- slowness -- people
> > will
> > >>>>>>>>>>> RUN
> > >>>>>>>>>>> AWAY.
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>> 2009/5/21 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> > >>>>>>>>>>>> Hi guys
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> on one hand we should have a good default for fonts -
> > >>>>>>>>>>>> default
> > >>>>>>>>>>>> means
> > >>>>>>>>>>>> ok
> > >>>>>>>>>>>> for license and
> > >>>>>>>>>>>> work on platforms....
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Now I would LOVE to get a list of cool combination of
> > fonts
> > >>>>>> even
> > >>>>>>>>>>>> if
> > >>>>>>>>>>>> they are proprietary.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> So I hope that I woke the designer in you :)
> > >>>>>>>>>>>> Send snippets in the following forms that we can impress
> > >>>>>> girls :)
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> font := LogicalFont familyName: 'DejaVu Sans' pointSize:
> > >>>>>>>>>>>> 10.
> > >>>>>>>>>>>> codeFont := LogicalFont familyName: 'DejaVu Sans Mono'
> > >>>>>> pointSize:
> > >>>>>>>>>>>> 9.
> > >>>>>>>>>>>> titleFont := LogicalFont familyName: 'DejaVu Serif'
> > >>>>>> pointSize: 11.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Preferences setListFontTo: font.
> > >>>>>>>>>>>> Preferences setMenuFontTo: font.
> > >>>>>>>>>>>> Preferences setCodeFontTo: codeFont.
> > >>>>>>>>>>>> Preferences setButtonFontTo: font.
> > >>>>>>>>>>>> Preferences setSystemFontTo: font.
> > >>>>>>>>>>>> Preferences setWindowTitleFontTo: titleFont.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Stef
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> _______________________________________________
> > >>>>>>>>>>>> Pharo-project mailing list
> > >>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/
> > >>>>>>>>>>>> pharo-
> > >>>>>>>>>>>> project
> > >>>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>> --
> > >>>>>>>>>>> http://blog.ofset.org/hilaire
> > >>>>>>>>>>>
> > >>>>>>>>>>> _______________________________________________
> > >>>>>>>>>>> Pharo-project mailing list
> > >>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>>> _______________________________________________
> > >>>>>>>>>> Pharo-project mailing list
> > >>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> _______________________________________________
> > >>>>>>>>> Pharo-project mailing list
> > >>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>>>>
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> _______________________________________________
> > >>>>>>>> Pharo-project mailing list
> > >>>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> > >>>>>> project
> > >>>>>>>>
> > >>>>>>>
> > >>>>>>> --
> > >>>>>>> www.tudorgirba.com
> > >>>>>>>
> > >>>>>>> "Every thing has its own flow."
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> _______________________________________________
> > >>>>>>> Pharo-project mailing list
> > >>>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> > >>>>>>> project
> > >>>>>>
> > >>>>>>
> > >>>>>> " Upgrade to Internet Explorer 8 Optimised for MSN. " Download
> > >>>>>> Now_______________________________________________
> > >>>>>> Pharo-project mailing list
> > >>>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> > >>>>>> project
> > >>>>>
> > >>>>> --
> > >>>>> www.tudorgirba.com
> > >>>>>
> > >>>>> "No matter how many recipes we'll know, we'll still value a
> > chef."
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> _______________________________________________
> > >>>>> Pharo-project mailing list
> > >>>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> > >>>>> project
> > >>>>>
> > >>>>
> > >>>> _______________________________________________
> > >>>> Pharo-project mailing list
> > >>>> Pharo-project(a)lists.gforge.inria.fr
> > >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> Pharo-project mailing list
> > >>> Pharo-project(a)lists.gforge.inria.fr
> > >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
> > project
> > >>>
> > >>
> > >> --
> > >> www.tudorgirba.com
> > >>
> > >> "In a world where everything is moving ever faster,
> > >> one might have better chances to win by moving slower."
> > >>
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> Pharo-project mailing list
> > >> Pharo-project(a)lists.gforge.inria.fr
> > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >
> > >
> > > _______________________________________________
> > > Pharo-project mailing list
> > > Pharo-project(a)lists.gforge.inria.fr
> > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 22, 2009
Re: [Pharo-project] call for hypercool fonts configuration
by Alexandre Bergel
I created a Monticello repositiory called PersonalSettings
Maybe you can put your script in it.
Alexandre
On 22 May 2009, at 08:19, Tudor Girba wrote:
> I certainly will not try to enforce it on anybody :).
>
> The reason why I used condensed bold for the title and menu is that
> because we have so many of them both windows and menus, it is
> difficult to identify them. So, I want to quickly spot the title when
> hovering over the tabs at the bottom which is not accomplishable. As
> for the menus, I just find them easier to grasp in this way.
>
> Anyway, I added this script together with a version for demos (larger
> font size) here:
>
> MCHttpRepository
> location: 'http://www.squeaksource.com/setup'
> user: ''
> password: ''
>
> Cheers,
> Doru
>
>
> On 22 May 2009, at 13:20, Adrian Lienhard wrote:
>
>> gaah, these fat menus and title fonts look awful to me! ;)
>> Adrian
>>
>> On May 22, 2009, at 12:48 , Stéphane Ducasse wrote:
>>
>>> :)
>>> looks cool to me. thanks doru.
>>>
>>> <Picture 7.pdf><Picture 6.pdf>
>>> On May 22, 2009, at 12:24 PM, Tudor Girba wrote:
>>>
>>>> Thanks a lot, that worked fine.
>>>>
>>>> So, I list below my settings. I use Helvetica Neue Condensed Bold
>>>> for
>>>> menus and window title. Because I use it there, I also use
>>>> Helvetica
>>>> Neue regular for the rest of the items, except for the code where I
>>>> use Monaco:
>>>>
>>>> menuFont := LogicalFont
>>>> familyName: 'Helvetica Neue'
>>>> pointSize: 9
>>>> stretchValue: (LogicalFont stretchCondensed)
>>>> weightValue: (LogicalFont weightBold)
>>>> slantValue: (LogicalFont slantNormal).
>>>> titleFont := LogicalFont
>>>> familyName: 'Helvetica Neue'
>>>> pointSize: 14
>>>> stretchValue: (LogicalFont stretchCondensed)
>>>> weightValue: (LogicalFont weightBold)
>>>> slantValue: (LogicalFont slantNormal).
>>>> codeFont := LogicalFont familyName: 'Monaco' pointSize: 8.
>>>> defaultFont := LogicalFont familyName: 'Helvetica Neue' pointSize:
>>>> 9.
>>>> Preferences setSystemFontTo: defaultFont.
>>>> Preferences setListFontTo: defaultFont.
>>>> Preferences setFlapsFontTo: menuFont.
>>>> Preferences setHaloLabelFontTo: defaultFont.
>>>> Preferences setMenuFontTo: menuFont.
>>>> Preferences setWindowTitleFontTo: titleFont.
>>>> Preferences setBalloonHelpFontTo: defaultFont.
>>>> Preferences setCodeFontTo: codeFont.
>>>> Preferences setButtonFontTo: defaultFont.
>>>>
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>>
>>>> On 22 May 2009, at 11:05, Andrew Tween wrote:
>>>>
>>>>> Hi
>>>>>
>>>>>
>>>>>> From: girba(a)iam.unibe.ch
>>>>>> To: Pharo-project(a)lists.gforge.inria.fr
>>>>>> Date: Fri, 22 May 2009 10:19:44 +0200
>>>>>> Subject: Re: [Pharo-project] call for hypercool fonts
>>>>>> configuration
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I would like to give my script, but I do not know how to specify
>>>>> in a
>>>>>> script that I want 'Helvetica Neue' - 'Condensed Bold'. Can
>>>>>> anyone
>>>>> help?
>>>>>
>>>>>
>>>>> codeFont := LogicalFont
>>>>> familyName: 'Helvetica Neue'
>>>>> pointSize: 9
>>>>> stretchValue: (LogicalFont stretchCondensed)
>>>>> weightValue: (LogicalFont weightBold)
>>>>> slantValue: (LogicalFont slantNormal).
>>>>> Preferences setCodeFontTo: codeFont.
>>>>>
>>>>> Cheers,
>>>>> Andy
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>> Doru
>>>>>>
>>>>>>
>>>>>> On 22 May 2009, at 09:56, Adrian Lienhard wrote:
>>>>>>
>>>>>>> Hm, they look perfect on my machine. I just took a 10310 Pharo
>>>>> core
>>>>>>> and run the script I posted.
>>>>>>>
>>>>>>> Do you have the BitBlt plugin added to the VM?
>>>>>>> Are the DejaVu fonts blurry as well? Can you post a screenshot?
>>>>>>>
>>>>>>> Adrian
>>>>>>>
>>>>>>> On May 21, 2009, at 23:30 , Stéphane Ducasse wrote:
>>>>>>>
>>>>>>>> this is strange because I get a blurry result.
>>>>>>>> Should I have a specific package loaded: I tried with the
>>>>> 10309dev
>>>>>>>> and
>>>>>>>> the VM has the FT2plugin
>>>>>>>>
>>>>>>>> Stef
>>>>>>>>
>>>>>>>>
>>>>>>>> On May 21, 2009, at 10:50 PM, Adrian Lienhard wrote:
>>>>>>>>
>>>>>>>>> On Mac, I like the following "special" configuration with
>>>>>>>>> Lucida
>>>>>>>>> Grande and Monaco:
>>>>>>>>>
>>>>>>>>> font := LogicalFont familyName: 'Lucida Grande' pointSize: 10.
>>>>>>>>> codeFont := LogicalFont familyName: 'Monaco' pointSize: 9.
>>>>>>>>> codeFont realFont instVarNamed: 'cachedAscent' put: 12.
>>>>>>>>> codeFont realFont instVarNamed: 'cachedHeight' put: 15.
>>>>>>>>> titleFont := LogicalFont familyName: 'Lucida Grande'
>>>>> pointSize: 10.
>>>>>>>>>
>>>>>>>>> Preferences setListFontTo: font.
>>>>>>>>> Preferences setMenuFontTo: font.
>>>>>>>>> Preferences setCodeFontTo: codeFont.
>>>>>>>>> Preferences setButtonFontTo: font.
>>>>>>>>> Preferences setSystemFontTo: font.
>>>>>>>>> Preferences setWindowTitleFontTo: titleFont.
>>>>>>>>>
>>>>>>>>> Note, I manually tweak the font description of Monaco to
>>>>> decrease
>>>>>>>>> the
>>>>>>>>> line height (don't know why it is that high by default). With
>>>>> the
>>>>>>>>> above, it looks more like in TextMate for example.
>>>>>>>>>
>>>>>>>>> Adrian
>>>>>>>>>
>>>>>>>>> On May 21, 2009, at 10:55 , Hilaire Fernandes wrote:
>>>>>>>>>
>>>>>>>>>> Yes, anythinks related to look'nd feel and overal design in
>>>>> Pharo
>>>>>>>>>> could help a lot to make people to LOVE Pharo or to RUN AWAY.
>>>>>>>>>>
>>>>>>>>>> Regarding fonts, I found myself sharing the point previously
>>>>>>>>>> expressed there:
>>>>>>>>>> -Dejavu Sans for all but code
>>>>>>>>>> -Code with Dedavu mono
>>>>>>>>>>
>>>>>>>>>> The issue about Freetype efficiency, related to submorph
>>>>>>>>>> damage
>>>>>>>>>> code
>>>>>>>>>> related previsouly, is of equal importance.
>>>>>>>>>>
>>>>>>>>>> If the user experience is ungood -- slowness -- people will
>>>>>>>>>> RUN
>>>>>>>>>> AWAY.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/5/21 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>>>>>> Hi guys
>>>>>>>>>>>
>>>>>>>>>>> on one hand we should have a good default for fonts -
>>>>>>>>>>> default
>>>>>>>>>>> means
>>>>>>>>>>> ok
>>>>>>>>>>> for license and
>>>>>>>>>>> work on platforms....
>>>>>>>>>>>
>>>>>>>>>>> Now I would LOVE to get a list of cool combination of fonts
>>>>> even
>>>>>>>>>>> if
>>>>>>>>>>> they are proprietary.
>>>>>>>>>>>
>>>>>>>>>>> So I hope that I woke the designer in you :)
>>>>>>>>>>> Send snippets in the following forms that we can impress
>>>>> girls :)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> font := LogicalFont familyName: 'DejaVu Sans' pointSize: 10.
>>>>>>>>>>> codeFont := LogicalFont familyName: 'DejaVu Sans Mono'
>>>>> pointSize:
>>>>>>>>>>> 9.
>>>>>>>>>>> titleFont := LogicalFont familyName: 'DejaVu Serif'
>>>>> pointSize: 11.
>>>>>>>>>>>
>>>>>>>>>>> Preferences setListFontTo: font.
>>>>>>>>>>> Preferences setMenuFontTo: font.
>>>>>>>>>>> Preferences setCodeFontTo: codeFont.
>>>>>>>>>>> Preferences setButtonFontTo: font.
>>>>>>>>>>> Preferences setSystemFontTo: font.
>>>>>>>>>>> Preferences setWindowTitleFontTo: titleFont.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Stef
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>>>>>>> project
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> http://blog.ofset.org/hilaire
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pharo-project mailing list
>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Pharo-project mailing list
>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pharo-project mailing list
>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>> project
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> www.tudorgirba.com
>>>>>>
>>>>>> "Every thing has its own flow."
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pharo-project mailing list
>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>> project
>>>>>
>>>>>
>>>>> " Upgrade to Internet Explorer 8 Optimised for MSN. " Download
>>>>> Now_______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>> project
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "No matter how many recipes we'll know, we'll still value a chef."
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project(a)lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> --
> www.tudorgirba.com
>
> "In a world where everything is moving ever faster,
> one might have better chances to win by moving slower."
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
May 22, 2009
Re: [Pharo-project] morph view hierarchy explorer
by Steve Wirts
it's there now.
Issue 840 <http://code.google.com/p/pharo/issues/detail?id=840>:
MorphViewHierarchyBrowser
code â¹ Prev<http://code.google.com/p/pharo/issues/detail?can=6&colspec=ID%20Type%20Stat…>93
of 93
1 person starred this issue and may be notified of changes.
On Fri, May 22, 2009 at 2:15 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> Good! :)
> But really one day we will have to fix all the classes without comments.
>
> can you please add it to the bugtracker.
> I will harvest it and put it in the same package as the inspector.
>
> Stef
>
> On May 22, 2009, at 6:44 PM, Steve Wirts wrote:
>
> > Stef,
> >
> > I've renamed a few methods for clarity, utilized Morph>>flashBounds
> > method for flashing, added a class comment, and 2 examples.
> > is it at least a C- instead of D+ now?
> > :)
> >
> > let me know what else I should do?
> >
> >
> > On Fri, May 22, 2009 at 11:27 AM, Stéphane Ducasse <
> stephane.ducasse(a)inria.fr
> > > wrote:
> > Hi steven
> >
> > at the minimum you should comment the class and have some examples
> > methods that illustrate its purpose. ;)
> > and it would be to be able to invoke it from the inspector/explorer?
> > Then it would be good that the comments tell the user a little
> > scenario so that we can learn and improve from
> > it so far I had to read the cs file to see that you changed the debug
> > menu and
> > But for example I do not see how I can get one particular object to
> > flash
> >
> >
> >
> > On May 22, 2009, at 5:14 PM, Steve Wirts wrote:
> >
> > > I've enhanced a few things to make use of existing tools as per an
> > > early thread.
> > >
> > > Is there any chance this simple enhancement can get integrated into
> > > the main
> > > stream of developement? It really is quite usefull in understanding
> > > a complex
> > > morph composition.
> > > <
> > > ViewHierarchyExplorer
> > > .st>_______________________________________________
> > > Pharo-project mailing list
> > > Pharo-project(a)lists.gforge.inria.fr
> > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > <
> > ViewHierarchyExplorer
> > .st>_______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 22, 2009
[Pharo-project] Sensor bug
by Stéphane Ducasse
Hi mike
it seems that any of the Form methods using Sensor blocks the image.
how do we fix that?
I have a lecture monday and I wanted to have fun with that.
Form exampleMagnify.
Form exampleBorder
None of the alphablending bitBlt examples work.
Clicking on any colored text in Form also blocks.
Stef
May 22, 2009