> 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