2015-08-24 16:13 GMT+02:00 Thierry Goubier <[email protected]>:

>
>
> 2015-08-24 16:07 GMT+02:00 Thierry Goubier <[email protected]>:
>
>> Hi Nicolai,
>>
>> I think you're right. But why irregular errors?
>>
>> Ok, for that particular method, with Zinc smalltalkhub repo open and
>> Zn-Tests.231 selected (this forces a read of the mcz definitions in the
>> image), what I have is:
>>
>> ZnEntityTests>>#testUnspecifiedEncoding -> old version.
>>   ok
>> MCMethodDefinition cachedDefinitions at:
>> ZnEntityTests>>#testUnspecifiedEncoding -> new version
>>   ok
>> ZnEntityTests>>#testUnspecifiedEncoding asRingDefinition -> old version
>>   ok
>> ZnEntityTests>>#testUnspecifiedEncoding asRingDefinition
>> asMCMethodDefinition -> new version
>>   not ok.
>>
>
> Wrong result to sameAsMCDefinition:
>
> (ZnEntityTests>>#testUnspecifiedEncoding) asRingDefinition
> sameAsMCDefinition: (MCMethodDefinition cachedDefinitions at:
> ZnEntityTests>>#testUnspecifiedEncoding)
>     true
> (ZnEntityTests>>#testUnspecifiedEncoding) asRingDefinition sourceCode =
> (MCMethodDefinition cachedDefinitions at:
> ZnEntityTests>>#testUnspecifiedEncoding) source
>     false
>
> Ok, have a look at that:
>
> sameAsMCDefinition: anMCMethodDefinition
>
> ^ anMCMethodDefinition selector = self selector
> and: [ anMCMethodDefinition className = self className
> and: [ anMCMethodDefinition classIsMeta = self isMetaSide
> and: [ anMCMethodDefinition category = self protocol ]]]
>
> ... no comment.
>
>
Changing that to:
sameAsMCDefinition: anMCMethodDefinition
^ anMCMethodDefinition selector = self selector
and:
[
anMCMethodDefinition className = self className
and:
[
anMCMethodDefinition classIsMeta = self isMetaSide
and:
[
anMCMethodDefinition category = self protocol
and: [ anMCMethodDefinition source = self sourceCode ] ] ] ]

(source code comparison added).

solves loading Sven test packages. Marcus, can you try on yours?

Thierry


> Thierry
>
>
>> Thierry
>>
>> 2015-08-24 15:37 GMT+02:00 Sven Van Caekenberghe <[email protected]>:
>>
>>>
>>> > On 24 Aug 2015, at 15:31, Nicolai Hess <[email protected]> wrote:
>>> >
>>> > Can someone look at
>>> >
>>> > RGMethodDefinition>>#asMCMethodDefinition
>>> > I think this method uses one cache
>>> > (MCMethodDefinition cachedDefinitions)
>>> > even for both, methods from the MCPackage and methods from the image
>>> package,
>>> > of course, they should not be equal. But they are index by the
>>> compiledMethod
>>> > and this is always the compiled method of the existing method in the
>>> image (RGMethodDefinition>>compiledMethod)
>>> >
>>> > But if this is the cause of this bug, I would guess we see much more
>>> strange errors.....
>>>
>>> Well, Stef reported a problem a couple of days ago, then Marcus another
>>> one, and now mine. All with versions, changes, code loading.
>>>
>>> > 2015-08-24 15:06 GMT+02:00 Martin Dias <[email protected]>:
>>> >
>>> > On Mon, Aug 24, 2015 at 3:03 PM, Thierry Goubier <
>>> [email protected]> wrote:
>>> >
>>> >
>>> > 2015-08-24 14:43 GMT+02:00 Sven Van Caekenberghe <[email protected]>:
>>> > I have to concur, something very strange is wrong.
>>> >
>>> > #50265
>>> >
>>> > Load Zinc-Tests-SvenVanCaekenberghe.231 from
>>> http://mc.stfx.eu/ZincHTTPComponents
>>> >
>>> > ZnEntityTests>>#testUnspecifiedEncoding should have today as latest
>>> version and it simply does not (the code is wrong too), I can't imagine how
>>> that is possible.
>>> >
>>> > And this is with loading code ... seems quite dangerous.
>>> >
>>> > Fun: copying Zinc-Tests-SvenVanCaekenberghe.231 to a filetree repo,
>>> then loading from the filetree is correct, at least for
>>> ZnEntityTests>>#testUnspecifiedEncoding
>>> >
>>> > #50265
>>> >
>>> > Strange. Once the MCDefinitions are loaded (repository type dependent,
>>> that), the code path is repository-independent, no?
>>> >
>>> > Strange. Does this happen for all changed methods, or only some of
>>> them?
>>> >
>>>
>>>
>>>
>>
>

Reply via email to