indeed we extracted a chunkImporter or something like that out of crappy code logic.

Le 24/8/15 17:08, Thierry Goubier a écrit :


2015-08-24 16:53 GMT+02:00 Nicolai Hess <[email protected] <mailto:[email protected]>>:



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

        Hi Nicolai,

        I think you're right. But why irregular errors?


    Good question, important question, because we need to know what
    may have been wrongly imported.

    can you check this:

    MCMczReader>>loadDefinitions
        definitions := OrderedCollection new.
        (self zip memberNamed: 'snapshot.bin') ifNotNil:
            [:m | [^ definitions := (MCDataStream on: m contentStream)
    next definitions]
                on: Error do: [:fallThrough]].
        "otherwise"
        (self zip membersMatching: 'snapshot/*')
            do: [:m | self extractDefinitionsFrom: m].

    and replace
    on: Error do: [:fallThrough]].
    with
    on: Error do: [:fallThrough | self halt]].

    some package can be loaded without error. But some throwing errors
    (for example: Error: Improper store into indexable object) and
    the falltrough in the original code follow the
    second "otherwise" path, and this is the reason why some package
    loadings modify the MCDefinition cache and some not.


I don't know enough of the adding path to be sure, but I wonder if the use of Ring as an intermediary to and from MCMethodDefinition isn't new, and exercising those paths. You may be pointing something else.

A short difference with Pharo4 shows that yes, Pharo5 goes through Ring and not Pharo4.

(see MCPackage>>#snapshot, changed in late june)

Thierry


        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.

        Thierry

        2015-08-24 15:37 GMT+02:00 Sven Van Caekenberghe <[email protected]
        <mailto:[email protected]>>:


            > On 24 Aug 2015, at 15:31, Nicolai Hess
            <[email protected] <mailto:[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] <mailto:[email protected]>>:
            >
            > On Mon, Aug 24, 2015 at 3:03 PM, Thierry Goubier
            <[email protected]
            <mailto:[email protected]>> wrote:
            >
            >
            > 2015-08-24 14:43 GMT+02:00 Sven Van Caekenberghe
            <[email protected] <mailto:[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