why do we have methods with trailer EmbeddedSourceZip ?

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

why do we have methods with trailer EmbeddedSourceZip ?

Mariano Martinez Peck
In Pharo 2.0

(CompiledMethod allInstances select: [:each | each trailer kind = #EmbeddedSourceZip ]) size ->  15

(CompiledMethod allInstances select: [:each | each trailer kind = #EmbeddedSourceZip ])

->

 {(Dictionary>>#keysAndValuesDo: "a CompiledMethod(578289664)"). (Morph>>#extent: "a CompiledMethod(691011584)"). (Morph>>#initialExtent "a CompiledMethod(450101248)"). (Object>>#at:put: "a CompiledMethod(784859136)"). (Object>>#printOn: "a CompiledMethod(589299712)"). (Object>>#windowIsClosing "a CompiledMethod(476839936)"). (Object>>#is: "a CompiledMethod(798752768)"). (Object>>#at: "a CompiledMethod(660078592)"). (Object class>>#initialize "a CompiledMethod(184549376)"). (Stream>>#nextPutAll: "a CompiledMethod(881328128)"). (Stream>>#next: "a CompiledMethod(841744384)"). (Stream>>#upToEnd "a CompiledMethod(483393536)"). (SystemWindow>>#delete "a CompiledMethod(222035968)"). (SystemWindow>>#initialExtent "a CompiledMethod(28835840)"). (SystemWindow>>#update: "a CompiledMethod(521928704)")} 

Any idea why we have that instead of a regular one with a source pointer?


--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Igor Stasenko
no idea :/
you can just resave them to go back to normal

On 23 August 2012 16:15, Mariano Martinez Peck <[hidden email]> wrote:

> In Pharo 2.0
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ]) size ->  15
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ])
>
> ->
>
>  {(Dictionary>>#keysAndValuesDo: "a CompiledMethod(578289664)").
> (Morph>>#extent: "a CompiledMethod(691011584)"). (Morph>>#initialExtent "a
> CompiledMethod(450101248)"). (Object>>#at:put: "a
> CompiledMethod(784859136)"). (Object>>#printOn: "a
> CompiledMethod(589299712)"). (Object>>#windowIsClosing "a
> CompiledMethod(476839936)"). (Object>>#is: "a CompiledMethod(798752768)").
> (Object>>#at: "a CompiledMethod(660078592)"). (Object class>>#initialize "a
> CompiledMethod(184549376)"). (Stream>>#nextPutAll: "a
> CompiledMethod(881328128)"). (Stream>>#next: "a CompiledMethod(841744384)").
> (Stream>>#upToEnd "a CompiledMethod(483393536)"). (SystemWindow>>#delete "a
> CompiledMethod(222035968)"). (SystemWindow>>#initialExtent "a
> CompiledMethod(28835840)"). (SystemWindow>>#update: "a
> CompiledMethod(521928704)")}
>
> Any idea why we have that instead of a regular one with a source pointer?
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Mariano Martinez Peck


On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote:
no idea :/
you can just resave them to go back to normal


And now there is a test under ReleaseTest. So next time they are generated, we should know in which update this test failed. 

 
On 23 August 2012 16:15, Mariano Martinez Peck <[hidden email]> wrote:
> In Pharo 2.0
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ]) size ->  15
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ])
>
> ->
>
>  {(Dictionary>>#keysAndValuesDo: "a CompiledMethod(578289664)").
> (Morph>>#extent: "a CompiledMethod(691011584)"). (Morph>>#initialExtent "a
> CompiledMethod(450101248)"). (Object>>#at:put: "a
> CompiledMethod(784859136)"). (Object>>#printOn: "a
> CompiledMethod(589299712)"). (Object>>#windowIsClosing "a
> CompiledMethod(476839936)"). (Object>>#is: "a CompiledMethod(798752768)").
> (Object>>#at: "a CompiledMethod(660078592)"). (Object class>>#initialize "a
> CompiledMethod(184549376)"). (Stream>>#nextPutAll: "a
> CompiledMethod(881328128)"). (Stream>>#next: "a CompiledMethod(841744384)").
> (Stream>>#upToEnd "a CompiledMethod(483393536)"). (SystemWindow>>#delete "a
> CompiledMethod(222035968)"). (SystemWindow>>#initialExtent "a
> CompiledMethod(28835840)"). (SystemWindow>>#update: "a
> CompiledMethod(521928704)")}
>
> Any idea why we have that instead of a regular one with a source pointer?
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



--
Best regards,
Igor Stasenko.




--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Mariano Martinez Peck


On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck <[hidden email]> wrote:


On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote:
no idea :/
you can just resave them to go back to normal


And now there is a test under ReleaseTest. So next time they are generated, we should know in which update this test failed. 


grrrr we have even more

((CompiledMethod allInstances select: [:each | (#(#NoTrailer #SourcePointer #VarLengthSourcePointer) includes: each trailer kind) not and: [ each isInstalled ]  ])) size -> 18
 
 
On 23 August 2012 16:15, Mariano Martinez Peck <[hidden email]> wrote:
> In Pharo 2.0
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ]) size ->  15
>
> (CompiledMethod allInstances select: [:each | each trailer kind =
> #EmbeddedSourceZip ])
>
> ->
>
>  {(Dictionary>>#keysAndValuesDo: "a CompiledMethod(578289664)").
> (Morph>>#extent: "a CompiledMethod(691011584)"). (Morph>>#initialExtent "a
> CompiledMethod(450101248)"). (Object>>#at:put: "a
> CompiledMethod(784859136)"). (Object>>#printOn: "a
> CompiledMethod(589299712)"). (Object>>#windowIsClosing "a
> CompiledMethod(476839936)"). (Object>>#is: "a CompiledMethod(798752768)").
> (Object>>#at: "a CompiledMethod(660078592)"). (Object class>>#initialize "a
> CompiledMethod(184549376)"). (Stream>>#nextPutAll: "a
> CompiledMethod(881328128)"). (Stream>>#next: "a CompiledMethod(841744384)").
> (Stream>>#upToEnd "a CompiledMethod(483393536)"). (SystemWindow>>#delete "a
> CompiledMethod(222035968)"). (SystemWindow>>#initialExtent "a
> CompiledMethod(28835840)"). (SystemWindow>>#update: "a
> CompiledMethod(521928704)")}
>
> Any idea why we have that instead of a regular one with a source pointer?
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



--
Best regards,
Igor Stasenko.




--
Mariano
http://marianopeck.wordpress.com




--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Igor Stasenko
On 24 August 2012 15:49, Mariano Martinez Peck <[hidden email]> wrote:

>
>
> On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck
> <[hidden email]> wrote:
>>
>>
>>
>> On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote:
>>>
>>> no idea :/
>>> you can just resave them to go back to normal
>>>
>>
>> http://code.google.com/p/pharo/issues/detail?id=6599
>> And now there is a test under ReleaseTest. So next time they are
>> generated, we should know in which update this test failed.
>>
>
> grrrr we have even more
>
> ((CompiledMethod allInstances select: [:each | (#(#NoTrailer #SourcePointer
> #VarLengthSourcePointer) includes: each trailer kind) not and: [ each
> isInstalled ]  ])) size -> 18
>
VarLengthSourcePointer is OK.
this source pointer is used for entries when .changes file goes over 32MB size.
NoTrailer is used for anonymous methods and methods which bypass the
logging their source into .changes file
for one or another reason (so, of course you cannot have pointer to
source , if you didn't stored the source in a first place).

--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Mariano Martinez Peck


On Fri, Aug 24, 2012 at 4:08 PM, Igor Stasenko <[hidden email]> wrote:
On 24 August 2012 15:49, Mariano Martinez Peck <[hidden email]> wrote:
>
>
> On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck
> <[hidden email]> wrote:
>>
>>
>>
>> On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote:
>>>
>>> no idea :/
>>> you can just resave them to go back to normal
>>>
>>
>> http://code.google.com/p/pharo/issues/detail?id=6599
>> And now there is a test under ReleaseTest. So next time they are
>> generated, we should know in which update this test failed.
>>
>
> grrrr we have even more
>
> ((CompiledMethod allInstances select: [:each | (#(#NoTrailer #SourcePointer
> #VarLengthSourcePointer) includes: each trailer kind) not and: [ each
> isInstalled ]  ])) size -> 18
>
VarLengthSourcePointer is OK.
this source pointer is used for entries when .changes file goes over 32MB size.
NoTrailer is used for anonymous methods and methods which bypass the
logging their source into .changes file
for one or another reason (so, of course you cannot have pointer to
source , if you didn't stored the source in a first place).

So, actually,  we should not have NoTrailer for installed methods either. 

 

--
Best regards,
Igor Stasenko.




--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Igor Stasenko
In reply to this post by Igor Stasenko
On 24 August 2012 16:08, Igor Stasenko <[hidden email]> wrote:

> On 24 August 2012 15:49, Mariano Martinez Peck <[hidden email]> wrote:
>>
>>
>> On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck
>> <[hidden email]> wrote:
>>>
>>>
>>>
>>> On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote:
>>>>
>>>> no idea :/
>>>> you can just resave them to go back to normal
>>>>
>>>
>>> http://code.google.com/p/pharo/issues/detail?id=6599
>>> And now there is a test under ReleaseTest. So next time they are
>>> generated, we should know in which update this test failed.
>>>
>>
>> grrrr we have even more
>>
>> ((CompiledMethod allInstances select: [:each | (#(#NoTrailer #SourcePointer
>> #VarLengthSourcePointer) includes: each trailer kind) not and: [ each
>> isInstalled ]  ])) size -> 18
>>
> VarLengthSourcePointer is OK.
> this source pointer is used for entries when .changes file goes over 32MB size.
> NoTrailer is used for anonymous methods and methods which bypass the
> logging their source into .changes file
> for one or another reason (so, of course you cannot have pointer to
> source , if you didn't stored the source in a first place).
>
ah, sorry, your code snippet was actually to show those methods which
are NOT using those trailer kinds..

> --
> Best regards,
> Igor Stasenko.



--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: why do we have methods with trailer EmbeddedSourceZip ?

Igor Stasenko
In reply to this post by Mariano Martinez Peck
On 24 August 2012 16:10, Mariano Martinez Peck <[hidden email]> wrote:

>
>
> On Fri, Aug 24, 2012 at 4:08 PM, Igor Stasenko <[hidden email]> wrote:
>>
>> On 24 August 2012 15:49, Mariano Martinez Peck <[hidden email]>
>> wrote:
>> >
>> >
>> > On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck
>> > <[hidden email]> wrote:
>> >>
>> >>
>> >>
>> >> On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]>
>> >> wrote:
>> >>>
>> >>> no idea :/
>> >>> you can just resave them to go back to normal
>> >>>
>> >>
>> >> http://code.google.com/p/pharo/issues/detail?id=6599
>> >> And now there is a test under ReleaseTest. So next time they are
>> >> generated, we should know in which update this test failed.
>> >>
>> >
>> > grrrr we have even more
>> >
>> > ((CompiledMethod allInstances select: [:each | (#(#NoTrailer
>> > #SourcePointer
>> > #VarLengthSourcePointer) includes: each trailer kind) not and: [ each
>> > isInstalled ]  ])) size -> 18
>> >
>> VarLengthSourcePointer is OK.
>> this source pointer is used for entries when .changes file goes over 32MB
>> size.
>> NoTrailer is used for anonymous methods and methods which bypass the
>> logging their source into .changes file
>> for one or another reason (so, of course you cannot have pointer to
>> source , if you didn't stored the source in a first place).
>
>
> So, actually,  we should not have NoTrailer for installed methods either.
>
hard to say..
IIRC, by default a compiler generates the method with no trailer. and
only after method's source is successfully logged
the trailer kind is changed to be a source pointer.
if there's an error happens which prevents method from being logged, i
don't know how, but you still might have a method installed
into class without being logged into .changes file.

Also, if i remember there is places which ZAPs things, clean things,
they also may clear the trailers.


--
Best regards,
Igor Stasenko.