Well, I'll try to explain it.

Once Iceberg is loaded, all Pharo packages are initialized with a special
MCVersionInfo: IceProxyMCVersionInfo.

This MCVersion info is there because the image does not come by default
with a pharo repository. So, at runtime, when it is used, it tries to
determine if the pharo repository was defined and if so, it does become
itself by a normal version.
For this, it uses both #doesNotUnderstand: and #become:.

I'm not happy with that implementation. It could be simplified by just
adding a Pharo repository in iceberg by default...

In any case, one way to fix that, is to create a pharo repository. That
should "bind" the proxy version infos...

On Tue, Mar 13, 2018 at 3:40 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote:

> Well it is so magic that I do not understand what is happening ...
>
> > On 13 Mar 2018, at 15:32, Guillermo Polito <guillermopol...@gmail.com>
> wrote:
> >
> > Ah, that's Iceberg's magic proxies I think :/
> >
> > On Tue, Mar 13, 2018 at 3:05 PM, Sven Van Caekenberghe <s...@stfx.eu>
> wrote:
> > For some reason I can no longer open Zinc's old school MC repository in
> Pharo-7.0+alpha.build.690.sha.ffd58dcc88a0698be21b52b565a86316799cb25d
> (32 Bit)
> >
> > MCHttpRepository
> >  location: 'http://mc.stfx.eu/ZincHTTPComponents'
> >  user: ''
> >  password: ''.
> >
> > > Open repository (browser UI)
> >
> > gives me a DNU see [1]
> >
> > I just don't see what is wrong, maybe it has to do with the latest
> commit in the repo, (it took a git version number from the image as
> ancestor), but this code is hard to look at.
> >
> > Now I am stuck trying to fix a problem with Zinc.
> >
> > Any help would be appreciated,
> >
> > Sven
> >
> > [1]
> >
> > UndefinedObject(Object)>>doesNotUnderstand: #<
> > [ :ancestor |
> > (ancestor versionNumber < aVersionArray third
> >         or: [ ancestor versionNumber = aVersionArray third
> >                         and: [ ancestor author ~= aVersionArray second ]
> ])
> >         ifTrue: [ newer add: ancestor name ] ] in [ :aVersionArray |
> > workingCopy ancestors
> >         do: [ :ancestor |
> >                 (ancestor versionNumber < aVersionArray third
> >                         or: [ ancestor versionNumber = aVersionArray
> third
> >                                         and: [ ancestor author ~=
> aVersionArray second ] ])
> >                         ifTrue: [ newer add: ancestor name ] ] ] in [
> :workingCopy |
> > | versionsForPackage |
> > workingCopy ancestors do: [ :ancestor | loaded add: ancestor name ].
> > versionsForPackage := versions
> >         select: [ :v | v first = workingCopy package name ].
> > versionsForPackage
> >         do: [ :aVersionArray |
> >                 workingCopy ancestors
> >                         do: [ :ancestor |
> >                                 (ancestor versionNumber < aVersionArray
> third
> >                                         or: [ ancestor versionNumber =
> aVersionArray third
> >                                                         and: [ ancestor
> author ~= aVersionArray second ] ])
> >                                         ifTrue: [ newer add: ancestor
> name ] ] ] ] in MCFileRepositoryInspector>>refresh in Block: [ :ancestor
> | ...
> > Array(SequenceableCollection)>>do:
> > [ :aVersionArray |
> > workingCopy ancestors
> >         do: [ :ancestor |
> >                 (ancestor versionNumber < aVersionArray third
> >                         or: [ ancestor versionNumber = aVersionArray
> third
> >                                         and: [ ancestor author ~=
> aVersionArray second ] ])
> >                         ifTrue: [ newer add: ancestor name ] ] ] in [
> :workingCopy |
> > | versionsForPackage |
> > workingCopy ancestors do: [ :ancestor | loaded add: ancestor name ].
> > versionsForPackage := versions
> >         select: [ :v | v first = workingCopy package name ].
> > versionsForPackage
> >         do: [ :aVersionArray |
> >                 workingCopy ancestors
> >                         do: [ :ancestor |
> >                                 (ancestor versionNumber < aVersionArray
> third
> >                                         or: [ ancestor versionNumber =
> aVersionArray third
> >                                                         and: [ ancestor
> author ~= aVersionArray second ] ])
> >                                         ifTrue: [ newer add: ancestor
> name ] ] ] ] in MCFileRepositoryInspector>>refresh in Block: [
> :aVersionArray | ...
> > Array(SequenceableCollection)>>do:
> > [ :workingCopy |
> > | versionsForPackage |
> > workingCopy ancestors do: [ :ancestor | loaded add: ancestor name ].
> > versionsForPackage := versions
> >         select: [ :v | v first = workingCopy package name ].
> > versionsForPackage
> >         do: [ :aVersionArray |
> >                 workingCopy ancestors
> >                         do: [ :ancestor |
> >                                 (ancestor versionNumber < aVersionArray
> third
> >                                         or: [ ancestor versionNumber =
> aVersionArray third
> >                                                         and: [ ancestor
> author ~= aVersionArray second ] ])
> >                                         ifTrue: [ newer add: ancestor
> name ] ] ] ] in MCFileRepositoryInspector>>refresh in Block: [
> :workingCopy | ...
> > Array(SequenceableCollection)>>do:
> > MCFileRepositoryInspector>>refresh
> > [ self refresh.
> > MCWorkingCopy addDependent: self ] in 
> > MCFileRepositoryInspector>>setRepository:workingCopy:
> in Block: [ self refresh....
> > [ self value.
> > Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self
> value....
> >
> >
> >
> >
> >
> >
> > --
> >
> > Guille Polito
> > Research Engineer
> >
> > Centre de Recherche en Informatique, Signal et Automatique de Lille
> > CRIStAL - UMR 9189
> > French National Center for Scientific Research - http://www.cnrs.fr
> >
> > Web: http://guillep.github.io
> > Phone: +33 06 52 70 66 13
>
>
>


-- 



Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*


*Web:* *http://guillep.github.io* <http://guillep.github.io>

*Phone: *+33 06 52 70 66 13

Reply via email to