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
May 2009
- 81 participants
- 1151 messages
Re: [Pharo-project] New Pharo based on core 10309 with antialiased fonts
by Damien Cassou
2009/5/19 Henrik Sperre Johansen <henrik.s.johansen(a)veloxit.no>:
> FreetypeFont rendering is alot slower than StrikeFont rendering.
> [...]
http://code.google.com/p/pharo/issues/detail?id=832
http://code.google.com/p/pharo/issues/detail?id=833
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
May 20, 2009
Re: [Pharo-project] Symbol>>value:value:
by Stéphane Ducasse
do you have a scenario for it?
And I agree with lukas about value on Object
Stef
On May 20, 2009, at 12:52 AM, Tudor Girba wrote:
> Hi,
>
> Given that in Pharo we have Symbol>>value:, are there any reasons not
> to have also
>
> Symbol>>value: anObject value: anotherObject
> ^ anObject perform: self with: anotherObject
>
> ?
>
> Cheers,
> Doru
>
>
> --
> www.tudorgirba.com
>
> "Yesterday is a fact.
> Tomorrow is a possibility.
> Today is a challenge."
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 20, 2009
Re: [Pharo-project] Symbol>>value:value:
by Lukas Renggli
> Given that in Pharo we have Symbol>>value:, are there any reasons not
> to have also
>
> Symbol>>value: anObject value: anotherObject
> Â Â Â Â ^ anObject perform: self with: anotherObject
While Symbol>>#value: is at the border of being readable,
Symbol>>#value:value: is even worse. It is not immediately obvious
what it does. The order of receiver and arguments is hardcoded and
thus the construct cannot be applied in most cases without rewriting
the code. Fixed arguments cannot be given.
Instead of adding new #value: variants, we should rather try to remove
Object>>#value which is a real nightmare ;-)
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
May 20, 2009
Re: [Pharo-project] Inspect it wrong shortcut
by Alexandr Batalshikov
On Windows XP evaluating "Preferences enable: #swapCOntrolAndAltKeys" and
changing any settings in section keyboard of Preference Browser no any
effects to any shortcuts.
/ Alexander.
2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>
>
>
> 2009/5/19 Alexandr Batalshikov <abatalshikov(a)gmail.com>
>
>> On Windows XP with pharo0.1-10309dev09.05.3.image:Alt+i -- run Inspect
>> Alt+Shift+i -- run Explore
>> Ctrl+i -- also run Explore
>>
>> and changing any setting in section "keyboard" in Preference Browser
>> no any effects for me.
>>
>
> Alexander: I created this ticket:
> http://code.google.com/p/pharo/issues/detail?id=829
>
> could you are your comments there ?
>
> Thanks
>
> Mariano
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 20, 2009
[Pharo-project] Symbol>>value:value:
by Tudor Girba
Hi,
Given that in Pharo we have Symbol>>value:, are there any reasons not
to have also
Symbol>>value: anObject value: anotherObject
^ anObject perform: self with: anotherObject
?
Cheers,
Doru
--
www.tudorgirba.com
"Yesterday is a fact.
Tomorrow is a possibility.
Today is a challenge."
May 19, 2009
Re: [Pharo-project] Tracing changes in MC (was: ThirtyTwoBitRegister methods removed)
by Michael Roberts
To be honest I think that is the wrong way around. I never need to
search for a method. I am normally in a debugger so have the method.
Just want to work out when it changed. However if the only way to
solve that is to write a top down search rather than a bottom up sort
of approach then go for it. It should be possible to spawn the search
from all the browsers.
Thanks mike
On Tuesday, May 19, 2009, Alexandre Bergel <alexandre(a)bergel.eu> wrote:
> the topic of the discussion is not in sync with the thread topic.
>
> My answer to Nicolas' was:
> Here is an idea:
> Â Â Â Â - Adding a button 'search' in a Monticello repository inspector (the
> one you get when opening a repository)
> Â Â Â Â - with a 'search' button, you can then enter a method location such
> as TextMorphEditor>>keystroke:
>     - the list of versions  that either added the method or removed it
> according to the ancestors.
>
> How does that sound? I can work on it.
>
> Cheers,
> Alexandre
>
>
> Begin forwarded message:
>
>> From: Michael Roberts <mike(a)mjr104.co.uk>
>> Date: 19 May 2009 19:06:13 CEDT
>> To: Pharo-project(a)lists.gforge.inria.fr
>> Subject: Re: [Pharo-project] ThirtyTwoBitRegister methods removed
>> Reply-To: Pharo-project(a)lists.gforge.inria.fr
>>
>> In general I would like to see a bit more envy tool like support in
>> mc. I have not checked out OT or newer mc versions to see what is
>> implemented. I would like the method vesions tool to map into a mc
>> version and to quickly go from the class to mc view. Can we do this
>> already? If not this would be really useful but I appreciate it has to
>> be built. Otherwise I too scratch my head trying to work out where all
>> the changes come in. I am not for a second proposing the envy model
>> but the tool was integrated nicely.
>> thanks mike
>>
>> On Tuesday, May 19, 2009, Mariano Martinez Peck
>> <marianopeck(a)gmail.com> wrote:
>>>
>>>
>>> On Tue, May 19, 2009 at 6:46 AM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com
>>> > wrote:
>>>
>>> To me, this raises a more general question.
>>> How can we trace a particular change in Pharo?
>>> Why when and where this change did occur? I know all is in the
>>> Monticello repository, but is there a quick and convenient way to
>>> answer such a question? I mean avoiding a manual scan of each and
>>> every Monticello version...
>>>
>>> Or is it logged in the ChangeSet? In this case, what hidden menu or
>>> code snippet will help tracking the change?
>>>
>>> Or should we use the issue tracker? Ideally, the reason for every
>>> change should be logged here. And every Monticello uploaded should
>>> refer to an issue. Even if this were strictly applied, not sure that
>>> is the way to retrieve information at such a detailed level.
>>>
>>> If none of these tools can provide an easy answer, then yes, requests
>>> on mailing lists, IRC, or internet search can provide a much
>>> efficient
>>> answer. But that's the signature a tool is lacking.
>>>
>>> I am agree. Actually, I thought to add in my email a generic
>>> question of that because I faced this problem several times and I
>>> didn't know what to do.
>>>
>>>
>>>
>>> I wish Mariano gets an answer, but an answer on the method would be
>>> more profitable to every one.
>>> No problem. Perhaps someone knows haha.
>>>
>>>
>>>
>>> Cheers
>>>
>>> Nicolas
>>>
>>> 2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>:
>>>> Hi folks. I noticed that this two methods were removed from
>>>> ThirtyTwoBitRegister:
>>>>
>>>> asByteArray
>>>> Â Â Â Â ^ ByteArray with: (low bitAnd: 16rFF) with: (low bitShift:
>>>> -8) with:
>>>> (hi bitAnd: 16rFF) with: (hi bitShift: -8)
>>>>
>>>>
>>>>
>>>> reverseLoadFrom: aByteArray at: index
>>>> Â Â Â Â Â "Load my 32-bit value from the four bytes of the given
>>>> ByteArraystarting at the given index. Consider the first byte to
>>>> contain the
>>>> mostsignificant bits of the word (i.e., use big-endian byte
>>>> ordering)."
>>>>
>>>> Â Â Â Â Â hi := ((aByteArray at: index + 3) bitShift: 8) +
>>>> ( aByteArray at:
>>>> index + 2).
>>>> Â Â Â Â Â low := ((aByteArray at: index + 1) bitShift: 8) +
>>>> ( aByteArray at:
>>>> index).
>>>>
>>>>
>>>>
>>>> I need them for Glorp. I looked but I didn't found a similar
>>>> message for
>>>> them. I don't think adding them as an extension is a good solution
>>>> here
>>>> since this seems to be very "internal". is there a reason of the
>>>> removing?
>>>> If not, could them be added again? If there are reason, which
>>>> should be the
>>>> best approach to fix this in mi case?
>>>>
>>>> I have no problem in commit them if you want.
>>>>
>>>> Thanks!
>>>>
>>>> Mariano
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
May 19, 2009
Re: [Pharo-project] New Pharo based on core 10309 with antialiased fonts
by Henrik Sperre Johansen
FreetypeFont rendering is alot slower than StrikeFont rendering.
There's surely some microoptimizations possible, but one big
(theoretical at least) macro-level enhancement is:
- Currently, morphs by default do not respect the damagerect when
rendering submorphs, instead clipping by its own clippingBounds. Which
means however small the damage to the window was, all submorphs WILL be
redrawn.
Attached is a changeset which changes this, instead intersecting the
Morphs clippingBounds with the Canvas' current clipRect.
Sadly, this will NOT improve typing performance by itself, as another
problem here is Morphs reporting waaaay too big damage rects in alot of
cases. (try evaluating (Preferences preferenceAt: #debugShowDamage)
preferenceValue: true, and see the damage reported by a single keypress...)
This has to be rectified on a Morph by Morph basis, as well as making
the displayOn: method use the clipRect intelligently (see
MultiNewParagraph >> displayOn:using:at: for an example of this ).
Personally, I'm not affected enough to fuel the passion to do this, but
if anyone are, I suspect the steps described above are the ones which
will yield the best results, performancewise.
So what's the changeset currently good for? (Non-fastForMorphic)resizing
of a simple morph that occludes only some of another SystemWindow's
submorphs should see some improvements. Resizing a window with nothing
below will probably suffer abit due to the extra operation/garbage from
the intersect: though.
I haven't had access to a slow enough machine to have visual
confirmation, nor any automated tests to test resizing performance, so
take it with a grain of salt as this is purely in theory :) (Or file it
in and do a quick visual check of the effects described above if you're
on a slow machine)
Cheers,
Henry
On 18.05.2009 16:08, Adrian Lienhard wrote:
> I also noticed the slow responsiveness (and I am on a quite fast
> machine).
> Adrian
>
> On May 18, 2009, at 15:57 , Schwab,Wilhelm K wrote:
>
>
>> Damien,
>>
>> In a word, WOW.
>>
>> Have you changed the desktop menus somehow? A left click now (I
>> _think_ this is new) gives me a find-window menu, and it takes a
>> right click to get the world menu, which looks different to me.
>> Wait - this might just be themes? I seleected Vistary and things
>> are back to "normal."
>>
>>
>> One snag: I find this image to very sluggish on typing. In fairness
>> I am running Ubuntu on an older machine that isn't the fastest, but
>> it is still far more sluggish than even my recent web image (10303),
>> and that (I think) has lost some speed too. Sorry to keep harping
>> on this, but I type pretty fast (enough to draw complaints in a
>> crowded room). Maybe there is so much noise because every third key
>> is the backspace :)
>>
>> The anti-aliased fonts are wonderful, but for me at least, snappy
>> response to the keyboard is more important. Having both would be
>> great!
>>
>> Bill
>>
>>
>>
>> ________________________________________
>> From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr
>> ] On Behalf Of Damien Cassou [damien.cassou(a)gmail.com]
>> Sent: Monday, May 18, 2009 8:02 AM
>> To: Pharo-project(a)lists.gforge.inria.fr
>> Subject: Re: [Pharo-project] New Pharo based on core 10309 with
>> antialiased fonts
>>
>> On Mon, May 18, 2009 at 1:51 PM, Adrian Lienhard<adi(a)netstyle.ch>
>> wrote:
>>
>>> I agree with Lukas, Bill, and Simon (that is, to change the default
>>> font to DejaVu Sans).
>>>
>> Ok, here is the new version. What do you think?
>>
>> font := LogicalFont familyName: 'DejaVu Sans' pointSize: 10.
>> codeFont := LogicalFont familyName: 'DejaVu Sans Mono' pointSize: 9.
>> titleFont := LogicalFont familyName: 'DejaVu Serif' pointSize: 11.
>>
>> Preferences setListFontTo: font.
>> Preferences setMenuFontTo: font.
>> Preferences setCodeFontTo: codeFont.
>> Preferences setButtonFontTo: font.
>> Preferences setSystemFontTo: font.
>> Preferences setWindowTitleFontTo: titleFont.
>>
>> --
>> Damien Cassou
>> http://damiencassou.seasidehosting.st
>>
>> "Lambdas are relegated to relative obscurity until Java makes them
>> popular by not having them." James Iry
>>
>>
>> _______________________________________________
>> 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] invalid utf8 input detected
by Nicolas Cellier
I opened http://code.google.com/p/pharo/issues/detail?id=830
I think other UTF-8 issues are different:
Two for FileBrowser :
http://code.google.com/p/pharo/issues/detail?id=370
http://code.google.com/p/pharo/issues/detail?id=513
One about VM crash :
http://code.google.com/p/pharo/issues/detail?id=744
Nicolas
2009/5/19 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> thanks for making progress on this front.
>
> On May 19, 2009, at 6:40 PM, Nicolas Cellier wrote:
>
>>> From what I see in a 10304, all these methods had a non ASCII
>> character in comment:
>>
>> {Object>>#doesNotUnderstand:.
>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
>> Utilities class>>#changeStampPerSe.
>> Utilities class>>#methodsWithInitials:} collect: [:e | (e
>> getSourceFromFile select: [:s | s charCode > 127]) asArray collect:
>> [:c | c charCode]]
>> #(#(160 160) #(172 143 172 143) #(183) #(246))
>> That is:
>>
>> an Array(a Text for ' ' a Text for '¬â¬â' a Text for '·' a
>> Text for 'ö')
>> First are non breaking space.
>> Last but ones are not rendered same in Squeak.
>>
>> These four methods are changed in:
>> - Kernel-stephane_ducasse.renggli.319.mcz
>> - System-Support-stephane_ducasse.20.mcz
>> If I merge 10305 manually, I get some decompiled code in the merge
>> window.
>> So there might be a problem already either in Monticello or in
>> the .mcz.
>> After the merge, there is decomipled code in the changes and no error
>> when executing above code.
>>
>> If I load instead of merging, then I also get the decompiled code in
>> the change log, so I can't reproduce completely the faulty behavior
>> (having an invalid utf-8 notifier), maybe because the process is no
>> the same when there are conflicts...
>>
>> If I extract .mcz contents, I can read contents from FileBrowser. But
>> it does not use an UTF-8 encoding...
>> I can't say if the encoding is macRoman or ISO8859L1 or CP1252 or
>> what, but what I can say is that the source.st is not UTF-8 encoded.
>>
>> So without searching further I guess here lies the problems: transfer
>> of raw bytes from non UTF-8 .mcz/source.st to the UTF-8 .changes
>> change-log...
>>
>> Every time we'll modify a method with a Character code > 127, we will
>> likely create an invalid UTF-8 bug or get some decompiled code, or
>> corrupt source code in extreme case...
>>
>> Could the Monticello / UTF-8 experts confirm my guess ?
>>
>> Nicolas
>>
>> 2009/5/17 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
>>> OK,
>>>
>>> {Object>>#doesNotUnderstand:.
>>> SystemNavigation>>#browseMethodsWhoseNamesContain:.
>>> Utilities class>>#changeStampPerSe.
>>> Utilities class>>#methodsWithInitials:} collect: [:e | e
>>> getSourceFromFile].
>>>
>>> does not fail for me, BUT all these sources look like
>>> decompileString.
>>> I guess this is dating from the condenseChanges that occured in
>>> #update10298
>>> Change log prior to this update should have the problem.
>>>
>>> Nicolas
>>>
>>> 2009/5/17 Tudor Girba <girba(a)iam.unibe.ch>:
>>>> Hi,
>>>>
>>>> I ran the snippet you sent on both 304cl and 306cl and I get the
>>>> following list:
>>>>
>>>> Object->#doesNotUnderstand:
>>>> SystemNavigation->#browseMethodsWhoseNamesContain:
>>>> Utilities class->#changeStampPerSe
>>>> Utilities class->#methodsWithInitials:
>>>>
>>>> Indeed, most of the annoyances are due to the
>>>> Object>>doesNotUnderstand: because when I get a DNU I am stuck
>>>> (and I
>>>> feel like in Java :)).
>>>>
>>>> I am not sure I understand if there is a fix to the problem.
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>>
>>>> On 17 May 2009, at 12:06, Nicolas Cellier wrote:
>>>>
>>>>> There's something weird... If you hit var (UndefinedObject)
>>>>> doesNotUnderstand: #value: that means there were a problem the
>>>>> first
>>>>> time.
>>>>>
>>>>> Unfortunately, due to bug in MethodContext tempNames, we don't know
>>>>> the class and selector guilty.
>>>>> From the set of selectors I can see this is Object.
>>>>> From the source file position, I cannot say anything because I do
>>>>> not
>>>>> have same change log history (sorry, own image).
>>>>>
>>>>> You could try
>>>>> (SourceFiles at: 2) readOnlyCopy position: 10007336; nextChunk
>>>>>
>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>> sorry for not checking either.
>>>>>> When I run this code I indeed do not have a problem on 10306cl
>>>>>>
>>>>>> stef
>>>>>>
>>>>>> On May 17, 2009, at 11:36 AM, Nicolas Cellier wrote:
>>>>>>
>>>>>>> Sure, a key stroke error, it's bar value:, not var value:,
>>>>>>> This @!* workspace takes it as global without a warning....
>>>>>>>
>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>>> Nicolas
>>>>>>>>
>>>>>>>> when I run your script on the license looking for image
>>>>>>>> I got using 10306cl
>>>>>>>>
>>>>>>>> I get the following error:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug 2006' [latest
>>>>>>>> update: #6747] Squeak VM 4.1.1b2
>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
>>>>>>>>
>>>>>>>> SecurityManager state:
>>>>>>>> Restricted: false
>>>>>>>> FileAccess: true
>>>>>>>> SocketAccess: true
>>>>>>>> Working Dir /Data/squeak4.0-relicenseTools/history
>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>>>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/
>>>>>>>> Internet/My
>>>>>>>> Squeak
>>>>>>>>
>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>> Receiver: [closure] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Arguments and temporary variables:
>>>>>>>> anArray: an Array('Error: Invalid utf8 input
>>>>>>>> detected' an
>>>>>>>> UTF8TextConverter)
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> startpc: 183
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> [] in BlockClosure>>ifError:
>>>>>>>> Receiver: [closure] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Arguments and temporary variables:
>>>>>>>> errorHandlerBlock: Error: Invalid utf8 input
>>>>>>>> detected
>>>>>>>> ex: [closure] in [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> startpc: 171
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>> Receiver: [closure] in BlockClosure>>ifError:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> anArray: an Array(Error: Invalid utf8 input
>>>>>>>> detected)
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: BlockClosure>>ifError:
>>>>>>>> startpc: 40
>>>>>>>> numArgs: 1
>>>>>>>>
>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> sender: BlockClosure>>ifError:
>>>>>>>> pc: 17
>>>>>>>> stackp: 3
>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>> closureOrNil: nil
>>>>>>>> receiver: [closure] in [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> Receiver: [closure] in
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> returnValue: nil
>>>>>>>> b: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext:
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> startpc: 90
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> exception: Error: Invalid utf8 input detected
>>>>>>>> val: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> sender: BlockClosure>>ifError:
>>>>>>>> pc: 17
>>>>>>>> stackp: 3
>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>> closureOrNil: nil
>>>>>>>> receiver: [closure] in [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>
>>>>>>>> Error(Exception)>>signal
>>>>>>>> Receiver: Error: Invalid utf8 input detected
>>>>>>>> Arguments and temporary variables:
>>>>>>>>
>>>>>>>> Receiver's instance variables:
>>>>>>>> messageText: 'Invalid utf8 input detected'
>>>>>>>> tag: nil
>>>>>>>> signalContext: Error(Exception)>>signal
>>>>>>>> handlerContext: BlockClosure>>on:do:
>>>>>>>> outerContext: nil
>>>>>>>>
>>>>>>>> Error(Exception)>>signal:
>>>>>>>> Receiver: Error: Invalid utf8 input detected
>>>>>>>> Arguments and temporary variables:
>>>>>>>> signalerText: 'Invalid utf8 input detected'
>>>>>>>> Receiver's instance variables:
>>>>>>>> messageText: 'Invalid utf8 input detected'
>>>>>>>> tag: nil
>>>>>>>> signalContext: Error(Exception)>>signal
>>>>>>>> handlerContext: BlockClosure>>on:do:
>>>>>>>> outerContext: nil
>>>>>>>>
>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aString: 'Invalid utf8 input detected'
>>>>>>>> Receiver's instance variables:
>>>>>>>> an UTF8TextConverter
>>>>>>>>
>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>> Arguments and temporary variables:
>>>>>>>>
>>>>>>>> Receiver's instance variables:
>>>>>>>> an UTF8TextConverter
>>>>>>>>
>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aStream: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>> character1: $
>>>>>>>> value1: 160
>>>>>>>> character2: Character tab
>>>>>>>> value2: 9
>>>>>>>> unicode: nil
>>>>>>>> character3: Character tab
>>>>>>>> value3: 9
>>>>>>>> character4: nil
>>>>>>>> value4: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> an UTF8TextConverter
>>>>>>>>
>>>>>>>> MultiByteFileStream>>next
>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>> Arguments and temporary variables:
>>>>>>>> char: nil
>>>>>>>> secondChar: nil
>>>>>>>> state: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>>
>>>>>>>>
>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>> Arguments and temporary variables:
>>>>>>>> terminator: $!
>>>>>>>> out: a WriteStream 'doesNotUnderstand: aMessage
>>>>>>>> "Handle the fact that there ...etc...
>>>>>>>> ch: Character cr
>>>>>>>> Receiver's instance variables:
>>>>>>>>
>>>>>>>>
>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>> Receiver: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1Core-10306clreadytowo...etc...
>>>>>>>> Arguments and temporary variables:
>>>>>>>> string: nil
>>>>>>>> runsRaw: nil
>>>>>>>> strm: nil
>>>>>>>> runs: nil
>>>>>>>> peek: nil
>>>>>>>> pos: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>>
>>>>>>>>
>>>>>>>> [] in RemoteString>>text
>>>>>>>> Receiver: a RemoteString
>>>>>>>> Arguments and temporary variables:
>>>>>>>> theFile: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>> Receiver's instance variables:
>>>>>>>> sourceFileNumber: 2
>>>>>>>> filePositionHi: 10007336
>>>>>>>>
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> Receiver: [closure] in RemoteString>>text
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in RemoteString>>text
>>>>>>>> returnValue: nil
>>>>>>>> b: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: RemoteString>>text
>>>>>>>> startpc: 72
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> RemoteString>>text
>>>>>>>> Receiver: a RemoteString
>>>>>>>> Arguments and temporary variables:
>>>>>>>> theFile: MultiByteFileStream: '/Data/squeak4.0-
>>>>>>>> relicenseTools/
>>>>>>>> history/Pharo0.1C...etc...
>>>>>>>> Receiver's instance variables:
>>>>>>>> sourceFileNumber: 2
>>>>>>>> filePositionHi: 10007336
>>>>>>>>
>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>> Arguments and temporary variables:
>>>>>>>> position: 10007336
>>>>>>>> Receiver's instance variables:
>>>>>>>> a CompiledMethod (838)
>>>>>>>>
>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> BlockClosure>>on:do:
>>>>>>>> Receiver: [closure] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Arguments and temporary variables:
>>>>>>>> exception: Error
>>>>>>>> handlerAction: [closure] in BlockClosure>>ifError:
>>>>>>>> handlerActive: false
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> startpc: 171
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> BlockClosure>>ifError:
>>>>>>>> Receiver: [closure] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Arguments and temporary variables:
>>>>>>>> errorHandlerBlock: [closure] in [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext: [] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> startpc: 171
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> IdentitySet(Set)>>do:
>>>>>>>> Receiver: an IdentitySet(#name #inheritsFromAnyIn: #asOop
>>>>>>>> #isWebBrowser #storeOnStream: #wantsDroppe...etc...
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in [] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> index: 394
>>>>>>>> each: #doesNotUnderstand:
>>>>>>>> indexLimiT: 498
>>>>>>>> Receiver's instance variables:
>>>>>>>> tally: 373
>>>>>>>> array: #(nil nil #name nil #inheritsFromAnyIn:
>>>>>>>> #asOop nil nil
>>>>>>>> #isWebBrowser nil...etc...
>>>>>>>>
>>>>>>>> [] in [] in UndefinedObject>>DoIt
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>> Receiver: ProtoObject
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: Object
>>>>>>>> cl: [closure] in [] in UndefinedObject>>DoIt
>>>>>>>> Receiver's instance variables:
>>>>>>>> superclass: nil
>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>> CompiledMethod (602)
>>>>>>>> #become:->a Compil...etc...
>>>>>>>> format: 2
>>>>>>>> instanceVariables: nil
>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>> ImageSegmentRootStub .
>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>> name: #ProtoObject
>>>>>>>> classPool: nil
>>>>>>>> sharedPools: nil
>>>>>>>> environment: nil
>>>>>>>> category: #'Kernel-Objects'
>>>>>>>> traitComposition: nil
>>>>>>>> localSelectors: nil
>>>>>>>>
>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>> Receiver: {Object . ObjectOut . ImageSegmentRootStub .
>>>>>>>> MessageCatcher . TestCoverage}
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in ProtoObject
>>>>>>>> class(Behavior)>>allSubclassesDoGently:
>>>>>>>> index: 1
>>>>>>>> indexLimiT: 5
>>>>>>>> Receiver's instance variables:
>>>>>>>> {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher .
>>>>>>>> TestCoverage}
>>>>>>>>
>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
>>>>>>>> Receiver: ProtoObject
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in ProtoObject
>>>>>>>> class(Behavior)>>allSubclassesDoGently:
>>>>>>>> Receiver's instance variables:
>>>>>>>> superclass: nil
>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>> CompiledMethod (602)
>>>>>>>> #become:->a Compil...etc...
>>>>>>>> format: 2
>>>>>>>> instanceVariables: nil
>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>> ImageSegmentRootStub .
>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>> name: #ProtoObject
>>>>>>>> classPool: nil
>>>>>>>> sharedPools: nil
>>>>>>>> environment: nil
>>>>>>>> category: #'Kernel-Objects'
>>>>>>>> traitComposition: nil
>>>>>>>> localSelectors: nil
>>>>>>>>
>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>> Receiver: ProtoObject
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> Receiver's instance variables:
>>>>>>>> superclass: nil
>>>>>>>> methodDict: a MethodDictionary(#'=='->a
>>>>>>>> CompiledMethod (602)
>>>>>>>> #become:->a Compil...etc...
>>>>>>>> format: 2
>>>>>>>> instanceVariables: nil
>>>>>>>> organization: ('apply primitives' tryNamedPrimitive
>>>>>>>> tryNamedPrimitive: tryNamed...etc...
>>>>>>>> subclasses: {Object . ObjectOut .
>>>>>>>> ImageSegmentRootStub .
>>>>>>>> MessageCatcher . TestC...etc...
>>>>>>>> name: #ProtoObject
>>>>>>>> classPool: nil
>>>>>>>> sharedPools: nil
>>>>>>>> environment: nil
>>>>>>>> category: #'Kernel-Objects'
>>>>>>>> traitComposition: nil
>>>>>>>> localSelectors: nil
>>>>>>>>
>>>>>>>> SystemNavigation>>allBehaviorsDo:
>>>>>>>> Receiver: a SystemNavigation
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in [] in
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> Receiver's instance variables:
>>>>>>>> browserClass: nil
>>>>>>>> hierarchyBrowserClass: nil
>>>>>>>>
>>>>>>>> [] in UndefinedObject>>DoIt
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> <<error during printing>
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> [] in ProgressInitiationException>>defaultAction
>>>>>>>> Receiver: ProgressInitiationException
>>>>>>>> Arguments and temporary variables:
>>>>>>>> progress: [closure] in
>>>>>>>> SystemProgressMorph>>label:min:max:
>>>>>>>> result: #(nil)
>>>>>>>> Receiver's instance variables:
>>>>>>>> messageText: nil
>>>>>>>> tag: nil
>>>>>>>> signalContext:
>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>> handlerContext: nil
>>>>>>>> outerContext: nil
>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
>>>>>>>> maxVal: 3874
>>>>>>>> minVal: 0
>>>>>>>> aPoint: 840@306
>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> Receiver: [closure] in
>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aBlock: [closure] in
>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>> returnValue: nil
>>>>>>>> b: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> outerContext:
>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>> startpc: 49
>>>>>>>> numArgs: 0
>>>>>>>>
>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>> Receiver: ProgressInitiationException
>>>>>>>> Arguments and temporary variables:
>>>>>>>> progress: [closure] in
>>>>>>>> SystemProgressMorph>>label:min:max:
>>>>>>>> result: #(nil)
>>>>>>>> Receiver's instance variables:
>>>>>>>> messageText: nil
>>>>>>>> tag: nil
>>>>>>>> signalContext:
>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>> handlerContext: nil
>>>>>>>> outerContext: nil
>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
>>>>>>>> maxVal: 3874
>>>>>>>> minVal: 0
>>>>>>>> aPoint: 840@306
>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>
>>>>>>>> UndefinedObject>>handleSignal:
>>>>>>>> Receiver: nil
>>>>>>>> Arguments and temporary variables:
>>>>>>>> exception: ProgressInitiationException
>>>>>>>> Receiver's instance variables:
>>>>>>>> nil
>>>>>>>>
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> exception: ProgressInitiationException
>>>>>>>> val: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> sender: PasteUpMorph>>becomeActiveDuring:
>>>>>>>> pc: 17
>>>>>>>> stackp: 3
>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>> closureOrNil: nil
>>>>>>>> receiver: [closure] in
>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Receiver: BlockClosure>>on:do:
>>>>>>>> Arguments and temporary variables:
>>>>>>>> exception: ProgressInitiationException
>>>>>>>> val: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> sender:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>> pc: 17
>>>>>>>> stackp: 3
>>>>>>>> method: a CompiledMethod (2306)
>>>>>>>> closureOrNil: nil
>>>>>>>> receiver: [closure] in
>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>>
>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>> Receiver: ProgressInitiationException
>>>>>>>> Arguments and temporary variables:
>>>>>>>>
>>>>>>>> Receiver's instance variables:
>>>>>>>> messageText: nil
>>>>>>>> tag: nil
>>>>>>>> signalContext:
>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>> handlerContext: nil
>>>>>>>> outerContext: nil
>>>>>>>> workBlock: [closure] in UndefinedObject>>DoIt
>>>>>>>> maxVal: 3874
>>>>>>>> minVal: 0
>>>>>>>> aPoint: 840@306
>>>>>>>> progressTitle: 'Searching UTF-8 Problems...'
>>>>>>>>
>>>>>>>>
>>>>>>>> --- The full stack ---
>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #value:
>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>> [] in BlockClosure>>ifError:
>>>>>>>> BlockClosure>>valueWithPossibleArgs:
>>>>>>>> [] in MethodContext(ContextPart)>>handleSignal:
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> Error(Exception)>>signal
>>>>>>>> Error(Exception)>>signal:
>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>> MultiByteFileStream>>next
>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>> [] in RemoteString>>text
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> RemoteString>>text
>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>> [] in [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> BlockClosure>>on:do:
>>>>>>>> BlockClosure>>ifError:
>>>>>>>> [] in [] in [] in UndefinedObject>>DoIt
>>>>>>>> IdentitySet(Set)>>do:
>>>>>>>> [] in [] in UndefinedObject>>DoIt
>>>>>>>> [] in ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>> ProtoObject class(Class)>>subclassesDoGently:
>>>>>>>> ProtoObject class(Behavior)>>allSubclassesDoGently:
>>>>>>>> SystemNavigation>>allBehaviorsDo:
>>>>>>>> [] in UndefinedObject>>DoIt
>>>>>>>> [] in ProgressInitiationException>>defaultAction
>>>>>>>> BlockClosure>>ensure:
>>>>>>>> ProgressInitiationException>>defaultAction
>>>>>>>> UndefinedObject>>handleSignal:
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> MethodContext(ContextPart)>>handleSignal:
>>>>>>>> ProgressInitiationException(Exception)>>signal
>>>>>>>> - - - - - - - - - - - - - - -
>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>>>>> ByteString(String)>>displayProgressAt:from:to:during:
>>>>>>>> UndefinedObject>>DoIt
>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>> BlockClosure>>on:do:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt
>>>>>>>> [] in TextMorphEditor(ParagraphEditor)>>doIt:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>doIt:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
>>>>>>>> TextMorphEditor>>dispatchOnKeyEvent:with:
>>>>>>>> TextMorphEditor(ParagraphEditor)>>keystroke:
>>>>>>>> TextMorphEditor>>keystroke:
>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:
>>>>>>>> TextMorphForEditView>>handleInteraction:
>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>> TextMorphForEditView>>keyStroke:
>>>>>>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
>>>>>>>> KeyboardEvent>>sentTo:
>>>>>>>> TextMorphForEditView(Morph)>>handleEvent:
>>>>>>>> TextMorphForEditView(Morph)>>handleFocusEvent:
>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>> BlockClosure>>on:do:
>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>> HandMorph>>sendEvent:focus:clear:
>>>>>>>> HandMorph>>sendKeyboardEvent:
>>>>>>>> HandMorph>>handleEvent:
>>>>>>>> HandMorph>>processEvents
>>>>>>>> [] in WorldState>>doOneCycleNowFor:
>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>> WorldState>>handsDo:
>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On May 17, 2009, at 11:13 AM, Nicolas Cellier wrote:
>>>>>>>>
>>>>>>>>> One solution would be to use getSource rather than
>>>>>>>>> getSourceFromFile.
>>>>>>>>> However, with following code I detected no problem in my pharo-
>>>>>>>>> core
>>>>>>>>> copy (10281 updated to 10306)
>>>>>>>>>
>>>>>>>>> | problems total |
>>>>>>>>> problems := OrderedCollection new.
>>>>>>>>> total := 0.
>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl | total :=
>>>>>>>>> total +
>>>>>>>>> 1].
>>>>>>>>> 'Searching UTF-8 Problems...'
>>>>>>>>> displayProgressAt: Sensor cursorPoint
>>>>>>>>> from: 0 to: total
>>>>>>>>> during:
>>>>>>>>> [:bar | | count |
>>>>>>>>> count := 0.
>>>>>>>>> SystemNavigation default allBehaviorsDo: [:cl |
>>>>>>>>> bar value: (count := count + 1).
>>>>>>>>> cl selectors do: [:sel |
>>>>>>>>> [(cl compiledMethodAt: sel)
>>>>>>>>> getSourceFromFile] ifError: [
>>>>>>>>> var value: 'last problem
>>>>>>>>> found ' , cl name , '>>#' , sel.
>>>>>>>>> problems add: cl->sel]]]].
>>>>>>>>> ^problems
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/5/17 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>>>>>>>>> yes same here.
>>>>>>>>>>
>>>>>>>>>> On May 17, 2009, at 2:10 AM, Tudor Girba wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> Recently I encounter a strange error:
>>>>>>>>>>> - I sometimes get a debugger due to some problems in my code
>>>>>>>>>>> - when I try to investigate the trace, I get another debugger
>>>>>>>>>>> saying
>>>>>>>>>>> that "Invalid utf8 input detected'"
>>>>>>>>>>>
>>>>>>>>>>> This second debugger I can investigate, the previous not. It
>>>>>>>>>>> looks
>>>>>>>>>>> like something got messed up with the text conversion of the
>>>>>>>>>>> sources.
>>>>>>>>>>>
>>>>>>>>>>> I am working on 10306 using the 4.1.1b2 VM on Mac. The code
>>>>>>>>>>> I am
>>>>>>>>>>> working on is loaded from squeaksource (Moose, Glamour,
>>>>>>>>>>> Mondrian).
>>>>>>>>>>>
>>>>>>>>>>> Anyone can confirm this problem?
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Doru
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ----ERROR REPORT----
>>>>>>>>>>>
>>>>>>>>>>> '17 May 2009 2:05:50 am
>>>>>>>>>>>
>>>>>>>>>>> VM: Mac OS - intel - 1056 - Squeak3.8.1 of ''28 Aug
>>>>>>>>>>> 2006'' [latest
>>>>>>>>>>> update: #6747] Squeak VM 4.1.1b2
>>>>>>>>>>> Image: Pharo0.1 [Latest update: #10306]
>>>>>>>>>>>
>>>>>>>>>>> SecurityManager state:
>>>>>>>>>>> Restricted: false
>>>>>>>>>>> FileAccess: true
>>>>>>>>>>> SocketAccess: true
>>>>>>>>>>> Working Dir /Users/girba/Work/Code/squeakingmoose
>>>>>>>>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>>>>>>>>>> Untrusted Dir /Users/girba/Library/Preferences/Squeak/
>>>>>>>>>>> Internet/
>>>>>>>>>>> My
>>>>>>>>>>> Squeak
>>>>>>>>>>>
>>>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aString: ''Invalid utf8 input detected''
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>
>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>
>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>>>> Receiver: an UTF8TextConverter
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aStream: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>> Work/Code/
>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>> character1: $
>>>>>>>>>>> value1: 160
>>>>>>>>>>> character2: Character tab
>>>>>>>>>>> value2: 9
>>>>>>>>>>> unicode: nil
>>>>>>>>>>> character3: Character tab
>>>>>>>>>>> value3: 9
>>>>>>>>>>> character4: nil
>>>>>>>>>>> value4: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> an UTF8TextConverter
>>>>>>>>>>>
>>>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> char: nil
>>>>>>>>>>> secondChar: nil
>>>>>>>>>>> state: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> terminator: $!
>>>>>>>>>>> out: a WriteStream ''doesNotUnderstand: aMessage
>>>>>>>>>>> "Handle the fact that there ...etc...
>>>>>>>>>>> ch: Character cr
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>>>> Receiver: MultiByteFileStream: ''/Users/girba/Work/Code/
>>>>>>>>>>> squeakingmoose/moose.changes''
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> string: nil
>>>>>>>>>>> runsRaw: nil
>>>>>>>>>>> strm: nil
>>>>>>>>>>> runs: nil
>>>>>>>>>>> peek: nil
>>>>>>>>>>> pos: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> [] in RemoteString>>text
>>>>>>>>>>> Receiver: a RemoteString
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>> Work/Code/
>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> sourceFileNumber: 2
>>>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> Receiver: [closure] in RemoteString>>text
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in RemoteString>>text
>>>>>>>>>>> returnValue: nil
>>>>>>>>>>> b: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> outerContext: RemoteString>>text
>>>>>>>>>>> startpc: 72
>>>>>>>>>>> numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>> RemoteString>>text
>>>>>>>>>>> Receiver: a RemoteString
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> theFile: MultiByteFileStream: ''/Users/girba/
>>>>>>>>>>> Work/Code/
>>>>>>>>>>> squeakingmoose/moose.chan...etc...
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> sourceFileNumber: 2
>>>>>>>>>>> filePositionHi: 10007336
>>>>>>>>>>>
>>>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> position: 10007336
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>
>>>>>>>>>>> CompiledMethod>>methodNode
>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aClass: Object
>>>>>>>>>>> source: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>
>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
>>>>>>>>>>> Receiver: DebuggerMethodMap
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aMethod: a CompiledMethod (838)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: Object
>>>>>>>>>>> methodDict: a
>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
>>>>>>>>>>>> a CompiledMethod
>>>>>>>>>>> (1628) #for...etc...
>>>>>>>>>>> format: 140
>>>>>>>>>>> instanceVariables: #(''timestamp''
>>>>>>>>>>> ''methodReference''
>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
>>>>>>>>>>> organization: (''initialize-release''
>>>>>>>>>>> forMethod:methodNode:)
>>>>>>>>>>> (''accessing'' markRec...etc...
>>>>>>>>>>> subclasses:
>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>> name: #DebuggerMethodMap
>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
>>>>>>>>>>> WeakIdentityKeyDictionary(a
>>>>>>>>>>> CompiledMethod...etc...
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
>>>>>>>>>>> Receiver: a WeakIdentityKeyDictionary(a CompiledMethod (126)-
>>>>>>>>>>>> a
>>>>>>>>>>> DebuggerMethodMapForClosureCompiledM...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> key: a CompiledMethod (838)
>>>>>>>>>>> aBlock: [closure] in DebuggerMethodMap
>>>>>>>>>>> class>>forMethod:
>>>>>>>>>>> assoc: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> tally: 16
>>>>>>>>>>> array: an Array(nil nil a CompiledMethod (2402)->a
>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>>
>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
>>>>>>>>>>> Receiver: DebuggerMethodMap
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aMethod: a CompiledMethod (838)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: Object
>>>>>>>>>>> methodDict: a
>>>>>>>>>>> MethodDictionary(#abstractSourceMap-
>>>>>>>>>>>> a CompiledMethod
>>>>>>>>>>> (1628) #for...etc...
>>>>>>>>>>> format: 140
>>>>>>>>>>> instanceVariables: #(''timestamp''
>>>>>>>>>>> ''methodReference''
>>>>>>>>>>> ''methodNode'' ''abstractSource...etc...
>>>>>>>>>>> organization: (''initialize-release''
>>>>>>>>>>> forMethod:methodNode:)
>>>>>>>>>>> (''accessing'' markRec...etc...
>>>>>>>>>>> subclasses:
>>>>>>>>>>> {DebuggerMethodMapForBlueBookMethods .
>>>>>>>>>>> DebuggerMethodMapForClosureC...etc...
>>>>>>>>>>> name: #DebuggerMethodMap
>>>>>>>>>>> classPool: a Dictionary(#MapCache->a
>>>>>>>>>>> WeakIdentityKeyDictionary(a
>>>>>>>>>>> CompiledMethod...etc...
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> CompiledMethod>>debuggerMap
>>>>>>>>>>> Receiver: a CompiledMethod (838)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> a CompiledMethod (838)
>>>>>>>>>>>
>>>>>>>>>>> OTClosureContextNode>>selection
>>>>>>>>>>> Receiver: an OTClosureContextNode
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> metaNode: context
>>>>>>>>>>>
>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
>>>>>>>>>>> process: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> context: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> parseTree: nil
>>>>>>>>>>> sourceMap: nil
>>>>>>>>>>> debuggerMap: nil
>>>>>>>>>>>
>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
>>>>>>>>>>> Receiver: an OTClosureContextNode
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> metaNode: context
>>>>>>>>>>>
>>>>>>>>>>> navigation: an OBDefaultEdgeNavigation
>>>>>>>>>>> process: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> context: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> parseTree: nil
>>>>>>>>>>> sourceMap: nil
>>>>>>>>>>> debuggerMap: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
>>>>>>>>>>> Receiver: an OTDefinitionPanel
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>> definition: nil
>>>>>>>>>>> selection: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
>>>>>>>>>>> Receiver: an OTDefinitionPanel
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> ann: an OBSelectionChanged
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>> definition: nil
>>>>>>>>>>> selection: nil
>>>>>>>>>>>
>>>>>>>>>>> MessageSend>>valueWithArguments:
>>>>>>>>>>> Receiver: MessageSend(#selectionChanged: -> an
>>>>>>>>>>> OTDefinitionPanel)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> receiver: an OTDefinitionPanel
>>>>>>>>>>> selector: #selectionChanged:
>>>>>>>>>>> arguments: #()
>>>>>>>>>>>
>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anArray: MessageSend(#selectionChanged: -> an
>>>>>>>>>>> OTDefinitionPanel)
>>>>>>>>>>> answer: an Array(an OBSelectionChanged)
>>>>>>>>>>> each: an Array(an OBFixedButtonPanel)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>
>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>> index: 4
>>>>>>>>>>> indexLimiT: 6
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>
>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>> Receiver: #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anArray: an Array(an OBSelectionChanged)
>>>>>>>>>>> answer: an Array(an OBFixedButtonPanel)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> #(MessageSend(#relabel: -> an OTDebugger)
>>>>>>>>>>> MessageSend(#selectionChanged: -> an OBColumnPan...etc...
>>>>>>>>>>>
>>>>>>>>>>> [] in OBAnnouncer>>announce:
>>>>>>>>>>> Receiver: an OBAnnouncer
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> <<error during printing>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> subscriptions: an
>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
>>>>>>>>>>>> an
>>>>>>>>>>> ActionSequence(Message...etc...
>>>>>>>>>>>
>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: OBSelectionChanged-
>>>>>>>>>>>> #(MessageSend(#relabel: -> an
>>>>>>>>>>> OTDebugger)
>>>>>>>>>>> MessageSe...etc...
>>>>>>>>>>> assoc: [closure] in OBAnnouncer>>announce:
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> tally: 12
>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>
>>>>>>>>>>> IdentityDictionary(Set)>>do:
>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> index: 6
>>>>>>>>>>> each: OBSelectionChanged->#(MessageSend(#relabel: -
>>>>>>>>>>>> an OTDebugger)
>>>>>>>>>>> MessageSend...etc...
>>>>>>>>>>> indexLimiT: 20
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> tally: 12
>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>
>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> tally: 12
>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>
>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> Receiver: an IdentityDictionary(OBAboutToChange->an
>>>>>>>>>>> ActionSequence(MessageSend(#aboutToChange: -> an...etc...
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in OBAnnouncer>>announce:
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> tally: 12
>>>>>>>>>>> array: {OBNodeCreated->an
>>>>>>>>>>> ActionSequence(MessageSend(#selectNode: -
>>>>>>>>>>>> an OBColum...etc...
>>>>>>>>>>>
>>>>>>>>>>> OBAnnouncer>>announce:
>>>>>>>>>>> Receiver: an OBAnnouncer
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anObject: an OBSelectionChanged
>>>>>>>>>>> ann: an OBSelectionChanged
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> subscriptions: an
>>>>>>>>>>> IdentityDictionary(OBAboutToChange-
>>>>>>>>>>>> an
>>>>>>>>>>> ActionSequence(Message...etc...
>>>>>>>>>>>
>>>>>>>>>>> OBColumnPanel>>jumpTo:
>>>>>>>>>>> Receiver: an OBColumnPanel
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>> column: an OBColumn(Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand:
>>>>>>>>>>> #fullName)
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>> root: an OTProcessNode
>>>>>>>>>>> current: an OTClosureContextNode
>>>>>>>>>>> columns: an OrderedCollection(an
>>>>>>>>>>> OBColumn(Model
>>>>>>>>>>> class(Object)>>doesNotUnderstan...etc...
>>>>>>>>>>> minPanes: 1
>>>>>>>>>>> maxPanes: 1
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
>>>>>>>>>>> Receiver: an OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aNode: an OTClosureContextNode
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> panels: an OrderedCollection(an OBColumnPanel
>>>>>>>>>>> an OBFixedButtonPanel
>>>>>>>>>>> an OTDefini...etc...
>>>>>>>>>>> announcer: an OBAnnouncer
>>>>>>>>>>> cmdFactories: an Array(OTCmdProceedDebugger
>>>>>>>>>>> OTCmdIntoDebugger
>>>>>>>>>>> OTCmdThroughDebug...etc...
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger class(OBBrowser
>>>>>>>>>>> class)>>metaNode:root:selection:panels:
>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> metaNode: process
>>>>>>>>>>> #longStack->context
>>>>>>>>>>>
>>>>>>>>>>> rootNode: an OTProcessNode
>>>>>>>>>>> selectedNode: an OTClosureContextNode
>>>>>>>>>>> panels: an Array(an OBColumnPanel an
>>>>>>>>>>> OBFixedButtonPanel an
>>>>>>>>>>> OTDefinitionPanel an...etc...
>>>>>>>>>>> browser: an OTDebugger
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>> format: 136
>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>> cmdInspector)
>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>> subclasses: nil
>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>> classPool: nil
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> rootNode: an OTProcessNode
>>>>>>>>>>> selectedNode: an OTClosureContextNode
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>> format: 136
>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>> cmdInspector)
>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>> subclasses: nil
>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>> classPool: nil
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> aContext: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> aBool: true
>>>>>>>>>>> processNode: an OTProcessNode
>>>>>>>>>>> contextNode: an OTClosureContextNode
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>> format: 136
>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>> cmdInspector)
>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>> subclasses: nil
>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>> classPool: nil
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger class>>process:context:label:errorWasInUIProcess:
>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> aContext: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
>>>>>>>>>>> class>>fullName''
>>>>>>>>>>> aBool: true
>>>>>>>>>>> debugger: nil
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>> format: 136
>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>> cmdInspector)
>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>> subclasses: nil
>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>> classPool: nil
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> OTDebugger
>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
>>>>>>>>>>> Receiver: OTDebugger
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aProcess: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> aContext: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> aString: ''MessageNotUnderstood: Model
>>>>>>>>>>> class>>fullName''
>>>>>>>>>>> aBool: true
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> superclass: OBBrowser
>>>>>>>>>>> methodDict: a MethodDictionary(#cmdBrowse->a
>>>>>>>>>>> CompiledMethod (3978)
>>>>>>>>>>> #cmdDebug->a...etc...
>>>>>>>>>>> format: 136
>>>>>>>>>>> instanceVariables: nil
>>>>>>>>>>> organization: (''commands'' cmdBrowse cmdDebug
>>>>>>>>>>> cmdInspector)
>>>>>>>>>>> (''updating'' debugger...etc...
>>>>>>>>>>> subclasses: nil
>>>>>>>>>>> name: #OTDebugger
>>>>>>>>>>> classPool: nil
>>>>>>>>>>> sharedPools: nil
>>>>>>>>>>> environment: Smalltalk
>>>>>>>>>>> category: #''OB-Tools-Debugger''
>>>>>>>>>>> traitComposition: nil
>>>>>>>>>>> localSelectors: nil
>>>>>>>>>>>
>>>>>>>>>>> [] in OTPreDebugNode>>debug:
>>>>>>>>>>> Receiver: an OTPreDebugNode
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aRequestor: an OTPreDebugPanel
>>>>>>>>>>> proc: a Process in OTToolset
>>>>>>>>>>> class>>debug:context:label:contents:fullView:
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> metaNode: Predebug
>>>>>>>>>>>
>>>>>>>>>>> navigation: nil
>>>>>>>>>>> errorWasInUI: true
>>>>>>>>>>> process: nil
>>>>>>>>>>> context: Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> label: ''MessageNotUnderstood: Model
>>>>>>>>>>> class>>fullName''
>>>>>>>>>>> contents: ''Model
>>>>>>>>>>> class(Object)>>doesNotUnderstand: #fullName
>>>>>>>>>>> UtilitiesTest>>tes...etc...
>>>>>>>>>>> debugOnMouseClick: true
>>>>>>>>>>>
>>>>>>>>>>> WorldState>>runStepMethodsIn:
>>>>>>>>>>> Receiver: a WorldState
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aWorld: a PasteUpMorph(1622) [world]
>>>>>>>>>>> queue: a SharedQueue
>>>>>>>>>>> numItems: 1
>>>>>>>>>>> i: 0
>>>>>>>>>>> limit: 200
>>>>>>>>>>> stamp: 12765762
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> hands: an Array(a HandMorph(3216))
>>>>>>>>>>> viewBox: 0@0 corner: 1440@807
>>>>>>>>>>> canvas: a FormCanvas on:
>>>>>>>>>>> DisplayScreen(1440x807x32)
>>>>>>>>>>> damageRecorder: a DamageRecorder
>>>>>>>>>>> stepList: a Heap(StepMessage(#stepAt: -> a
>>>>>>>>>>> SystemWindow(3380))(a
>>>>>>>>>>> SystemWindow(3...etc...
>>>>>>>>>>> lastStepTime: 12791780
>>>>>>>>>>> lastStepMessage: nil
>>>>>>>>>>> lastCycleTime: 12791800
>>>>>>>>>>> commandHistory: a CommandHistory
>>>>>>>>>>> alarms: a Heap()
>>>>>>>>>>> lastAlarmTime: 12791780
>>>>>>>>>>>
>>>>>>>>>>> PasteUpMorph>>runStepMethods
>>>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver''s instance variables:
>>>>>>>>>>> bounds: 0@0 corner: 1440@807
>>>>>>>>>>> owner: nil
>>>>>>>>>>> submorphs: an Array(a TaskbarMorph(3095) a
>>>>>>>>>>> SystemWindow(171) a
>>>>>>>>>>> PluggableStandar...etc...
>>>>>>>>>>> fullBounds: nil
>>>>>>>>>>> color: (Color r: 0.972 g: 0.972 b: 0.976)
>>>>>>>>>>> extension: a MorphExtension (2543) [eventHandler
>>>>>>>>>>> = an
>>>>>>>>>>> EventHandler] [other: (...etc...
>>>>>>>>>>> borderWidth: 0
>>>>>>>>>>> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
>>>>>>>>>>> presenter: a Presenter (1246)
>>>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>>> cursor: 1
>>>>>>>>>>> padding: 3
>>>>>>>>>>> backgroundMorph: nil
>>>>>>>>>>> isPartsBin: nil
>>>>>>>>>>> autoLineLayout: false
>>>>>>>>>>> indicateCursor: nil
>>>>>>>>>>> resizeToFit: nil
>>>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>>> worldState: a WorldState
>>>>>>>>>>> griddingOn: nil
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --- The full stack ---
>>>>>>>>>>> UTF8TextConverter(Object)>>error:
>>>>>>>>>>> UTF8TextConverter>>errorMalformedInput
>>>>>>>>>>> UTF8TextConverter>>nextFromStream:
>>>>>>>>>>> MultiByteFileStream>>next
>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunk
>>>>>>>>>>> MultiByteFileStream(PositionableStream)>>nextChunkText
>>>>>>>>>>> [] in RemoteString>>text
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> RemoteString>>text
>>>>>>>>>>> CompiledMethod>>getSourceFromFile
>>>>>>>>>>> CompiledMethod>>methodNode
>>>>>>>>>>> [] in DebuggerMethodMap class>>forMethod:
>>>>>>>>>>> WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
>>>>>>>>>>> DebuggerMethodMap class>>forMethod:
>>>>>>>>>>> CompiledMethod>>debuggerMap
>>>>>>>>>>> OTClosureContextNode>>selection
>>>>>>>>>>> OTClosureContextNode(OTContextNode)>>definition
>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>node:
>>>>>>>>>>> OTDefinitionPanel(OBDefinitionPanel)>>selectionChanged:
>>>>>>>>>>> MessageSend>>valueWithArguments:
>>>>>>>>>>> [] in ActionSequence>>valueWithArguments:
>>>>>>>>>>> ActionSequence(SequenceableCollection)>>do:
>>>>>>>>>>> ActionSequence>>valueWithArguments:
>>>>>>>>>>> [] in OBAnnouncer>>announce:
>>>>>>>>>>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> IdentityDictionary(Set)>>do:
>>>>>>>>>>> IdentityDictionary(Dictionary)>>associationsDo:
>>>>>>>>>>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>>>>>>>>>> OBAnnouncer>>announce:
>>>>>>>>>>> OBColumnPanel>>jumpTo:
>>>>>>>>>>> OTDebugger(OBBrowser)>>jumpTo:
>>>>>>>>>>> OTDebugger class(OBBrowser
>>>>>>>>>>> class)>>metaNode:root:selection:panels:
>>>>>>>>>>> OTDebugger class(OBBrowser class)>>root:selection:
>>>>>>>>>>> OTDebugger class>>process:context:errorWasInUIProcess:
>>>>>>>>>>> OTDebugger class>>process:context:label:errorWasInUIProcess:
>>>>>>>>>>> OTDebugger
>>>>>>>>>>> class>>openProcess:context:label:errorWasInUIProcess:
>>>>>>>>>>> [] in OTPreDebugNode>>debug:
>>>>>>>>>>> WorldState>>runStepMethodsIn:
>>>>>>>>>>> PasteUpMorph>>runStepMethods
>>>>>>>>>>> - - - - - - - - - - - - - - -
>>>>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>>> '
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> www.tudorgirba.com
>>>>>>>>>>>
>>>>>>>>>>> "To lead is not to demand things, it is to make them happen."
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>>>>>>> project
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Pharo-project mailing list
>>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pharo-project mailing list
>>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>>>>> project
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Pharo-project mailing list
>>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pharo-project mailing list
>>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pharo-project mailing list
>>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-
>>>>>> project
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project(a)lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "It's not how it is, it is how we see it."
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project(a)lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
May 19, 2009
Re: [Pharo-project] Inspect it wrong shortcut
by Mariano Martinez Peck
2009/5/19 Alexandr Batalshikov <abatalshikov(a)gmail.com>
> On Windows XP with pharo0.1-10309dev09.05.3.image:Alt+i -- run Inspect
> Alt+Shift+i -- run Explore
> Ctrl+i -- also run Explore
>
> and changing any setting in section "keyboard" in Preference Browser
> no any effects for me.
>
Alexander: I created this ticket:
http://code.google.com/p/pharo/issues/detail?id=829
could you are your comments there ?
Thanks
Mariano
>
> / Alexander
>
> 2009/5/18 Mariano Martinez Peck <marianopeck(a)gmail.com>
>
>> I am sorry. I was confuse, It is under Windows that happened to me, not
>> Linux. In Linux works ok.
>>
>> Anyone with Windows can confirm this ?
>>
>> thanks!
>>
>> Mariano
>>
>>
>>
>>
>> _______________________________________________
>> 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] Tracing changes in MC (was: ThirtyTwoBitRegister methods removed)
by Nicolas Cellier
Michael also answered that some features were integrated in the
browser in envy, and that can be far more convenient.
Until now, only the versions in change log are accessible from there.
I have not much though of it, but I foresee several problems:
1) FROM WHAT PACKAGE COME REMOVED METHOD/CLASS ?
Mariano did knew about the implementor, but that's not the case if you
don't have a witness image handy.
I have a debugger and a receiver that does not understand, but who
tells me in which superclass/package lie the class/method in question?
2) RENAMING SHOULD ALSO BE TRACEABLE
I also note that most tools haven't reified refactorings like renaming
a method, adding/removing a parameter, and will handle these as an
addition/deletion (very good way to break trace of authors for
example).
3) RE-ORGANIZING SHOULD ALSO BE TRACEABLE
What about moving a method in hierarchy?
Or a class/method moved from one package to another...
4) RETRIEVING HISTORY SHOULD NOT TAKE HOURS
Anyone working with Monticello can legitimely have questions about efficiency...
Uploading and scanning Monticello packages is not free...
SO WHAT?
1) could cost a large package scan GASP!
2 & 3) I note with interest the use of UUID for classes in frameworks
like Spoon...
How can this apply to methods? That's not obvious because of polymorphism.
I can not only send a method from a package, but also implement my own
version...
The only easy way is to store an indication in Monticello...
4) That last point could be redhibitory...
I would much better like a light weight list of changes travelling on
the net, or a discovery service with its own protocol.
I would like an access to a database syndicating several forks of
Squeak along with full method history...
Of course this database should be kept in sync with updated code from
each fork...
Nicolas
2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>:
>
>
> On Tue, May 19, 2009 at 4:56 PM, Alexandre Bergel <alexandre(a)bergel.eu>
> wrote:
>>
>> the topic of the discussion is not in sync with the thread topic.
>>
>> My answer to Nicolas' was:
>> Here is an idea:
>> - Adding a button 'search' in a Monticello repository inspector
>> (the
>> one you get when opening a repository)
>> - with a 'search' button, you can then enter a method location such
>> as TextMorphEditor>>keystroke:
>> - the list of versions that either added the method or removed it
>> according to the ancestors.
>>
>> How does that sound? I can work on it.
>
> It's good to see you are trying to resolve this problem.
>
> However, there are few things to add:
>
> - the same situation can happen with removed classes, not only methods
> - suppose I found in which version a method was removed. What can I do ?
> just see commit comments. So, apart from that, we have to put a description
> in the comment that explains what was removed for example an even why.
>
> What do you think ?
>
>
>>
>> Cheers,
>> Alexandre
>>
>>
>> Begin forwarded message:
>>
>> > From: Michael Roberts <mike(a)mjr104.co.uk>
>> > Date: 19 May 2009 19:06:13 CEDT
>> > To: Pharo-project(a)lists.gforge.inria.fr
>> > Subject: Re: [Pharo-project] ThirtyTwoBitRegister methods removed
>> > Reply-To: Pharo-project(a)lists.gforge.inria.fr
>> >
>> > In general I would like to see a bit more envy tool like support in
>> > mc. I have not checked out OT or newer mc versions to see what is
>> > implemented. I would like the method vesions tool to map into a mc
>> > version and to quickly go from the class to mc view. Can we do this
>> > already? If not this would be really useful but I appreciate it has to
>> > be built. Otherwise I too scratch my head trying to work out where all
>> > the changes come in. I am not for a second proposing the envy model
>> > but the tool was integrated nicely.
>> > thanks mike
>> >
>> > On Tuesday, May 19, 2009, Mariano Martinez Peck
>> > <marianopeck(a)gmail.com> wrote:
>> >>
>> >>
>> >> On Tue, May 19, 2009 at 6:46 AM, Nicolas Cellier
>> >> <nicolas.cellier.aka.nice(a)gmail.com
>> >> > wrote:
>> >>
>> >> To me, this raises a more general question.
>> >> How can we trace a particular change in Pharo?
>> >> Why when and where this change did occur? I know all is in the
>> >> Monticello repository, but is there a quick and convenient way to
>> >> answer such a question? I mean avoiding a manual scan of each and
>> >> every Monticello version...
>> >>
>> >> Or is it logged in the ChangeSet? In this case, what hidden menu or
>> >> code snippet will help tracking the change?
>> >>
>> >> Or should we use the issue tracker? Ideally, the reason for every
>> >> change should be logged here. And every Monticello uploaded should
>> >> refer to an issue. Even if this were strictly applied, not sure that
>> >> is the way to retrieve information at such a detailed level.
>> >>
>> >> If none of these tools can provide an easy answer, then yes, requests
>> >> on mailing lists, IRC, or internet search can provide a much
>> >> efficient
>> >> answer. But that's the signature a tool is lacking.
>> >>
>> >> I am agree. Actually, I thought to add in my email a generic
>> >> question of that because I faced this problem several times and I
>> >> didn't know what to do.
>> >>
>> >>
>> >>
>> >> I wish Mariano gets an answer, but an answer on the method would be
>> >> more profitable to every one.
>> >> No problem. Perhaps someone knows haha.
>> >>
>> >>
>> >>
>> >> Cheers
>> >>
>> >> Nicolas
>> >>
>> >> 2009/5/19 Mariano Martinez Peck <marianopeck(a)gmail.com>:
>> >>> Hi folks. I noticed that this two methods were removed from
>> >>> ThirtyTwoBitRegister:
>> >>>
>> >>> asByteArray
>> >>> ^ ByteArray with: (low bitAnd: 16rFF) with: (low bitShift:
>> >>> -8) with:
>> >>> (hi bitAnd: 16rFF) with: (hi bitShift: -8)
>> >>>
>> >>>
>> >>>
>> >>> reverseLoadFrom: aByteArray at: index
>> >>> "Load my 32-bit value from the four bytes of the given
>> >>> ByteArraystarting at the given index. Consider the first byte to
>> >>> contain the
>> >>> mostsignificant bits of the word (i.e., use big-endian byte
>> >>> ordering)."
>> >>>
>> >>> hi := ((aByteArray at: index + 3) bitShift: 8) +
>> >>> ( aByteArray at:
>> >>> index + 2).
>> >>> low := ((aByteArray at: index + 1) bitShift: 8) +
>> >>> ( aByteArray at:
>> >>> index).
>> >>>
>> >>>
>> >>>
>> >>> I need them for Glorp. I looked but I didn't found a similar
>> >>> message for
>> >>> them. I don't think adding them as an extension is a good solution
>> >>> here
>> >>> since this seems to be very "internal". is there a reason of the
>> >>> removing?
>> >>> If not, could them be added again? If there are reason, which
>> >>> should be the
>> >>> best approach to fix this in mi case?
>> >>>
>> >>> I have no problem in commit them if you want.
>> >>>
>> >>> Thanks!
>> >>>
>> >>> Mariano
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> 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
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> 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