2015-08-24 16:13 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com>:


2015-08-24 16:07 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com>:
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 <sven@stfx.eu>:

> On 24 Aug 2015, at 15:31, Nicolai Hess <nicolaihess@web.de> 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 <tinchodias@gmail.com>:
>
> On Mon, Aug 24, 2015 at 3:03 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
>
>
> 2015-08-24 14:43 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu>:
> 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?
>