[Pharo-project] Problem with CompiledMethodTrailer

Igor Stasenko siguctua at gmail.com
Mon May 9 12:48:03 CEST 2011


the one to the left seems like broken. it not ends with return self.

On 9 May 2011 11:22, Mariano Martinez Peck <marianopeck at gmail.com> wrote:
>
>
> On Mon, May 9, 2011 at 10:53 AM, Mariano Martinez Peck
> <marianopeck at gmail.com> wrote:
>>
>>
>> On Mon, May 9, 2011 at 10:27 AM, Nicolas Cellier
>> <nicolas.cellier.aka.nice at gmail.com> wrote:
>>>
>>> Hi Mariano,
>>> you should try these two things before repeating yourself:
>>>
>>> (CompiledMethod allInstances select:  [:each | each trailer kind =
>>> #VarLengthSourcePointer] ) first trailer kind.
>>>
>>> | temp |
>>> temp := (CompiledMethod allInstances select:  [:each | each trailer
>>> kind = #VarLengthSourcePointer] ) first.
>>> temp == (temp methodClass >> temp selector)
>>>
>>
>> Thanks Nicolas. Yes,  in fact all of you were right. They are not the same
>> CM instance. They are different.
>> It is wierd that they are only present in Pharo1.3:
>>
>>
>> ((CompiledMethod allInstances select:  [:each | each trailer kind =
>> #VarLengthSourcePointer] ) ) size
>> ->>>   11
>>
>> And in Pharo 1.2, cero and and 1.1.1, 2.
>>
>> I am trying to inspect pointers to them to see who is pointing to
>> them...but I cannot find anything :(
>>
>> I will continue....
>>
>
> More data: there are only these kind of compiled methods in the dev image.
> Not in core.
>
> In addition, if I do: ScriptLoader new cleanUpForRelease, then inspect
> ((CompiledMethod allInstances select:  [:each | each trailer kind =
> #VarLengthSourcePointer] ) )
>
> and then I click on the first element in the inspector.... VM CRASH!!!  with
> both, InterpreterVM and CogVM.
>
> I can see the difference in the trailer of the CMs (I attach screenshot),
> but still cannot find who is pointing to that weird instances :(
>
> grrr... thanks for the help
>
>
>
>>
>> thanks
>>
>>
>>
>>> It may be possible that CompiledMethod>>printString is lying to you...
>>>
>>> Nicolas
>>>
>>> 2011/5/9 Mariano Martinez Peck <marianopeck at gmail.com>:
>>> >
>>> >
>>> > On Mon, May 9, 2011 at 6:14 AM, Igor Stasenko <siguctua at gmail.com>
>>> > wrote:
>>> >>
>>> >> On 9 May 2011 00:52, Mariano Martinez Peck <marianopeck at gmail.com>
>>> >> wrote:
>>> >> > Hi guys, Maybe it is too late and I am not seeing something
>>> >> > obvious...so
>>> >> > another look is really appreciated. If I do:
>>> >> >
>>> >> > (CompiledMethod allInstances select:  [:each | each trailer kind =
>>> >> > #VarLengthSourcePointer] ) first
>>> >> > ---> (CodeLoader class>>#initialize "a CompiledMethod(311951360)")
>>> >> >
>>> >> > But then:
>>> >> >
>>> >> > (CodeLoader class >> #initialize) trailer kind
>>> >> > ----> #SourcePointer
>>> >> >
>>> >> > WHYYY??  why it is answering #SourcePointer instead of
>>> >> > #VarLengthSourcePointer  ??
>>> >> >
>>> >> > grrr how can that be possible???  It happens the same to each of the
>>> >> > CompiledMethods I select as #VarLengthSourcePointer.  When I then
>>> >> > ask
>>> >> > the
>>> >> > #kind  they always answer #SourcePointer  instead of
>>> >> > #VarLengthSourcePointer
>>> >> >
>>> >> is it same compiled methods?
>>> >> Because it is absolutely normal if they using different source
>>> >> pointer.
>>> >>
>>> >
>>> > I didn't understand your question. Yes, it is exactly the same
>>> > CompiledMethod.
>>> > Look, if I do:
>>> >
>>> > (CompiledMethod allInstances select:  [:each | each trailer kind =
>>> > #VarLengthSourcePointer] ) first
>>> >
>>> > I get
>>> > ---> (CodeLoader class>>#initialize "a CompiledMethod(311951360)")
>>> >
>>> > So...it means that such CompiledMethod answers #VarLengthSourcePointer
>>> > when
>>> > send "trailer kind". Ok?
>>> >
>>> > But immediatly after, if I ask the trailer kind to the SAME compiled
>>> > method:
>>> >
>>> > (CodeLoader class >> #initialize) trailer kind
>>> >
>>> > I get
>>> > ----> #SourcePointer
>>> >
>>> > WHYYY??  why it is answering #SourcePointer instead of
>>> > #VarLengthSourcePointer  ??
>>> >
>>> >>
>>> >> > thanks in advance,
>>> >> >
>>> >> > --
>>> >> > Mariano
>>> >> > http://marianopeck.wordpress.com
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Best regards,
>>> >> Igor Stasenko AKA sig.
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Mariano
>>> > http://marianopeck.wordpress.com
>>> >
>>> >
>>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Pharo-project mailing list