> On 7 Nov 2018, at 13:56, Alistair Grant <[email protected]> wrote:
> 
> Hi Sven,
> 
> On Wed, 7 Nov 2018 at 10:37, Sven Van Caekenberghe <[email protected]> wrote:
>> 
>> 
>> 
>>> On 7 Nov 2018, at 10:27, Alistair Grant <[email protected]> wrote:
>>> 
>>> Hi Alex,
>>> 
>>> 
>>> On Wed, 7 Nov 2018 at 10:16, Aliaksei Syrel <[email protected]> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> When saving one of the latest pharo70 image I got an infinite recursion 
>>>> loop due to message not understood. Force closing it probably lead to 
>>>> image corruption and it became un-openable anymore. Any idea what is going 
>>>> on? It does not look like a unique case because there are a few pharo70 
>>>> images that already died in front of me...
>>> 
>>> This looks like your image changes the definition of
>>> Number>>raisedToInteger: somewhere along the line.  In the standard
>>> image it doesn't call #run:with:in:.
>> 
>> I don't think that definition got overwritten, check the implementers of 
>> #run:with:in: is seems to have to do with meta links or proxies or something 
>> like that ...
> 

Or it could be a bug where the VM ends up getting a SmallInteger instead of a 
CompiledMethod as the result of a method lookup. That would be bad...

> Good point.  How to get a list of all the methods that have MetaLinks?
> The following seems to work, but probably isn't the most efficient:
> 
> Object allSubclasses flatCollect: [ :each | each methods select: [
> :method | method ast links isNotNil ] ]
> 

you can ask the method directly 

Object allSubclasses flatCollect: [ :each | each methods select: [
:method | method hasLinks ] ]

this is much faster as it returns immediately nil for methods without links  
(without AST reification).

        Marcus



Reply via email to