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
December 2009
- 96 participants
- 2069 messages
Re: [Pharo-project] Keeping released version image up to date (was Re: did you check in 1.1 how the old browser now support the creation of new method cat)
by Mariano Martinez Peck
On Mon, Dec 21, 2009 at 11:00 PM, Stan Shepherd
<stan.shepherd414(a)gmail.com>wrote:
>
>
> Mariano Martinez Peck wrote:
> >
> > On Mon, Dec 21, 2009 at 9:48 PM, Stan Shepherd
> > <stan.shepherd414(a)gmail.com>wrote:
> >
> >>
> >>
> >> Mariano Martinez Peck wrote:
> >> >
> >> > As already said several times. For me, we have to:
> >> >
> >> > 1) Put ALL our effort and or priority to release the 1.0 stable. This
> >> > means,
> >> > try to fix the 1.0 opened fixes.
> >> >
> >> >
> >>
> >> What is the suggested workflow for those of us who want to work off the
> >> stable version, and feedback where we find outstanding issues? I would
> >> expect to try out the offending code in a 'patched up to date' version
> >> of
> >> 1.0, to see if it is reproducable there, in which case a search of open
> >> bug
> >> reports, and possibly a new bug report, would be in order. Is there an
> >> easy
> >> way to maintain such an up to date version 1.0, with harvested bug
> fixes?
> >>
> >
> > In my opinion, it is easy. If you are a Pharo developer you might want to
> > use 1.1 and code there. If you are just a "user" of pharo, use the 1.0.
> If
> > there are bugs, just report them following this:
> > http://www.pharo-project.org/community/issue-tracking
> >
> > And then we see. If the bug is a "1.0 issue" we will try to fix it and
> > integrated. Maybe it is 1.1. But it doesn't care. You should use 1.0 for
> > your applications and report anything you want (issue, feedback,
> whatever)
> > regardless 1.1 (do as if 1.1 doesn't exist).
> >
> > Cheers
> >
> > Mariano
> >
> >
> >> ...Stan
> >
>
> Hi Mariano, I suppose my question was mainly about how to keep that 1.0
> version up with its current fixes. Is it a question of watching out for a
> new release on the downloads page.
>
> It would be preferable to pick up all updates (semi)automatically, in which
> case you know that a bug you hit is still a bug.
>
> I know I have seen bugs such as the one I just logged, but felt they were
> likely already in the works, or caused by something I'd done. If I can
> easily keep an image as the 'gold standard' of where a patched up to date
> image should be, I'm more likely to decide something really is a bug and
> log
> it.
>
>
Stan, I am afraid I am not understanding you perfectly. Sorry if that's the
case. The question is "how to have your image 1.0 updated up to date?"
There are two things:
1) All the issues/fixes for EXTERNAL packages, will be comited in external
repositories. Once a month, more or less, a new Pharo (dev and web) image is
generated. That image is build with the latests version of the external
packages (and the latest PharoCore image), thus it should contain the fixes
(if there were).
2) All the issues/fixes that are INTERNAL to Pharo (pharo core) will be
release us a number (ej 10599) and will be put in the "update stream". This
mean you will be able to do mouse click -> "System" -> "software update"
and get that latest version.
But I am not sure about this as I remember a change Damien wanted to do so
that the "software update" also updates the external packages (not only
core).
Do you know which is the state damien?
I hope I don't confuse you even more hahaha.
Kind regards,
Mariano
Cheeers, ...Stan
>
> --
> View this message in context:
> http://n2.nabble.com/Re-did-you-check-in-1-1-how-the-old-browser-now-suppor…
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 21, 2009
Re: [Pharo-project] Name: SLICE-allowUnderscoreAssignmentFix-AlainPlantec.1
by Alain Plantec
Alain Plantec a écrit :
> Stéphane Ducasse a écrit :
>> I lost track about this change.
>> Alain should I integrate it?
>>
No, it works out-of-the-box in 1.1 since #11106.
so forget my slice.
Alain
Dec. 21, 2009
Re: [Pharo-project] can we include this in NewInspector ?? (WAS) Fwd: [ANN] MagmaBrowser
by Mariano Martinez Peck
2009/12/21 Frederic Pluquet <fpluquet(a)ulb.ac.be>
> Yes ! I find a way to view the form in place of the description pane !
> Finally it was not so hard :) Check the last version of NewInspector and
> inspect for example "Form allInstances".
>
>
This is great man. Thank you very much to you and to henrik!!!
In the same time, I personalized also the color instances :) For example,
> inspect : "Color allInstances first: 1000"
>
> To Pharo developers: if you want to see anything in place of the
> description pane, please write a descriptionChildrenSpecBlock (see classes
> Color and Form for more explanations) and submit it to me.
>
> Fréd
> ----
> Frédéric Pluquet
> Université Libre de Bruxelles (ULB)
> Assistant
> http://www.ulb.ac.be/di/fpluquet
>
>
> On Mon, Dec 21, 2009 at 10:04 PM, Henrik Sperre Johansen <
> henrik.s.johansen(a)veloxit.no> wrote:
>
>> On 21.12.2009 20:09, Frederic Pluquet wrote:
>>
>>> Cool :)
>>>
>>> It is added in the last version. Thank you for your participation at
>>> NewInspector !
>>>
>>> I think the best way to preview a form is to show it in the right side of
>>> the NewInspector in place of the description panel, but it is a really big
>>> challenge: NewInspector is unaware about the composants of the frame
>>> (everything is done by model). I must found a way to achieve this :)
>>>
>>> Fréd
>>> ----
>>> Frédéric Pluquet
>>> Université Libre de Bruxelles (ULB)
>>> Assistant
>>> http://www.ulb.ac.be/di/fpluquet
>>>
>> Yes, that was my first thought too, as I told Mariano in a private mail.
>> Sadly, setting the description to be a Form didn't work as well as I had
>> hoped ...
>>
>> So this was the result of the "what can I come up with in 20 mins?"
>> approach :)
>> Probably should be written with a PluggableImageSpec/Morph (which don't
>> exist yet) either way if you're using ToolBuilder for the cross-ui
>> implementation potential.
>>
>> Cheers,
>> Henry
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 21, 2009
Re: [Pharo-project] can we include this in NewInspector ?? (WAS) Fwd: [ANN] MagmaBrowser
by Frederic Pluquet
Yes ! I find a way to view the form in place of the description pane !
Finally it was not so hard :) Check the last version of NewInspector and
inspect for example "Form allInstances".
In the same time, I personalized also the color instances :) For example,
inspect : "Color allInstances first: 1000"
To Pharo developers: if you want to see anything in place of the description
pane, please write a descriptionChildrenSpecBlock (see classes Color and
Form for more explanations) and submit it to me.
Fréd
----
Frédéric Pluquet
Université Libre de Bruxelles (ULB)
Assistant
http://www.ulb.ac.be/di/fpluquet
On Mon, Dec 21, 2009 at 10:04 PM, Henrik Sperre Johansen <
henrik.s.johansen(a)veloxit.no> wrote:
> On 21.12.2009 20:09, Frederic Pluquet wrote:
>
>> Cool :)
>>
>> It is added in the last version. Thank you for your participation at
>> NewInspector !
>>
>> I think the best way to preview a form is to show it in the right side of
>> the NewInspector in place of the description panel, but it is a really big
>> challenge: NewInspector is unaware about the composants of the frame
>> (everything is done by model). I must found a way to achieve this :)
>>
>> Fréd
>> ----
>> Frédéric Pluquet
>> Université Libre de Bruxelles (ULB)
>> Assistant
>> http://www.ulb.ac.be/di/fpluquet
>>
> Yes, that was my first thought too, as I told Mariano in a private mail.
> Sadly, setting the description to be a Form didn't work as well as I had
> hoped ...
>
> So this was the result of the "what can I come up with in 20 mins?"
> approach :)
> Probably should be written with a PluggableImageSpec/Morph (which don't
> exist yet) either way if you're using ToolBuilder for the cross-ui
> implementation potential.
>
> Cheers,
> Henry
>
Dec. 21, 2009
[Pharo-project] nil DNU #size
by csrabak@bol.com.br
In PharoDev (PharoCore1.0rc1 Latest update: #10502) evaluting this expression:
nil size. "Leads to a DNU Instances of UndefinedObject are not indexable"
For some reason, at some moment the #size overload of the Object>>size was taken off (w.r.t. Squeak). This is weird because a lot of protocols that would work flawlessly (Null object pattern) now have to be patched for ifNil:[] or ifNotNil:[].
Also, Pharo coming from Squeak inheritance keeps the Object>>size implementation as:
size
"Primitive. Answer the number of indexable variables in the receiver.
This value is the same as the largest legal subscript. Essential. See Object
documentation whatIsAPrimitive."
<primitive: 62>
self class isVariable ifFalse: [self errorNotIndexable].
^ 0
The version comment is "di 3/29/1999" so this is very old indeed.
This particular decisions is now making even the Luka's suggestion to do Gofer update itself to fail with a MNU. . .
Before I open an issue, I would like to know from the elder folks at the Pharo project if the decision to make this change in the accessing protocol of UndefinedObject was deliberated or we just stumbled a new bug?
--
Cesar Rabak
Dec. 21, 2009
[Pharo-project] Keeping released version image up to date (was Re: did you check in 1.1 how the old browser now support the creation of new method cat)
by Stan Shepherd
Mariano Martinez Peck wrote:
>
> On Mon, Dec 21, 2009 at 9:48 PM, Stan Shepherd
> <stan.shepherd414(a)gmail.com>wrote:
>
>>
>>
>> Mariano Martinez Peck wrote:
>> >
>> > As already said several times. For me, we have to:
>> >
>> > 1) Put ALL our effort and or priority to release the 1.0 stable. This
>> > means,
>> > try to fix the 1.0 opened fixes.
>> >
>> >
>>
>> What is the suggested workflow for those of us who want to work off the
>> stable version, and feedback where we find outstanding issues? I would
>> expect to try out the offending code in a 'patched up to date' version
>> of
>> 1.0, to see if it is reproducable there, in which case a search of open
>> bug
>> reports, and possibly a new bug report, would be in order. Is there an
>> easy
>> way to maintain such an up to date version 1.0, with harvested bug fixes?
>>
>
> In my opinion, it is easy. If you are a Pharo developer you might want to
> use 1.1 and code there. If you are just a "user" of pharo, use the 1.0. If
> there are bugs, just report them following this:
> http://www.pharo-project.org/community/issue-tracking
>
> And then we see. If the bug is a "1.0 issue" we will try to fix it and
> integrated. Maybe it is 1.1. But it doesn't care. You should use 1.0 for
> your applications and report anything you want (issue, feedback, whatever)
> regardless 1.1 (do as if 1.1 doesn't exist).
>
> Cheers
>
> Mariano
>
>
>> ...Stan
>
Hi Mariano, I suppose my question was mainly about how to keep that 1.0
version up with its current fixes. Is it a question of watching out for a
new release on the downloads page.
It would be preferable to pick up all updates (semi)automatically, in which
case you know that a bug you hit is still a bug.
I know I have seen bugs such as the one I just logged, but felt they were
likely already in the works, or caused by something I'd done. If I can
easily keep an image as the 'gold standard' of where a patched up to date
image should be, I'm more likely to decide something really is a bug and log
it.
Cheeers, ...Stan
--
View this message in context: http://n2.nabble.com/Re-did-you-check-in-1-1-how-the-old-browser-now-suppor…
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Dec. 21, 2009
Re: [Pharo-project] Name: SLICE-allowUnderscoreAssignmentFix-AlainPlantec.1
by Alain Plantec
Stéphane Ducasse a écrit :
> I lost track about this change.
> Alain should I integrate it?
>
I've to check because of SLICE-UnderscoresInIdentifiers from Lukas which
has been integrated (#11106).
Alain
> Stef
>
> Name: SLICE-allowUnderscoreAssignmentFix-AlainPlantec.1
> Author: AlainPlantec
> Time: 4 December 2009, 5:15:50 pm
> UUID: f1c44699-23e8-46b5-a7d2-27db7b31c14e
> Ancestors:
> Dependencies: Compiler-AlainPlantec.147
>
> make the allowUnderscoreAssignment preference work
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
Dec. 21, 2009
Re: [Pharo-project] Long method can not be compiled using #compile: aString
by Nicolas Cellier
Shouldn't Parser Encoder & co just raise Error and Warning, and let
the upper level handle these (or not) ?
Expert driver methods would install ad-hoc handlers actions (like
inserting an error message in source controller, or opening a
Debugger, or. a SyntaxErrror window, or...)
Nicolas
2009/12/21 Bart Gauquie <bart.gauquie(a)gmail.com>:
> Hi,
>
> First load the latest http://www.squeaksource.com/MorphicsRecordNPlay
> package.
> Then for instance following fails if I evaluate it in a workspace:
> MorphicReplayDemoTest compile:
> 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 1037@504 to: 979@482.
> self addMMEFrom: 979@482 to: 905@464.
> self addMMEFrom: 905@464 to: 823@462.
> self addMMEFrom: 823@462 to: 745@482.
> self addMMEFrom: 745@482 to: 685@520.
> self addMMEFrom: 685@520 to: 651@559.
> self addMMEFrom: 651@559 to: 643@579.
> self addMMEFrom: 643@579 to: 653@579.
> self addMMEFrom: 653@579 to: 675@564.
> self addMMEFrom: 675@564 to: 810@452.
> self addMMEFrom: 810@452 to: 923@353.
> self addMMEFrom: 923@353 to: 1005@287.
> self addMMEFrom: 1005@287 to: 1052@257.
> self addMMEFrom: 1052@257 to: 1061@252.
> self addMMEFrom: 1061@252 to: 1059@259.
> self addMMEFrom: 1059@259 to: 998@314.
> self addMMEFrom: 998@314 to: 898@414.
> self addMMEFrom: 898@414 to: 827@502.
> self addMMEFrom: 827@502 to: 789@570.
> self addMMEFrom: 789@570 to: 792@610.
> self addMMEFrom: 792@610 to: 839@630.
> self addMMEFrom: 839@630 to: 929@620.
> self addMMEFrom: 929@620 to: 1039@579.
> self addMMEFrom: 1039@579 to: 1086@549.
> self addMMEFrom: 1086@549 to: 1158@447.
> self addMMEFrom: 1158@447 to: 1147@379.
> self addMMEFrom: 1147@379 to: 1066@377.
> self addMMEFrom: 1066@377 to: 930@416.
> self addMMEFrom: 930@416 to: 864@446.
> self addMMEFrom: 864@446 to: 734@530.
> self addMMEFrom: 734@530 to: 714@548.
> self addMMEFrom: 714@548 to: 734@546.
> self addMMEFrom: 734@546 to: 815@515.
> self addMMEFrom: 815@515 to: 875@491.
> self addMMEFrom: 875@491 to: 1065@407.
> self addMMEFrom: 1065@407 to: 1128@361.
> self addMMEFrom: 1128@361 to: 1142@343.
> self addMMEFrom: 1142@343 to: 1112@340.
> self addMMEFrom: 1112@340 to: 1064@349.
> self addMMEFrom: 1064@349 to: 864@416.
> self addMMEFrom: 864@416 to: 757@471.
> self addMMEFrom: 757@471 to: 705@511.
> self addMMEFrom: 705@511 to: 701@524.
> self addMMEFrom: 701@524 to: 743@528.
> self addMMEFrom: 743@528 to: 845@509.
> self addMMEFrom: 845@509 to: 914@493.
> self addMMEFrom: 914@493 to: 1101@446.
> self addMMEFrom: 1101@446 to: 1154@427.
> self addMMEFrom: 1154@427 to: 1163@423.
> self addMMEFrom: 1163@423 to: 1156@422.
> self addMMEFrom: 1156@422 to: 1129@424.
> self addMMEFrom: 1129@424 to: 923@449.
> self addMMEFrom: 923@449 to: 785@479.
> self addMMEFrom: 785@479 to: 689@503.
> self addMMEFrom: 689@503 to: 651@512.
> self addMMEFrom: 651@512 to: 650@512.
> self addMMEFrom: 650@512 to: 672@508.
> self addMMEFrom: 672@508 to: 773@492.
> self addMMEFrom: 773@492 to: 916@486.
> self addMMEFrom: 916@486 to: 1066@494.
> self addMMEFrom: 1066@494 to: 1175@508.
> self addMMEFrom: 1175@508 to: 1229@514.
> self addMMEFrom: 1229@514 to: 1232@514.
> self addMMEFrom: 1232@514 to: 1142@492.
> self addMMEFrom: 1142@492 to: 986@483.
> self addMMEFrom: 986@483 to: 810@498.
> self addMMEFrom: 810@498 to: 678@519.
> self addMMEFrom: 678@519 to: 637@523.
> self addMMEFrom: 637@523 to: 606@502.
> self addMMEFrom: 606@502 to: 659@442.
> self addMMEFrom: 659@442 to: 769@365.
> self addMMEFrom: 769@365 to: 911@316.
> self addMMEFrom: 911@316 to: 1052@318.
> self addMMEFrom: 1052@318 to: 1129@360.
> self addMMEFrom: 1129@360 to: 1153@403.
> self addMMEFrom: 1153@403 to: 1127@443.
> self addMMEFrom: 1127@443 to: 1015@491.
> self addMMEFrom: 1015@491 to: 850@536.
> self addMMEFrom: 850@536 to: 697@571.
> self addMMEFrom: 697@571 to: 642@578.
> self addMMEFrom: 642@578 to: 571@545.
> self addMMEFrom: 571@545 to: 604@485.
> self addMMEFrom: 604@485 to: 701@419.
> self addMMEFrom: 701@419 to: 843@383.
> self addMMEFrom: 843@383 to: 919@383.
> self addMMEFrom: 919@383 to: 1095@425.
> self addMMEFrom: 1095@425 to: 1126@443.
> self addMMEFrom: 1126@443 to: 1102@449.
> self addMMEFrom: 1102@449 to: 984@468.
> self addMMEFrom: 984@468 to: 829@509.
> self addMMEFrom: 829@509 to: 703@547.
> self addMMEFrom: 703@547 to: 637@555.
> self addMMEFrom: 637@555 to: 633@531.
> self addMMEFrom: 633@531 to: 694@468.
> self addMMEFrom: 694@468 to: 809@407.
> self addMMEFrom: 809@407 to: 946@380.
> self addMMEFrom: 946@380 to: 1011@378.
> self addMMEFrom: 1011@378 to: 1119@393.
> self addMMEFrom: 1119@393 to: 1110@393.
> self addMMEFrom: 1110@393 to: 1010@388.
> self addMMEFrom: 1010@388 to: 859@402.
> self addMMEFrom: 859@402 to: 727@433.
> self addMMEFrom: 727@433 to: 665@454.
> self addMMEFrom: 665@454 to: 663@461.
> self addMMEFrom: 663@461 to: 683@469.
> self addMMEFrom: 683@469 to: 837@492.
> self addMMEFrom: 837@492 to: 989@495.
> self addMMEFrom: 989@495 to: 1103@476.
> self addMMEFrom: 1103@476 to: 1153@433.
> self addMMEFrom: 1153@433 to: 1163@404.
> self addMMEFrom: 1163@404 to: 1147@307.
> self addMMEFrom: 1147@307 to: 1086@294.
> self addMMEFrom: 1086@294 to: 995@324.
> self addMMEFrom: 995@324 to: 935@357.
> self addMMEFrom: 935@357 to: 922@366.
> self addMMEFrom: 922@366 to: 925@370.
> self addMMEFrom: 925@370 to: 941@379.
> self addMMEFrom: 941@379 to: 974@389.
> self addMMEFrom: 974@389 to: 1010@399.
> self addMMEFrom: 1010@399 to: 1036@408.
> self addMMEFrom: 1036@408 to: 1052@414.
> self addMMEFrom: 1052@414 to: 1056@416.
> self addMMEFrom: 1056@416 to: 1061@418.
> self addMMEFrom: 1061@418 to: 1068@419.
> self addMMEFrom: 1068@419 to: 1078@418.
> self addMMEFrom: 1078@418 to: 1086@414.
> self addMMEFrom: 1086@414 to: 1089@411.
> self addMMEFrom: 1089@411 to: 1095@404.
> self addMMEFrom: 1095@404 to: 1097@404.
> self addMMEFrom: 1097@404 to: 1099@406.
> self addMMEFrom: 1099@406 to: 1100@407.
> self addMMEFrom: 1100@407 to: 1101@408.
> self addMMEFrom: 1101@408 to: 1101@409.
> self addMMEFrom: 1101@409 to: 1101@410.
> self addMMEFrom: 1101@410 to: 1102@411.
> self addMMEFrom: 1102@411 to: 1104@412.
> self addMMEFrom: 1104@412 to: 1106@411.
> self addMMEFrom: 1106@411 to: 1110@409.
> self addMMEFrom: 1110@409 to: 1112@408.
> self addMMEFrom: 1112@408 to: 1114@407.
> self addMMEFrom: 1114@407 to: 1115@408.
> self addMMEFrom: 1115@408 to: 1115@408.
> self addMMEFrom: 1115@408 to: 1115@407.
> MouseButtonEvent new.
> MouseButtonEvent new.
> self addMMEFrom: 1131@401 to: 1129@403.
> self addMMEFrom: 1129@403 to: 1121@408.
> self addMMEFrom: 1121@408 to: 1106@416.
> self addMMEFrom: 1106@416 to: 1084@426.
> self addMMEFrom: 1084@426 to: 1051@443.
> self addMMEFrom: 1051@443 to: 1019@470.
> self addMMEFrom: 1019@470 to: 995@504.
> self addMMEFrom: 995@504 to: 981@546.
> self addMMEFrom: 981@546 to: 980@592.
> self addMMEFrom: 980@592 to: 990@634.
> self addMMEFrom: 990@634 to: 1012@665.
> self addMMEFrom: 1012@665 to: 1043@680.
> self addMMEFrom: 1043@680 to: 1076@677.
> self addMMEFrom: 1076@677 to: 1132@658.
> self addMMEFrom: 1132@658 to: 1189@626.
> self addMMEFrom: 1189@626 to: 1205@606.
> self addMMEFrom: 1205@606 to: 1222@543.
> self addMMEFrom: 1222@543 to: 1219@504.
> self addMMEFrom: 1219@504 to: 1207@464.
> self addMMEFrom: 1207@464 to: 1190@425.
> self addMMEFrom: 1190@425 to: 1180@409.
> self addMMEFrom: 1180@409 to: 1140@387.
> self addMMEFrom: 1140@387 to: 1092@397.
> self addMMEFrom: 1092@397 to: 1044@424.
> self addMMEFrom: 1044@424 to: 1004@464.
> self addMMEFrom: 1004@464 to: 977@513.
> self addMMEFrom: 977@513 to: 965@565.
> self addMMEFrom: 965@565 to: 965@614.
> self addMMEFrom: 965@614 to: 977@656.
> self addMMEFrom: 977@656 to: 1001@689.
> self addMMEFrom: 1001@689 to: 1035@709.
> self addMMEFrom: 1035@709 to: 1067@714.
> self addMMEFrom: 1067@714 to: 1094@710.
> self addMMEFrom: 1094@710 to: 1219@673.
> self addMMEFrom: 1219@673 to: 1254@635.
> self addMMEFrom: 1254@635 to: 1269@594.
> self addMMEFrom: 1269@594 to: 1277@552.
> self addMMEFrom: 1277@552 to: 1277@530.
> self addMMEFrom: 1277@530 to: 1251@459.
> self addMMEFrom: 1251@459 to: 1215@418.
> self addMMEFrom: 1215@418 to: 1180@389.
> self addMMEFrom: 1180@389 to: 1143@377.
> self addMMEFrom: 1143@377 to: 1092@379.
> self addMMEFrom: 1092@379 to: 1041@397.
> self addMMEFrom: 1041@397 to: 1019@410.
> self addMMEFrom: 1019@410 to: 972@460.
> self addMMEFrom: 972@460 to: 955@499.
> self addMMEFrom: 955@499 to: 951@541.
> self addMMEFrom: 951@541 to: 954@580.
> self addMMEFrom: 954@580 to: 960@597.
> self addMMEFrom: 960@597 to: 991@639.
> self addMMEFrom: 991@639 to: 1027@657.
> self addMMEFrom: 1027@657 to: 1066@666.
> self addMMEFrom: 1066@666 to: 1122@665.
> self addMMEFrom: 1122@665 to: 1199@651.
> self addMMEFrom: 1199@651 to: 1245@625.
> self addMMEFrom: 1245@625 to: 1270@596.
> self addMMEFrom: 1270@596 to: 1284@565.
> self addMMEFrom: 1284@565 to: 1287@528.
> self addMMEFrom: 1287@528 to: 1275@486.
> self addMMEFrom: 1275@486 to: 1242@445.
> self addMMEFrom: 1242@445 to: 1204@412.
> self addMMEFrom: 1204@412 to: 1171@390.
> self addMMEFrom: 1171@390 to: 1126@383.
> self addMMEFrom: 1126@383 to: 1083@394.
> self addMMEFrom: 1083@394 to: 1040@420.
> self addMMEFrom: 1040@420 to: 1025@438.
> self addMMEFrom: 1025@438 to: 996@506.
> self addMMEFrom: 996@506 to: 992@555.
> self addMMEFrom: 992@555 to: 999@596.
> self addMMEFrom: 999@596 to: 1015@629.
> self addMMEFrom: 1015@629 to: 1027@641.
> self addMMEFrom: 1027@641 to: 1068@658.
> self addMMEFrom: 1068@658 to: 1115@655.
> self addMMEFrom: 1115@655 to: 1184@640.
> self addMMEFrom: 1184@640 to: 1234@616.
> self addMMEFrom: 1234@616 to: 1266@589.
> self addMMEFrom: 1266@589 to: 1290@555.
> self addMMEFrom: 1290@555 to: 1301@518.
> self addMMEFrom: 1301@518 to: 1296@474.
> self addMMEFrom: 1296@474 to: 1267@430.
> self addMMEFrom: 1267@430 to: 1223@392.
> self addMMEFrom: 1223@392 to: 1187@370.
> self addMMEFrom: 1187@370 to: 1172@366.
> self addMMEFrom: 1172@366 to: 1115@375.
> self addMMEFrom: 1115@375 to: 1076@397.
> self addMMEFrom: 1076@397 to: 1046@429.
> self addMMEFrom: 1046@429 to: 1027@468.
> self addMMEFrom: 1027@468 to: 1022@489.
> self addMMEFrom: 1022@489 to: 1023@545.
> self addMMEFrom: 1023@545 to: 1033@567.
> self addMMEFrom: 1033@567 to: 1061@590.
> self addMMEFrom: 1061@590 to: 1104@603.
> self addMMEFrom: 1104@603 to: 1165@605.
> self addMMEFrom: 1165@605 to: 1220@593.
> self addMMEFrom: 1220@593 to: 1258@571.
> self addMMEFrom: 1258@571 to: 1284@543.
> self addMMEFrom: 1284@543 to: 1298@509.
> self addMMEFrom: 1298@509 to: 1299@466.
> self addMMEFrom: 1299@466 to: 1276@414.
> self addMMEFrom: 1276@414 to: 1255@390.
> self addMMEFrom: 1255@390 to: 1189@340.
> self addMMEFrom: 1189@340 to: 1148@334.
> self addMMEFrom: 1148@334 to: 1094@346.
> self addMMEFrom: 1094@346 to: 1051@373.
> self addMMEFrom: 1051@373 to: 1021@412.
> self addMMEFrom: 1021@412 to: 1006@457.
> self addMMEFrom: 1006@457 to: 1002@506.
> self addMMEFrom: 1002@506 to: 1006@557.
> self addMMEFrom: 1006@557 to: 1012@581.
> self addMMEFrom: 1012@581 to: 1041@637.
> self addMMEFrom: 1041@637 to: 1070@657.
> self addMMEFrom: 1070@657 to: 1127@660.
> self addMMEFrom: 1127@660 to: 1209@644.
> self addMMEFrom: 1209@644 to: 1234@630.
> self addMMEFrom: 1234@630 to: 1284@569.
> self addMMEFrom: 1284@569 to: 1302@521.
> self addMMEFrom: 1302@521 to: 1304@466.
> self addMMEFrom: 1304@466 to: 1286@410.
> self addMMEFrom: 1286@410 to: 1247@369.
> self addMMEFrom: 1247@369 to: 1208@347.
> self addMMEFrom: 1208@347 to: 1196@342.
> self addMMEFrom: 1196@342 to: 1170@346.
> self addMMEFrom: 1170@346 to: 1151@356.
> self addMMEFrom: 1151@356 to: 1137@363.
> self addMMEFrom: 1137@363 to: 1133@366.
> self addMMEFrom: 1133@366 to: 1133@366.
> self addMMEFrom: 1133@366 to: 1135@372.
> self addMMEFrom: 1135@372 to: 1133@381.
> self addMMEFrom: 1133@381 to: 1128@393.
> self addMMEFrom: 1128@393 to: 1126@399.
> self addMMEFrom: 1126@399 to: 1125@401.
> self addMMEFrom: 1125@401 to: 1125@401.
> self addMMEFrom: 1125@401 to: 1125@400.
> self addMMEFrom: 1125@400 to: 1124@401.
> self addMMEFrom: 1124@401 to: 1124@403.
> self addMMEFrom: 1124@403 to: 1124@404.
> self addMMEFrom: 1124@404 to: 1124@405.
> self addMMEFrom: 1124@405 to: 1124@404.
> MouseButtonEvent new.
> MouseButtonEvent new.
> '
>
> These are autogenerated contents I want to export as a test case. The
> strange thing is that, if I manually create the testMethod using the system
> browser, and paste the content in it; it works fine.
> Kind Regards,
> Bart
> 2009/12/21 Eliot Miranda <eliot.miranda(a)gmail.com>
>>
>> Hi Bart,
>> Â Â Â I still want to take a look at this specific case because the compiler
>> should produce a proper error message, not an internal error. Â So could you
>> please package it up as a reproducible case, or email me the full string
>> that fails?
>> TIA
>>
>> 2009/12/20 Bart Gauquie <bart.gauquie(a)gmail.com>
>>>
>>> Dear all,
>>>
>>> I'm developing code which generates a method content, compiles it and
>>> adds it to an existing class.
>>> I compile the message using #compile: message:
>>> for instance:
>>> MorphicReplayDemoTest compile: '
>>> testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 651@559 to: 643@579.
>>> '.
>>>
>>> This works fine. However if the contents of the method is too long; for
>>> instance:
>>> if the self addMMEFrom: 1054@512 to: 1037@504. is repeated around 250
>>> times; I get following error (see stack below)
>>> The strange thing is that if I manually add that method using the editor
>>> and paste it, it works just fine. I even tested up to 5000 lines of code;
>>> its slow, but its working.
>>> Any ideas how to solve this?
>>> Thanks,
>>> Bart
>>>
>>> I'm using Pharo 1.0 rc update: 10502; using Ubuntu 9.10, using vm
>>> pharo-vm-0.15.2f-linux.
>>> THERE_BE_DRAGONS_HERE
>>> MessageNotUnderstood: receiver of "<" is nil
>>> 20 December 2009 8:17:14 pm
>>>
>>> VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update:
>>> #10074]
>>> Image: PharoCore1.0rc1 [Latest update: #10502]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground
>>> Image
>>> Trusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground
>>> Image/secure
>>> Untrusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0
>>> Playground Image/My Squeak
>>>
>>> UndefinedObject(Object)>>doesNotUnderstand: #<
>>> Receiver: nil
>>> Arguments and temporary variables:
>>> aMessage: < 0
>>> exception: MessageNotUnderstood: receiver of "<" is nil
>>> resumeValue: nil
>>> Receiver's instance variables:
>>> nil
>>>
>>> EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
>>> Receiver: {an EncoderForV3PlusClosures}
>>> Arguments and temporary variables:
>>> literalIndex: nil
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
>>> 'recording'->{recording}...etc...
>>> nTemps: 0
>>> supered: false
>>> requestor: nil
>>> class: MorphicReplayDemoTest
>>> selector: #testMethod
>>> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
>>> 482. ...etc...
>>> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
>>> #<->{<} #...etc...
>>> litIndSet: a
>>> Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
>>> litSet: a LiteralDictionary(size 402)
>>> sourceRanges: a Dictionary(size 853)
>>> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
>>> 5778). ...etc...
>>> addedSelectorAndMethodClassLiterals: false
>>> stream: {an EncoderForV3PlusClosures}
>>> position: 0
>>> rootNode: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEF...etc...
>>> blockExtentsToLocals: nil
>>>
>>>
>>> EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
>>> Receiver: {an EncoderForV3PlusClosures}
>>> Arguments and temporary variables:
>>> genSelector: #genPushLiteral:
>>> args: #(nil)
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
>>> 'recording'->{recording}...etc...
>>> nTemps: 0
>>> supered: false
>>> requestor: nil
>>> class: MorphicReplayDemoTest
>>> selector: #testMethod
>>> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
>>> 482. ...etc...
>>> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
>>> #<->{<} #...etc...
>>> litIndSet: a
>>> Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
>>> litSet: a LiteralDictionary(size 402)
>>> sourceRanges: a Dictionary(size 853)
>>> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
>>> 5778). ...etc...
>>> addedSelectorAndMethodClassLiterals: false
>>> stream: {an EncoderForV3PlusClosures}
>>> position: 0
>>> rootNode: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEF...etc...
>>> blockExtentsToLocals: nil
>>>
>>> EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
>>> Receiver: {an EncoderForV3PlusClosures}
>>> Arguments and temporary variables:
>>> literalIndex: nil
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
>>> 'recording'->{recording}...etc...
>>> nTemps: 0
>>> supered: false
>>> requestor: nil
>>> class: MorphicReplayDemoTest
>>> selector: #testMethod
>>> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
>>> 482. ...etc...
>>> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
>>> #<->{<} #...etc...
>>> litIndSet: a
>>> Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
>>> litSet: a LiteralDictionary(size 402)
>>> sourceRanges: a Dictionary(size 853)
>>> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
>>> 5778). ...etc...
>>> addedSelectorAndMethodClassLiterals: false
>>> stream: {an EncoderForV3PlusClosures}
>>> position: 0
>>> rootNode: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEF...etc...
>>> blockExtentsToLocals: nil
>>>
>>> LiteralNode>>sizeCodeForValue:
>>> Receiver: {397}
>>> Arguments and temporary variables:
>>> encoder: {an EncoderForV3PlusClosures}
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> key: 397
>>> code: -3
>>> index: nil
>>>
>>> [] in MessageNode>>sizeCodeForValue:
>>> Receiver: {1092 @ 397}
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {1092}
>>> selector: {@}
>>> precedence: 2
>>> special: 0
>>> arguments: #({397})
>>> sizes: #(nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> Array(SequenceableCollection)>>collect:
>>> Receiver: #({397})
>>> Arguments and temporary variables:
>>> aBlock: [closure] in MessageNode>>sizeCodeForValue:
>>> newCollection: #(nil)
>>> index: 1
>>> indexLimiT: 1
>>> Receiver's instance variables:
>>> #({397})
>>>
>>> MessageNode>>sizeCodeForValue:
>>> Receiver: {1092 @ 397}
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {1092}
>>> selector: {@}
>>> precedence: 2
>>> special: 0
>>> arguments: #({397})
>>> sizes: #(nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> [] in MessageNode>>sizeCodeForValue:
>>> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {self}
>>> selector: {addMMEFrom:to:}
>>> precedence: 3
>>> special: 0
>>> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
>>> sizes: #(nil nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> OrderedCollection>>collect:
>>> Receiver: an OrderedCollection({1140 @ 387} {1092 @ 397})
>>> Arguments and temporary variables:
>>> aBlock: [closure] in MessageNode>>sizeCodeForValue:
>>> newCollection: an OrderedCollection(7)
>>> index: 4
>>> Receiver's instance variables:
>>> array: an Array(nil nil {1140 @ 387} {1092 @ 397} nil nil nil nil nil
>>> nil)
>>> firstIndex: 3
>>> lastIndex: 4
>>>
>>> MessageNode>>sizeCodeForValue:
>>> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
>>> Arguments and temporary variables:
>>> <<error during printing>
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {self}
>>> selector: {addMMEFrom:to:}
>>> precedence: 3
>>> special: 0
>>> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
>>> sizes: #(nil nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> MessageNode(ParseNode)>>sizeCodeForEffect:
>>> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
>>> Arguments and temporary variables:
>>> encoder: {an EncoderForV3PlusClosures}
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {self}
>>> selector: {addMMEFrom:to:}
>>> precedence: 3
>>> special: 0
>>> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
>>> sizes: #(nil nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> MessageNode>>sizeCodeForEffect:
>>> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
>>> Arguments and temporary variables:
>>> encoder: {an EncoderForV3PlusClosures}
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> receiver: {self}
>>> selector: {addMMEFrom:to:}
>>> precedence: 3
>>> special: 0
>>> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
>>> sizes: #(nil nil)
>>> equalNode: nil
>>> caseErrorNode: nil
>>>
>>> BlockNode>>sizeCodeExceptLast:
>>> Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEFrom: 1037 @ 504 to: 979 @ 482.
>>> ...etc...
>>> Arguments and temporary variables:
>>> encoder: {an EncoderForV3PlusClosures}
>>> codeSize: 2564
>>> i: 169
>>> statement: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
>>> iLimiT: 287
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> arguments: #()
>>> statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @
>>> 504} {...etc...
>>> returns: true
>>> nArgsNode: nil
>>> size: nil
>>> remoteCopyNode: nil
>>> temporaries: an OrderedCollection()
>>> optimized: false
>>> actualScopeIfOptimized: nil
>>> blockExtent: (0 to: 2)
>>> remoteTempNode: nil
>>> copiedValues: nil
>>> closureCreationNode: nil
>>> startOfLastStatement: 11519
>>>
>>> BlockNode>>sizeCodeForEvaluatedValue:
>>> Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEFrom: 1037 @ 504 to: 979 @ 482.
>>> ...etc...
>>> Arguments and temporary variables:
>>> encoder: {an EncoderForV3PlusClosures}
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> arguments: #()
>>> statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @
>>> 504} {...etc...
>>> returns: true
>>> nArgsNode: nil
>>> size: nil
>>> remoteCopyNode: nil
>>> temporaries: an OrderedCollection()
>>> optimized: false
>>> actualScopeIfOptimized: nil
>>> blockExtent: (0 to: 2)
>>> remoteTempNode: nil
>>> copiedValues: nil
>>> closureCreationNode: nil
>>> startOfLastStatement: 11519
>>>
>>> BytecodeAgnosticMethodNode>>generate:
>>> Receiver: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEFrom: 1037 @ 504 to: 9...etc...
>>> Arguments and temporary variables:
>>> trailer: #(0 0 0 0)
>>> primErrNode: nil
>>> blkSize: nil
>>> nLits: nil
>>> literals: nil
>>> stack: nil
>>> method: nil
>>> locals: nil
>>> lit: nil
>>> Receiver's instance variables:
>>> comment: nil
>>> pc: nil
>>> selectorOrFalse: #testMethod
>>> precedence: 1
>>> arguments: #()
>>> block: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMMEFrom: 1037 @ 5...etc...
>>> primitive: 0
>>> encoder: {an EncoderForV3PlusClosures}
>>> temporaries: #()
>>> properties: an AdditionalMethodState
>>> sourceText: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFr...etc...
>>> locationCounter: 3
>>> localsPool: an IdentitySet()
>>>
>>> CompiledMethodWithNode class>>generateMethodFromNode:trailer:
>>> Receiver: CompiledMethodWithNode
>>> Arguments and temporary variables:
>>> aMethodNode: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addM...etc...
>>> bytes: #(0 0 0 0)
>>> Receiver's instance variables:
>>> superclass: Object
>>> methodDict: a MethodDictionary(#method->a CompiledMethod(650:
>>> CompiledMethodWit...etc...
>>> format: 134
>>> instanceVariables: #('node' 'method')
>>> organization: ('accessing' method node selector)
>>> ('private' method: node:)
>>>
>>> subclasses: nil
>>> name: #CompiledMethodWithNode
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'Compiler-Support'
>>> traitComposition: nil
>>> localSelectors: nil
>>>
>>> MorphicReplayDemoTest
>>> class(Behavior)>>compile:classified:notifying:trailer:ifFail:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> code: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> category: #'as yet unclassified'
>>> requestor: nil
>>> bytes: #(0 0 0 0)
>>> failBlock: [closure] in MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:...etc...
>>> methodNode: testMethod
>>> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
>>> self addMM...etc...
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> text: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> category: #'as yet unclassified'
>>> changeStamp: 'BartGauquie 12/20/2009 20:17'
>>> requestor: nil
>>> logSource: true
>>> methodAndNode: nil
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:withStamp:notifying:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> text: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> category: #'as yet unclassified'
>>> changeStamp: 'BartGauquie 12/20/2009 20:17'
>>> requestor: nil
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:notifying:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> text: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> category: #'as yet unclassified'
>>> requestor: nil
>>> stamp: 'BartGauquie 12/20/2009 20:17'
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> code: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> requestor: nil
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> MorphicReplayDemoTest class(Behavior)>>compile:
>>> Receiver: MorphicReplayDemoTest
>>> Arguments and temporary variables:
>>> code: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> Receiver's instance variables:
>>> superclass: AbstractReplayTestCase
>>> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
>>> MorphicRepla...etc...
>>> format: 134
>>> instanceVariables: nil
>>> organization: ('tests' testMethod)
>>>
>>> subclasses: nil
>>> name: #MorphicReplayDemoTest
>>> classPool: nil
>>> sharedPools: nil
>>> environment: Smalltalk
>>> category: #'MorphicsRecordNPlay-Model'
>>> traitComposition: nil
>>> localSelectors: nil
>>> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
>>> Set(#testM...etc...
>>>
>>> ByteString>>DoIt
>>> Receiver: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 1037@504 to: 979@48...etc...
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 1037@504 to: 979@48...etc...
>>>
>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>> Receiver: a Compiler
>>> Arguments and temporary variables:
>>> textOrStream: a ReadWriteStream 'MorphicReplayDemoTest
>>> compile: self.'
>>> aContext: nil
>>> receiver: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom...etc...
>>> aRequestor: a TextMorphEditor
>>> failBlock: [closure] in [] in
>>> TextMorphEditor(ParagraphEditor)>>evaluateSelecti...etc...
>>> logFlag: true
>>> methodNode: DoIt
>>> ^ MorphicReplayDemoTest compile: self
>>> method: a CompiledMethod(2378: ByteString>>DoIt)
>>> value: nil
>>> toLog: nil
>>> itsSelection: nil
>>> itsSelectionString: nil
>>> Receiver's instance variables:
>>> sourceStream: a ReadWriteStream 'MorphicReplayDemoTest
>>> compile: self.'
>>> requestor: a TextMorphEditor
>>> class: ByteString
>>> category: nil
>>> context: nil
>>> parser: a Parser
>>>
>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> rcvr: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> ctxt: nil
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> BlockClosure>>on:do:
>>> Receiver: [closure] in
>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>> Arguments and temporary variables:
>>> exception: OutOfScopeNotification
>>> handlerAction: [closure] in
>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection...etc...
>>> handlerActive: true
>>> Receiver's instance variables:
>>> outerContext: TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>> startpc: 116
>>> numArgs: 0
>>>
>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> result: nil
>>> rcvr: 'testMethod
>>> self addMMEFrom: 1054@512 to: 1037@504.
>>> self addMMEFrom: 10...etc...
>>> ctxt: nil
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor(ParagraphEditor)>>doIt
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> [] in TextMorphEditor(ParagraphEditor)>>doIt:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>>
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> aBlock: [closure] in TextMorphEditor(ParagraphEditor)>>doIt:
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor(ParagraphEditor)>>doIt:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> characterStream: a WriteStream ''
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> keyEvent: [keystroke '<Cmd-d>']
>>> typeAheadStream: a WriteStream ''
>>> honorCommandKeys: true
>>> keyValue: 100
>>> keyChar: $d
>>> char: $d
>>> action: #doIt:
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor>>dispatchOnKeyEvent:with:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> keyEvent: [keystroke '<Cmd-d>']
>>> typeAheadStream: a WriteStream ''
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor(ParagraphEditor)>>keystroke:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> keyEvent: [keystroke '<Cmd-d>']
>>> typeAhead: a WriteStream ''
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> TextMorphEditor>>keystroke:
>>> Receiver: a TextMorphEditor
>>> Arguments and temporary variables:
>>> keyEvent: [keystroke '<Cmd-d>']
>>> Receiver's instance variables:
>>> model: a NewInspector
>>> paragraph: a MultiNewParagraph
>>> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
>>> 103@32
>>> ...etc...
>>> stopBlock: a CharacterBlock with index 1 and character $M and rectangle
>>> 0@0 cor...etc...
>>> beginTypeInBlock: nil
>>> emphasisHere: an Array(a TextFontChange font: 2)
>>> initialText: a Text for 'MorphicReplayDemoTest
>>> compile: self
>>> '
>>> selectionShowing: false
>>> otherInterval: (38 to: 38)
>>> lastParentLocation: nil
>>> morph: a TextMorphForEditView(3730)
>>> oldInterval: nil
>>> pivotBlock: nil
>>>
>>> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>> Receiver: a TextMorphForEditView(3730)
>>> Arguments and temporary variables:
>>> evt: [keystroke '<Cmd-d>']
>>> Receiver's instance variables:
>>> bounds: 0@0 corner: 358@34
>>> owner: a TransformMorph(942)
>>> submorphs: #()
>>> fullBounds: 0@0 corner: 358@34
>>> color: Color black
>>> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
>>> borderWidth: 0
>>> borderColor: Color black
>>> textStyle: a TextStyle Bitmap DejaVu Sans 9
>>> text: a Text for 'MorphicReplayDemoTest
>>> compile: self.'
>>> wrapFlag: true
>>> paragraph: a MultiNewParagraph
>>> editor: a TextMorphEditor
>>> container: nil
>>> predecessor: nil
>>> successor: nil
>>> backgroundColor: nil
>>> margins: nil
>>> editHistory: a TextMorphCommandHistory
>>> editView: a PluggableTextMorphPlus(2866)
>>> acceptOnCR: false
>>>
>>> TextMorphForEditView(TextMorph)>>handleInteraction:
>>> Receiver: a TextMorphForEditView(3730)
>>> Arguments and temporary variables:
>>> interactionBlock: [closure] in [] in
>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>> oldEditor: a TextMorphEditor
>>> oldParagraph: a MultiNewParagraph
>>> oldText: a Text for 'MorphicReplayDemoTest
>>> compile: self.'
>>> Receiver's instance variables:
>>> bounds: 0@0 corner: 358@34
>>> owner: a TransformMorph(942)
>>> submorphs: #()
>>> fullBounds: 0@0 corner: 358@34
>>> color: Color black
>>> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
>>> borderWidth: 0
>>> borderColor: Color black
>>> textStyle: a TextStyle Bitmap DejaVu Sans 9
>>> text: a Text for 'MorphicReplayDemoTest
>>> compile: self.'
>>> wrapFlag: true
>>> paragraph: a MultiNewParagraph
>>> editor: a TextMorphEditor
>>> container: nil
>>> predecessor: nil
>>> successor: nil
>>> backgroundColor: nil
>>> margins: nil
>>> editHistory: a TextMorphCommandHistory
>>> editView: a PluggableTextMorphPlus(2866)
>>> acceptOnCR: false
>>>
>>> TextMorphForEditView>>handleInteraction:
>>> Receiver: a TextMorphForEditView(3730)
>>> Arguments and temporary variables:
>>> interActionBlock: [closure] in [] in
>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>> Receiver's instance variables:
>>> bounds: 0@0 corner: 358@34
>>> owner: a TransformMorph(942)
>>> submorphs: #()
>>> fullBounds: 0@0 corner: 358@34
>>> color: Color black
>>> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
>>> borderWidth: 0
>>> borderColor: Color black
>>> textStyle: a TextStyle Bitmap DejaVu Sans 9
>>> text: a Text for 'MorphicReplayDemoTest
>>> compile: self.'
>>> wrapFlag: true
>>> paragraph: a MultiNewParagraph
>>> editor: a TextMorphEditor
>>> container: nil
>>> predecessor: nil
>>> successor: nil
>>> backgroundColor: nil
>>> margins: nil
>>> editHistory: a TextMorphCommandHistory
>>> editView: a PluggableTextMorphPlus(2866)
>>> acceptOnCR: false
>>>
>>>
>>> --- The full stack ---
>>> UndefinedObject(Object)>>doesNotUnderstand: #<
>>> EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
>>>
>>> EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
>>> EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
>>> LiteralNode>>sizeCodeForValue:
>>> [] in MessageNode>>sizeCodeForValue:
>>> Array(SequenceableCollection)>>collect:
>>> MessageNode>>sizeCodeForValue:
>>> [] in MessageNode>>sizeCodeForValue:
>>> OrderedCollection>>collect:
>>> MessageNode>>sizeCodeForValue:
>>> MessageNode(ParseNode)>>sizeCodeForEffect:
>>> MessageNode>>sizeCodeForEffect:
>>> BlockNode>>sizeCodeExceptLast:
>>> BlockNode>>sizeCodeForEvaluatedValue:
>>> BytecodeAgnosticMethodNode>>generate:
>>> CompiledMethodWithNode class>>generateMethodFromNode:trailer:
>>> MorphicReplayDemoTest
>>> class(Behavior)>>compile:classified:notifying:trailer:ifFail:
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:withStamp:notifying:
>>> MorphicReplayDemoTest
>>> class(ClassDescription)>>compile:classified:notifying:
>>> MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
>>> MorphicReplayDemoTest class(Behavior)>>compile:
>>> ByteString>>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 [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>> TextMorphForEditView(TextMorph)>>handleInteraction:
>>> TextMorphForEditView>>handleInteraction:
>>> - - - - - - - - - - - - - - -
>>> - - - - - - - - - - - - - - - - - -
>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>> ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>> DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>> ToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>> 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
>>> -----------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> 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
>
>
>
> --
> imagination is more important than knowledge - Albert Einstein
> Logic will get you from A to B. Imagination will take you everywhere -
> Albert Einstein
> Learn from yesterday, live for today, hope for tomorrow. The important thing
> is not to stop questioning. - Albert Einstein
> The true sign of intelligence is not knowledge but imagination. - Albert
> Einstein
> Gravitation is not responsible for people falling in love. - Albert Einstein
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 21, 2009
[Pharo-project] Issue 1644: BrowserEnvironment(Object)>>doesNotUnderstand: #forPackage:
by Stan Shepherd
VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074]
Image: PharoCore1.0rc1 [Latest update: #10500]
Class browser used (if applicable):O2PackageBrowserAdaptor
Steps to reproduce:
1.Open O2PackageBrowserAdaptor
2.Right click (Linux) on a class
3.Refactoring scope, package
BrowserEnvironment(Object)>>doesNotUnderstand: #forPackage:
Receiver: Smalltalk
Arguments and temporary variables:
aMessage: forPackage: a PackageInfo(Morphic)
exception: MessageNotUnderstood: BrowserEnvironment>>forPackage:
resumeValue: nil
Receiver's instance variables:
label: nil
searchStrings: nil
OR2CmdPackageEnvironment>>environment
Receiver: an OR2CmdPackageEnvironment
Arguments and temporary variables:
package: a PackageInfo(Morphic)
Receiver's instance variables:
target: O2ClassNode<Morph>
requestor: an O2EnhancementColumn(Morph)
...
--
View this message in context: http://n2.nabble.com/Issue-1644-BrowserEnvironment-Object-doesNotUnderstand…
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Dec. 21, 2009
Re: [Pharo-project] did you check in 1.1 how the old browser now support the creation of new method cat
by Mariano Martinez Peck
On Mon, Dec 21, 2009 at 9:48 PM, Stan Shepherd
<stan.shepherd414(a)gmail.com>wrote:
>
>
> Mariano Martinez Peck wrote:
> >
> > As already said several times. For me, we have to:
> >
> > 1) Put ALL our effort and or priority to release the 1.0 stable. This
> > means,
> > try to fix the 1.0 opened fixes.
> >
> >
>
> What is the suggested workflow for those of us who want to work off the
> stable version, and feedback where we find outstanding issues? I would
> expect to try out the offending code in a 'patched up to date' version of
> 1.0, to see if it is reproducable there, in which case a search of open
> bug
> reports, and possibly a new bug report, would be in order. Is there an easy
> way to maintain such an up to date version 1.0, with harvested bug fixes?
>
In my opinion, it is easy. If you are a Pharo developer you might want to
use 1.1 and code there. If you are just a "user" of pharo, use the 1.0. If
there are bugs, just report them following this:
http://www.pharo-project.org/community/issue-tracking
And then we see. If the bug is a "1.0 issue" we will try to fix it and
integrated. Maybe it is 1.1. But it doesn't care. You should use 1.0 for
your applications and report anything you want (issue, feedback, whatever)
regardless 1.1 (do as if 1.1 doesn't exist).
Cheers
Mariano
> ...Stan
> --
> View this message in context:
> http://n2.nabble.com/Re-did-you-check-in-1-1-how-the-old-browser-now-suppor…
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 21, 2009