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] invalid utf8 input detected
by Nicolas Cellier
Hmm, isn't it http://bugs.squeak.org/view.php?id=5996 ?
Nicolas
2009/5/19 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
> 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
>>>
>>
>
May 19, 2009
Re: [Pharo-project] invalid utf8 input detected
by Nicolas Cellier
>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
>>
>
May 19, 2009
Re: [Pharo-project] vm exits unexpectedly
by Alain Plantec
Mariano Martinez Peck a écrit :
> But is this standard vm? Did you download it from
> http://squeakvm.org/unix/ ? is an exupery vm ? did you install it
> using apt-get ?
>
> Anyway, it seems to be already reported. See:
>
> - http://code.google.com/p/pharo/issues/detail?id=794
> -
> http://www.mail-archive.com/pharo-project@lists.gforge.inria.fr/msg08390.ht…
no, the problem reported by this issue concerns the new network
implementation.
Cheers
Alain
>
> Cheers,
>
> Mariano
>
> 2009/5/19 Steve Wirts <stevewirts(a)gmail.com <mailto:stevewirts@gmail.com>>
>
> does this help (version.c file in the directory)...
>
> int vm_serial= 32;
> char *vm_date= "Wed Apr 8 19:55:11 BST 2009";
> char *cc_version= "gcc 4.1.2";
> char *ux_version= "Linux localhost 2.6.24.4 #9 SMP Sat Jul 19
> 21:31:15 BST 2008 i686 Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz
> GenuineIntel GNU/Linux";
>
>
>
> 2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com
> <mailto:marianopeck@gmail.com>>
>
> What exact VM are you using ?
>
> 2009/5/19 Steve Wirts <stevewirts(a)gmail.com
> <mailto:stevewirts@gmail.com>>
>
> My VM has been exiting frequently just recently.
> I'm on ubuntu 9.04, using the latest image available.
> It looks like the root cause is whenever a timestamp
> needs to be created.
>
> Anybody else have this issue?
>
> try this in a workspace...
>
> "UUID new".
>
> It seems to be from the primitive call within UUID
> initialization that
> causes it?
>
> Thanks
> Steve
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> <mailto:Pharo-project@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
> <mailto:Pharo-project@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
> <mailto:Pharo-project@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 19, 2009
Re: [Pharo-project] vm exits unexpectedly
by Alain Plantec
This problem seems to be related to the UUIDPlugin on ubuntu 9.04.
It has already been reported to Bryce Kampjes.
A work-around is to remove the UUIDPlugin :
just rename the build/UUIDPlugin as build/UUIDPlugin-not-used
and it should run fine.
Cheers
Alain
Steve Wirts a écrit :
> My VM has been exiting frequently just recently.
> I'm on ubuntu 9.04, using the latest image available.
> It looks like the root cause is whenever a timestamp
> needs to be created.
>
> Anybody else have this issue?
>
> try this in a workspace...
>
> "UUID new".
>
> It seems to be from the primitive call within UUID initialization that
> causes it?
>
> Thanks
> Steve
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
May 19, 2009
Re: [Pharo-project] vm exits unexpectedly
by Mariano Martinez Peck
But is this standard vm? Did you download it from
http://squeakvm.org/unix/? is an exupery vm ? did you install it using
apt-get ?
Anyway, it seems to be already reported. See:
- http://code.google.com/p/pharo/issues/detail?id=794
-
http://www.mail-archive.com/pharo-project@lists.gforge.inria.fr/msg08390.ht…
Cheers,
Mariano
2009/5/19 Steve Wirts <stevewirts(a)gmail.com>
> does this help (version.c file in the directory)...
>
> int vm_serial= 32;
> char *vm_date= "Wed Apr 8 19:55:11 BST 2009";
> char *cc_version= "gcc 4.1.2";
> char *ux_version= "Linux localhost 2.6.24.4 #9 SMP Sat Jul 19 21:31:15 BST
> 2008 i686 Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz GenuineIntel
> GNU/Linux";
>
>
>
> 2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>
>
> What exact VM are you using ?
>>
>> 2009/5/19 Steve Wirts <stevewirts(a)gmail.com>
>>
>>> My VM has been exiting frequently just recently.
>>> I'm on ubuntu 9.04, using the latest image available.
>>> It looks like the root cause is whenever a timestamp
>>> needs to be created.
>>>
>>> Anybody else have this issue?
>>>
>>> try this in a workspace...
>>>
>>> "UUID new".
>>>
>>> It seems to be from the primitive call within UUID initialization that
>>> causes it?
>>>
>>> Thanks
>>> Steve
>>>
>>>
>>> _______________________________________________
>>> 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 19, 2009
Re: [Pharo-project] vm exits unexpectedly
by Steve Wirts
does this help (version.c file in the directory)...
int vm_serial= 32;
char *vm_date= "Wed Apr 8 19:55:11 BST 2009";
char *cc_version= "gcc 4.1.2";
char *ux_version= "Linux localhost 2.6.24.4 #9 SMP Sat Jul 19 21:31:15 BST
2008 i686 Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz GenuineIntel
GNU/Linux";
2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>
> What exact VM are you using ?
>
> 2009/5/19 Steve Wirts <stevewirts(a)gmail.com>
>
>> My VM has been exiting frequently just recently.
>> I'm on ubuntu 9.04, using the latest image available.
>> It looks like the root cause is whenever a timestamp
>> needs to be created.
>>
>> Anybody else have this issue?
>>
>> try this in a workspace...
>>
>> "UUID new".
>>
>> It seems to be from the primitive call within UUID initialization that
>> causes it?
>>
>> Thanks
>> Steve
>>
>>
>> _______________________________________________
>> 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 19, 2009
Re: [Pharo-project] vm exits unexpectedly
by Mariano Martinez Peck
What exact VM are you using ?
2009/5/19 Steve Wirts <stevewirts(a)gmail.com>
> My VM has been exiting frequently just recently.
> I'm on ubuntu 9.04, using the latest image available.
> It looks like the root cause is whenever a timestamp
> needs to be created.
>
> Anybody else have this issue?
>
> try this in a workspace...
>
> "UUID new".
>
> It seems to be from the primitive call within UUID initialization that
> causes it?
>
> Thanks
> Steve
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 19, 2009
[Pharo-project] vm exits unexpectedly
by Steve Wirts
My VM has been exiting frequently just recently.
I'm on ubuntu 9.04, using the latest image available.
It looks like the root cause is whenever a timestamp
needs to be created.
Anybody else have this issue?
try this in a workspace...
"UUID new".
It seems to be from the primitive call within UUID initialization that
causes it?
Thanks
Steve
May 19, 2009
Re: [Pharo-project] Win32Setup - custom VM and app tutorial
by Mariano Martinez Peck
Excellent!!!! It works perfect! This will definitely help to pharo community
and new comers.
Really, an excellent job.
Another improvements:
1) when you go to "home" -> "all the programs" -> "pharo"
There are Pharo and Unistall. It would be nice to have another (I don't know
which name) that brings the popup to chose the image to use.
2) Have an Icon for the .image
3) Being able to double click over an image an open a SqueakVM with it.
As I am not a windows guy, perhaps I am saying crap haha.
Keep your good job.
Mariano
2009/5/19 Torsten Bergmann <astares(a)gmx.de>
> >Better hope noone installs to C:\!
>
> Hey - be a man and try it!
> No fear - the installer button is disabled then (already catched by NSIS).
>
> >it's probably a good idea to specify the files to delete specifically
>
> OK - would be a good style, I've updated the NSIS script.
>
> Since we now also have nice icons here more additions to the former
> tutorial:
>
> - a welcome.bmp on the left is shown
> - a header.bmp is shown on top
> - the icon for the install and VM is much better
> (incl. transparency and different icon sizes up to 256x256 for
> Vista, ...)
> - the setup allows to run pharo after installation
>
> Attached are the files necessary, just copy them to the "pharodist"
> directory and run the NSIS script.
>
> A new pharo Windows setup (setup_pharo_0.0.0.2.exe) is now
> available on
> http://gforge.inria.fr/frs/download.php/22311/setup_pharo_0.0.0.2.exe
>
> Thanks to all for making this possible - with the pharo distribution
> Squeak now really has stopped looking toyish.
> Only 10MB download for a complete world full of Smalltalk :)
>
> Have fun
> Torsten
> --
> Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate +
> Telefonanschluss für nur 17,95 Euro/mtl.!*
> http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 19, 2009
[Pharo-project] [ANN] ESUG Awards 2009
by Luc Fabresse
Dear Smalltalkers,
You are invited to submit your nice Smalltalk based software to the 6th ESUG
Innovation Technology Awards. The top 3 teams with the most
innovative software will receive, respectively, 500 Euros, 300 Euros and 200
Euros during an awards ceremony at the 17th International Smalltalk Joint
Conference 2009 in Brest, France.
No constraints are put on the software except that it should be
Smalltalk-based or Smalltalk-related and all flavours of Smalltalk are
accepted.
More details on the web:
http://www.esug.org/Conferences/2009/Innovation+Technology+Awards
The last year results:
http://www.esug.org/Conferences/2008/Innovation+Technology+Awards/Winners+a…
Luc
----
Luc Fabresse, PhD
Assistant-Professor in Computer Science
Ãcole des Mines de Douai - UR IA - France
Web Page: http://vst.ensm-douai.fr/research/ <http://vst.ensm-douai.fr/luc/>
May 19, 2009