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 |
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. |
On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <[hidden email]> wrote: no idea :/ And now there is a test under ReleaseTest. So next time they are generated, we should know in which update this test failed.
Mariano http://marianopeck.wordpress.com |
On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck <[hidden email]> wrote:
grrrr we have even more ((CompiledMethod allInstances select: [:each | (#(#NoTrailer #SourcePointer #VarLengthSourcePointer) includes: each trailer kind) not and: [ each isInstalled ] ])) size -> 18
Mariano http://marianopeck.wordpress.com |
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 > 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. |
On Fri, Aug 24, 2012 at 4:08 PM, Igor Stasenko <[hidden email]> wrote:
So, actually, we should not have NoTrailer for installed methods either.
Mariano http://marianopeck.wordpress.com |
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). > are NOT using those trailer kinds.. > -- > Best regards, > Igor Stasenko. -- Best regards, 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. > 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. |
Free forum by Nabble | Edit this page |