Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Status: New
Owner: ----
Labels: Type-Bug

New issue 7076 by [hidden email]: Evaluating "[[ false ] whileFalse: [  
]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

Evaluate

   [[ false ] whileFalse: [ ]]

in a Workspace. It results in a SubscriptOutOfBounds.

Reproducible starting from image 20047. Not reproducible using 20042 and  
below.

Images downloaded from this location:

   http://pharo.gforge.inria.fr/ci/image/20/

Originally reported by  Guillermo Polito here:

   http://forum.world.st/false-whileFalse-in-workspace-tt4657305.html


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: Closed

Comment #1 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

was fixed in cog codebase


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: Accepted

Comment #2 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

Marcus, I don't get it, is it a VM bug? I was about to have a deep look at  
it... in the latest image it is still reproducible...


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #3 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

I understood that it is a vm bug


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #4 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

It is not a VM bug. At least, it does not appear to be.

I tested this with the sme CogVM (on a Mac), with different images.
The images were:

http://pharo.gforge.inria.fr/ci/image/20/20047.zip
http://pharo.gforge.inria.fr/ci/image/20/20042.zip

To test/reproduce run the images one at a time with the latest VM for your  
platform (I tested on Mac).

The bug should not happen for image 20042 and it should happen for image  
20047.
If it happens with 20042, then something is wrong with the VM (also), but I  
don't think it should.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #5 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

Ok, I've found the cause :).

 From update 20043:

  Issue 5744:    Clean up Temp Embedding 2): DoIts
         http://code.google.com/p/pharo/issues/detail?id=5744


- Doits are now compiled with source embedded
- embedding sources for doits pretty prints from AST as doits are compiled  
specially (with a return added)

CompiledMethod:

- remove blockExtendsToTempsMap: Not needed anymore, all calls go the  
MethodNode
- remove #copyWitTempsFromMethodNode: All senders use #copyWithSource
- remove #holdsTempNames. Temp name embedding not needed
- add isDoit
- schematicTempNamesString always returns the schematic string  
representation of all temps
- tempNames forwards to methodNode
- remove tempNamesString. Concatenate yourself if you need that.

Debugger>>selectedMessage asks the selectedContext directly for the source.  
No need for the methodMap.

DebuggerMethodMap

- no special handling of methods that encode temps. Just as for methodNode  
always.

MethodNode

- generateWithSource. embedd pretty printed code in case of doit
- remove generateWithTempNames

In general: rewrite code to use #generateWithSource


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #6 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

The problem is caused when generating Doits with source code.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #7 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

BTW, the expression

[ [false ] whileFalse: [ 1] ]

works...

The problem is in the replacement of

[ [false ] whileFalse: [ ] ]

by

[ [false ] whileFalse ]

...


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: FixReviewNeeded

Comment #8 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

I've hacked a fix, but I don't know if it is correct.

So, a real review is needed...

Slice in inbox too

Attachments:
        MessageNode.GuillermoPolito.cs  1.8 KB


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Labels: Milestone-2.0 Importance-High

Comment #9 on issue 7076 by [hidden email]: Evaluating "[[ false  
] whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: MonkeyIsChecking

Comment #10 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076#c10

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: ValidatedByTheMonkey
        Labels: CheckedIn20493

Comment #11 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076#c11

This Issue has been checked by Ulysse the Monkey
       
6564 tests passed in 00:02:19s:
===============================
        CollectionsTests-Arrayed (553)
        CollectionsTests-Atomic (12)
        CollectionsTests-Sequenceable (912)
        CollectionsTests-SplitJoin (27)
        CollectionsTests-Stack (16)
        CollectionsTests-Streams (37)
        CollectionsTests-Strings (611)
        CollectionsTests-Support (12)
        CollectionsTests-Unordered (1954)
        CollectionsTests-Weak (739)
        CompilerTests (362)
        KernelTests-Chronology (593)
        KernelTests-Classes (68)
        KernelTests-Exception (2)
        KernelTests-Methods (179)
        KernelTests-Numbers (276)
        KernelTests-Objects (86)
        KernelTests-Pragmas (3)
        KernelTests-Processes (38)
        SUnit-Core-Extensions (3)
        SUnit-Core-Utilities (3)
        SUnit-Tests-Core (78)

----------------------------------------------------------
Loaded Source:  
SLICE-Issue-7076-Evaluating-quot-false--whileFalse--quot-produces-SubscriptOutOfBounds-GuillermoPolito.1  
from http://ss3.gemstone.com/ss/PharoInbox"MessageNode.GuillermoPolito.cs"  
from Comment #8
Tested using Pharo-2.0-20493-a on CoInterpreter  
VMMaker-oscog-EstebanLorenzano.166 uuid:  
5773fcb9-2982-4507-8a9e-4308ec33731e Dec 12 2012
StackToRegisterMappingCogit VMMaker-oscog-EstebanLorenzano.166 uuid:  
5773fcb9-2982-4507-8a9e-4308ec33731e Dec 12 2012
git://gitorious.org/cogvm/blessed.git Commit:  
452863bdfba2ba0b188e7b172e9bc597a2caa928 Date: 2012-12-07 16:49:46 +0100  
By: Esteban Lorenzano <[hidden email]> Jenkins build #5922


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: MonkeyIsChecking

Comment #12 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076#c12

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: ValidatedByTheMonkey
        Labels: CheckedIn20494

Comment #13 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076#c13

This Issue has been checked by Ulysse the Monkey
       
6564 tests passed in 00:04:33s:
===============================
        CollectionsTests-Arrayed (553)
        CollectionsTests-Atomic (12)
        CollectionsTests-Sequenceable (912)
        CollectionsTests-SplitJoin (27)
        CollectionsTests-Stack (16)
        CollectionsTests-Streams (37)
        CollectionsTests-Strings (611)
        CollectionsTests-Support (12)
        CollectionsTests-Unordered (1954)
        CollectionsTests-Weak (739)
        CompilerTests (362)
        KernelTests-Chronology (593)
        KernelTests-Classes (68)
        KernelTests-Exception (2)
        KernelTests-Methods (179)
        KernelTests-Numbers (276)
        KernelTests-Objects (86)
        KernelTests-Pragmas (3)
        KernelTests-Processes (38)
        SUnit-Core-Extensions (3)
        SUnit-Core-Utilities (3)
        SUnit-Tests-Core (78)

----------------------------------------------------------
Loaded Source:  
SLICE-Issue-7076-Evaluating-quot-false--whileFalse--quot-produces-SubscriptOutOfBounds-GuillermoPolito.1  
from http://ss3.gemstone.com/ss/PharoInbox"MessageNode.GuillermoPolito.cs"  
from Comment #8
Tested using Pharo-2.0-20494-a on CoInterpreter  
VMMaker-oscog-EstebanLorenzano.166 uuid:  
5773fcb9-2982-4507-8a9e-4308ec33731e Dec 12 2012
StackToRegisterMappingCogit VMMaker-oscog-EstebanLorenzano.166 uuid:  
5773fcb9-2982-4507-8a9e-4308ec33731e Dec 12 2012
git://gitorious.org/cogvm/blessed.git Commit:  
452863bdfba2ba0b188e7b172e9bc597a2caa928 Date: 2012-12-07 16:49:46 +0100  
By: Esteban Lorenzano <[hidden email]> Jenkins build #5922


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: MonkeyIsChecking

Comment #14 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076#c14

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: HumanReviewNeeded

Comment #15 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: WorkNeeded

Comment #16 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

checked... I still get the same


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo

Comment #17 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

the strange thing is that compiling this code as part of a method is no  
problem.

Even after transforming it to exactly what the doit should look like:

         ^[[ false ] whileFalse: [ ]]

or to what the pretty printed AST is:

         ^[[ false ] whileFalse]

All compiles *fine*.

The problem is that the old compiler is a mess. Instead of transforming the  
AST it hands lots of information down in the parser... (e.g. for  
transforming doits).

What is *HORRIBLE* is that code generation changes the AST. E.g. it  
transforms the whileTrue: to a whileTrue in some cases.

So I vote for a workaround (hthat needs to be checked to not break anything  
else). And then we make a party in 3.0 when we throw this code away.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: HumanReviewNeeded

Comment #18 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 7076 in pharo: Evaluating "[[ false ] whileFalse: [ ]]" produces SubscriptOutOfBounds

pharo
Updates:
        Status: FixReviewNeeded

Comment #19 on issue 7076 by [hidden email]: Evaluating "[[ false ]  
whileFalse: [ ]]" produces SubscriptOutOfBounds
http://code.google.com/p/pharo/issues/detail?id=7076

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
12