On 24 August 2012 16:10, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Fri, Aug 24, 2012 at 4:08 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 24 August 2012 15:49, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Fri, Aug 24, 2012 at 3:39 PM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Thu, Aug 23, 2012 at 5:44 PM, Igor Stasenko <siguctua@gmail.com> 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.