Hi, there.
There seems to be a bug in the VM that occurs when stepping over a call that is actually a regular object in a method dictionary.
The VM crashes in the primitive 76.
To reproduce the bug load the attached change set and run the following code to install the "fake" method:
Blubb methodDict at: #fake put: (BlubbMethod new original: (Blubb >> #original)).
Now do this in the workspace:
self halt. Blubb new fake.
Then "step over" a few times. The VM crashes. This is not a new bug. The VM crashes also in:
Squeak 4.6, VM 3397 (Cog V3) Squeak 4.5, VM 2776 (Cog V3) Squeak 4.3, VM Squeak 4.1.1 (no Cog, Stack VM)
In Squeak 4.4 (VM 2776, Cog V3), I get a "SmallInteger DNU 137504030". No VM crash. :) In Squeak 3.8 (InterpreterVM?), I get a "Where is the jump??" error raised in MethodContext(InstructionStream) >> #skipBackBeforeJump. No VM crash. :)
Best, Marcel
Hi Marcel,
On Oct 10, 2017, at 6:54 AM, Marcel Taeumel marcel.taeumel@hpi.de wrote:
Hi, there.
There seems to be a bug in the VM that occurs when stepping over a call that is actually a regular object in a method dictionary.
The VM crashes in the primitive 76.
To reproduce the bug load the attached change set and run the following code to install the "fake" method:
Blubb methodDict at: #fake put: (BlubbMethod new original: (Blubb >> #original)).
Now do this in the workspace:
self halt. Blubb new fake.
Then "step over" a few times. The VM crashes. This is not a new bug. The VM crashes also in:
Squeak 4.6, VM 3397 (Cog V3) Squeak 4.5, VM 2776 (Cog V3) Squeak 4.3, VM Squeak 4.1.1 (no Cog, Stack VM)
In Squeak 4.4 (VM 2776, Cog V3), I get a "SmallInteger DNU 137504030". No VM crash. :) In Squeak 3.8 (InterpreterVM?), I get a "Where is the jump??" error raised in MethodContext(InstructionStream) >> #skipBackBeforeJump. No VM crash. :)
I will try and take a look at this early next week.
Best, Marcel <object-as-method-bug.1.cs>
Hi Eliot,
thank you. Let us relabel it from "bug" to "feature request" because it has never been working since the addition of object-as-method in Squeak 3.8. :)
Best, Marcel Am 10.10.2017 21:40:46 schrieb Eliot Miranda eliot.miranda@gmail.com: Hi Marcel,
On Oct 10, 2017, at 6:54 AM, Marcel Taeumel <marcel.taeumel@hpi.de [mailto:marcel.taeumel@hpi.de]> wrote:
Hi, there.
There seems to be a bug in the VM that occurs when stepping over a call that is actually a regular object in a method dictionary.
The VM crashes in the primitive 76.
To reproduce the bug load the attached change set and run the following code to install the "fake" method:
Blubb methodDict at: #fake put: (BlubbMethod new original: (Blubb >> #original)).
Now do this in the workspace:
self halt. Blubb new fake.
Then "step over" a few times. The VM crashes. This is not a new bug. The VM crashes also in:
Squeak 4.6, VM 3397 (Cog V3) Squeak 4.5, VM 2776 (Cog V3) Squeak 4.3, VM Squeak 4.1.1 (no Cog, Stack VM)
In Squeak 4.4 (VM 2776, Cog V3), I get a "SmallInteger DNU 137504030". No VM crash. :) In Squeak 3.8 (InterpreterVM?), I get a "Where is the jump??" error raised in MethodContext(InstructionStream) >> #skipBackBeforeJump. No VM crash. :)
I will try and take a look at this early next week.
Best, Marcel <object-as-method-bug.1.cs>
vm-dev@lists.squeakfoundation.org