Fwd: [Pharo-dev] Pharo VM Crash

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

Fwd: [Pharo-dev] Pharo VM Crash

Max Leske
 


Begin forwarded message:

From: Henrik Johansen <[hidden email]>
Date: 16 November 2015 at 12:08:27 GMT+1
To: Pharo Development List <[hidden email]>
Subject: Re: [Pharo-dev] Pharo VM Crash


On 16 Nov 2015, at 11:49 , Boris Spasojevic <[hidden email]> wrote:

Hey all,

How and where can I report the pharo VM crashing? if I have a class Tmp and it has a method

Tmp>>tmp
    [ ^ true ]


and I try to execute Tmp new tmp. The VM segfaults.
-- 
Cheers,
BoriS


That's a compiler (and probably a code) bug.
It correctly eliminates the unused block, but it *should* emit a return self instruction (as it would for a method with an empty body), but it doesn't, which is why the VM crashes.

Cheers,
Henry

Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [Pharo-dev] Pharo VM Crash

timrowledge

>>>
>>> Tmp>>tmp
>>>     [ ^ true ]
>>>
>>> and I try to execute Tmp new tmp. The VM segfaults.

Doesn’t appear to be a problem in a Squeak 5.0 image on a cogvm


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- If you give him a penny for his thoughts, you get change back.


Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [Pharo-dev] Pharo VM Crash

Nicolai Hess-3-2
 


2015-11-16 19:31 GMT+01:00 tim Rowledge <[hidden email]>:

>>>
>>> Tmp>>tmp
>>>     [ ^ true ]
>>>
>>> and I try to execute Tmp new tmp. The VM segfaults.

Doesn’t appear to be a problem in a Squeak 5.0 image on a cogvm

yes, this is only a bug in pharo, with pharos opal compiler.

btw. squeaks compiler (or pharos other compiler) generate more code than is
needed for this method. The block actually has no effect. The method could just
return self, but instead it creates an unused closure.

13 <8F 00 00 01> closureNumCopied: 0 numArgs: 0 bytes 17 to 17
17     <79> return: true
18 <87> pop
19 <78> returnSelf



 


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- If you give him a penny for his thoughts, you get change back.



Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [Pharo-dev] Pharo VM Crash

Eliot Miranda-2
 
Hi Nicolai,

On Mon, Nov 16, 2015 at 2:28 PM, Nicolai Hess <[hidden email]> wrote:
 


2015-11-16 19:31 GMT+01:00 tim Rowledge <[hidden email]>:

>>>
>>> Tmp>>tmp
>>>     [ ^ true ]
>>>
>>> and I try to execute Tmp new tmp. The VM segfaults.

Doesn’t appear to be a problem in a Squeak 5.0 image on a cogvm

yes, this is only a bug in pharo, with pharos opal compiler.

btw. squeaks compiler (or pharos other compiler) generate more code than is
needed for this method. The block actually has no effect. The method could just
return self, but instead it creates an unused closure.

13 <8F 00 00 01> closureNumCopied: 0 numArgs: 0 bytes 17 to 17
17     <79> return: true
18 <87> pop
19 <78> returnSelf

We know ;-).  What happens when you decompile the Opal compiled version and what happens when you deocmpile the Squeak version?  We're going to leave the aggressive optimisation to the JIT and Sista.

_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [Pharo-dev] Pharo VM Crash

Nicolai Hess-3-2
 


2015-11-16 23:38 GMT+01:00 Eliot Miranda <[hidden email]>:
 
Hi Nicolai,

On Mon, Nov 16, 2015 at 2:28 PM, Nicolai Hess <[hidden email]> wrote:
 


2015-11-16 19:31 GMT+01:00 tim Rowledge <[hidden email]>:

>>>
>>> Tmp>>tmp
>>>     [ ^ true ]
>>>
>>> and I try to execute Tmp new tmp. The VM segfaults.

Doesn’t appear to be a problem in a Squeak 5.0 image on a cogvm

yes, this is only a bug in pharo, with pharos opal compiler.

btw. squeaks compiler (or pharos other compiler) generate more code than is
needed for this method. The block actually has no effect. The method could just
return self, but instead it creates an unused closure.

13 <8F 00 00 01> closureNumCopied: 0 numArgs: 0 bytes 17 to 17
17     <79> return: true
18 <87> pop
19 <78> returnSelf

We know ;-).  What happens when you decompile the Opal compiled version and what happens when you deocmpile the Squeak version?  We're going to leave the aggressive optimisation to the JIT and Sista.

 touché  :)
 

_,,,^..^,,,_
best, Eliot