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] 1.1unstable Gofer gofer update -> break
by Stéphane Ducasse
lukas
something related
is your update doing a load or a merge because I wonder if we have changes in pharo
I do not think so but I'm curious about what is the semantics we want.
Probably load.
Stef
On Dec 21, 2009, at 8:02 PM, Stéphane Ducasse wrote:
> Hi lukas
>
>
> I wanted to load the latest version of Gofer (with Fetch :)) in pharo
> so I did Gofer gofer update and I got a GoferReference with a name = nil -> breaks
> If you have a look let me know but enjoy the moutains
>
> Stef
>
> PS: here we got snow (10 cm) so this is fun to drive cars on empty parkings :)
> _______________________________________________
> 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] 1.1unstable Gofer gofer update -> break
by Mariano Martinez Peck
On Mon, Dec 21, 2009 at 8:02 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> Hi lukas
>
>
> I wanted to load the latest version of Gofer (with Fetch :)) in pharo
> so I did Gofer gofer update and I got a GoferReference with a name = nil ->
> breaks
> If you have a look let me know but enjoy the moutains
>
> Stef
>
> PS: here we got snow (10 cm) so this is fun to drive cars on empty parkings
> :)
>
And with the bike is funny also ;)
> _______________________________________________
> 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
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
On Mon, Dec 21, 2009 at 4:57 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
> Hi Frederic. Henrik Sperre Johansen created this method:
>
> Form >> asNINode
> ^ (super asNINode)
> addAction:
> (NIAction labeled: 'Preview'
> shortcut: $p
> target:
> [ :aForm |
> | anOffset aFrame |
> anOffset := aForm width @ aForm height / -2.
> aFrame := LayoutFrame fractions: (0.5 @ 0.5
> corner: 0.5 @ 0.5) offsets: (anOffset corner: anOffset).
> (SystemWindow labelled: 'Form preview')
> addMorph: (ImageMorph new image: aForm)
> fullFrame: aFrame;
> openInWorldExtent: (aForm extent max: 267 @
> 0) ]
> actionSelector: #value:
> withArgs: {self}
> category: 'Preview');
> yourself
>
>
>
> It let you see the image of something. Example, inspect a form ( ThemeIcons
> infoIcon ), right-click the Form
> node, and select preview.
>
> In addition, he told me this:
>
> "For inclusion in the NewInspector package on SqueakSource, I would at
> least change the magic number 267 first, to one computed based on the width
> of the Window label, 267 is merely what is needed to display it fully with
> the standard window font in PharoDev :)
> Feel free to do so, and ask Frederique Pluquet to to include it there."
>
> So....can you take care of this and include it ? would be very useful!!!
>
> Thank you very much.
>
> Mariano
>
>
> ---------- Forwarded message ----------
> From: Henrik Sperre Johansen <henrik.s.johansen(a)veloxit.no>
> Date: Thu, Dec 17, 2009 at 10:12 PM
> Subject: Re: [Pharo-project] [ANN] MagmaBrowser
> To: pharo-project(a)lists.gforge.inria.fr
>
>
> On 16.12.2009 11:29, Mariano Martinez Peck wrote:
> > This is an excellent job. Congratulations Hernán.
> >
> > I have a question....how could you draw the photo instead of the array
> > of bytes on the browser? I really hate when developing with seaside
> > and I have some pictures in my filelibrary class and when I browse
> > them I see the array of bits...but I want to see the picture!!!
> >
> > Thanks
> >
> > Mariano
> For a proof of concept of what is possible using the NewInspector,
> install this method:
> Form>>asNINode
> ^ (super asNINode)
> addAction:
> (NIAction labeled: 'Preview'
> shortcut: $p
> target:
> [ :aForm |
> aForm depth < 32 ifTrue: [ Display
> getCanvas image: aForm at: 10 @ 10 ]
> ifFalse: [ Display getCanvas
> translucentImage: aForm at: 10 @ 10 ] ]
> actionSelector: #value:
> withArgs: {self}
> category: 'Preview');
> yourself
>
> then inspect a form (Say, ThemeIcons infoIcons ), right-click the Form
> node, and select preview.
>
> Ideally it'd be nice to add an extra "Preview" item to the subnodes of
> Forms in the NI, which when clicked would show the form on the right
> side, but I don't (easily) see how you can temporarily replace the
> TextMorph on the right side with something capable of displaying Forms
>
> With some more work on the closure it should be possible to open the
> preview in a separate window though :)
>
> 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] did you check in 1.1 how the old browser now support the creation of new method cat
by Stéphane Ducasse
But having a dev image with unstable is nice because like that we can test it too :)
I think that 1.1 should be renamed unstable and everything is solved.
I misunderstood what lukas wanted to tell me: in essence the problem was not really the tools
but the fact that maintaining two versions was too much.
Stef
> 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.
>
> 2) Tag the 1.1 as UNSTABLE.
>
> 3) Remove 1.1 dev link from website and even do not create dev images using 1.1 for the moment. Peope should use 1.0 for their development. (this was not my idea, adrian i think).
>
> Cheers,
>
> Mariano
>
> On Mon, Dec 21, 2009 at 5:48 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> sure no problem. Lukas.
> I sent the mail because this is an important point.
> I think that we should also understand what is a good amount of time between two releases.
>
> On Dec 21, 2009, at 12:20 PM, Lukas Renggli wrote:
>
> >> Lukas, is there a particular reason why you want/need your stuff to
> >> work also with 1.1?
> >
> > The initial trigger for this discussion was Stef asking me to use
> > #chooseOrRequestFrom: for creating protocols in OB. This method was a
> > recently added to morphic in Pharo 1.1 and is used in the old ST-80
> > browser to create new method protocols with one click. I would love to
> > add it to OB, but since this requires Pharo 1.1 I cannot.
> >
> >> I don't think it makes sense to adapt and fix the external packages
> >> that are in Pharo (of which you maintain a few) as long as PharoCore
> >> is in alpha state.
> >
> > I do not complain, I completely agree with the Pharo development
> > process. It is great what you are doing.
> >
> > I was telling Stef that I cannot take advantage of the cool new
> > dialogs right now, but only when there is a release candidate for
> > Pharo 1.1. Also I was hoping that I could use Helvetia directly in
> > Pharo 1.1, maybe together with a proposal for making the compiler
> > tool-chain easier to plug-in. However since Helvetia depends on RB and
> > OB that would mean that I had to fork these two projects. Something I
> > cannot do right now.
> >
> > Lukas
> >
> > --
> > Lukas Renggli
> > http://www.lukas-renggli.ch
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Dec. 21, 2009
[Pharo-project] 1.1unstable Gofer gofer update -> break
by Stéphane Ducasse
Hi lukas
I wanted to load the latest version of Gofer (with Fetch :)) in pharo
so I did Gofer gofer update and I got a GoferReference with a name = nil -> breaks
If you have a look let me know but enjoy the moutains
Stef
PS: here we got snow (10 cm) so this is fun to drive cars on empty parkings :)
Dec. 21, 2009
Re: [Pharo-project] Long method can not be compiled using #compile: aString
by Bart Gauquie
Hi,
First load the latest http://www.squeaksource.com/MorphicsRecordNPlaypackage.
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
Dec. 21, 2009
[Pharo-project] Name: SLICE-allowUnderscoreAssignmentFix-AlainPlantec.1
by Stéphane Ducasse
I lost track about this change.
Alain should I integrate it?
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
Dec. 21, 2009
Re: [Pharo-project] Update to current in one go?
by Stéphane Ducasse
what do you mean?
Stef
On Dec 21, 2009, at 6:50 PM, Stan Shepherd wrote:
>
>
> --
> View this message in context: http://n2.nabble.com/Update-to-current-in-one-go-tp4199609p4199609.html
> 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] did you check in 1.1 how the old browser now support the creation of new method cat
by Mariano Martinez Peck
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.
2) Tag the 1.1 as UNSTABLE.
3) Remove 1.1 dev link from website and even do not create dev images using
1.1 for the moment. Peope should use 1.0 for their development. (this was
not my idea, adrian i think).
Cheers,
Mariano
On Mon, Dec 21, 2009 at 5:48 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> sure no problem. Lukas.
> I sent the mail because this is an important point.
> I think that we should also understand what is a good amount of time
> between two releases.
>
> On Dec 21, 2009, at 12:20 PM, Lukas Renggli wrote:
>
> >> Lukas, is there a particular reason why you want/need your stuff to
> >> work also with 1.1?
> >
> > The initial trigger for this discussion was Stef asking me to use
> > #chooseOrRequestFrom: for creating protocols in OB. This method was a
> > recently added to morphic in Pharo 1.1 and is used in the old ST-80
> > browser to create new method protocols with one click. I would love to
> > add it to OB, but since this requires Pharo 1.1 I cannot.
> >
> >> I don't think it makes sense to adapt and fix the external packages
> >> that are in Pharo (of which you maintain a few) as long as PharoCore
> >> is in alpha state.
> >
> > I do not complain, I completely agree with the Pharo development
> > process. It is great what you are doing.
> >
> > I was telling Stef that I cannot take advantage of the cool new
> > dialogs right now, but only when there is a release candidate for
> > Pharo 1.1. Also I was hoping that I could use Helvetia directly in
> > Pharo 1.1, maybe together with a proposal for making the compiler
> > tool-chain easier to plug-in. However since Helvetia depends on RB and
> > OB that would mean that I had to fork these two projects. Something I
> > cannot do right now.
> >
> > Lukas
> >
> > --
> > Lukas Renggli
> > http://www.lukas-renggli.ch
> >
> > _______________________________________________
> > Pharo-project mailing list
> > Pharo-project(a)lists.gforge.inria.fr
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 21, 2009