Hi Thierry,

Does not work either.

PharoDebug.log is not updated with this error. I paste bellow the stack from the debugger (but there is a no attribute values).

Hilaire


MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
    searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
        cachedReference := self
            resolvePackageSpec: packageSpec
            cachedGofer: self loaderPolicy cacheGofer.
        (cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
            ifTrue: [ cachedReference name = packageSpec file
                    ifTrue:
                        [ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
    retryingResolvePackageSpecReferences: packageSpec
    gofer: gofer.    "look up mcz file"
nearestReference := references last
    asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
    and: [ cachedReference name = nearestReference name ])
    ifTrue: [ "latest reference in repository matches cachedReference ... "
        ^ self
            scheduleFetchFor: packageSpec
            nearestReference: nearestReference ].
(self ignoreImage not
    and: [ (loadedVersionInfos := self ancestorsFor: packageSpec) ~~ nil ])
    ifTrue: [ "If the mcz is already loaded into the image, no need to copy"
        loadedVersionInfos
            do: [ :info |
                info name = nearestReference name
                    ifTrue: [ | spc |
                        spc := packageSpec copy.
                        spc file: info name.
                        (MetacelloIgnorePackageLoaded signal: spc)
                            ifFalse: [ ^ self ] ] ] ].
externalReference := (references
    select: [ :ref | ref name = nearestReference name ]) first
    asMetacelloCachingResolvedReference.
self repositoryMap
    at: externalReference name
    put: externalReference repository.
(self
    resolveDependencies: externalReference
    nearest: nearestReference
    into: (OrderedCollection with: nearestReference))
    do: [ :reference |
        | pSpec l |
        mcVersion := reference version.
        (l := (GoferVersionReference name: reference name)
            resolveAllWith: self loaderPolicy cacheGofer) isEmpty
            ifTrue: [ self cacheRepository storeVersion: mcVersion.
                reference == nearestReference
                    ifTrue: [ pSpec := packageSpec ]
                    ifFalse: [ pSpec := packageSpec project packageSpec.
                        pSpec name: mcVersion package name ].
                self loadData
                    addVersion: mcVersion
                    versionInfo: mcVersion info
                    resolvedReference: reference
                    packageSpec: pSpec ] ].
self
    scheduleFetchFor: packageSpec
    externalReference: externalReference ] in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer: in Block: [ | references nearestReference cachedReference ex...etc...
IceMetacelloPharoPlatform(MetacelloPlatform)>>do:displaying:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
MetacelloPackageSpec>>loadUsing:gofer:
[ :pkg | pkg loadUsing: self gofer: gofer ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories: in Block: [ :pkg | pkg loadUsing: self gofer: gofer ]
Array(SequenceableCollection)>>do:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
[ super
    linearLoadPackageSpecs: packageSpecs
    repositories: repositories ] in MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories: in Block: [ super...
BlockClosure>>ensure:
MetacelloLoaderPolicy>>pushLoadDirective:during:
MetacelloLoaderPolicy>>pushExplicitLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>load
[ spec projectPackage load ] in MetacelloScriptEngine>>getBaselineUnconditionalLoad: in Block: [ spec projectPackage load ]
BlockClosure>>on:do:
MetacelloScriptEngine>>getBaselineUnconditionalLoad:
MetacelloScriptEngine>>getBaselineProjectUnconditionalLoad:
MetacelloMCBaselineProject>>projectForScriptEngine:unconditionalLoad:
MetacelloMCBaselineProject(MetacelloProject)>>projectForScriptEngine:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>versionForScriptEngine:
[ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
    on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
    do:
        [ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
    root:
        (required isEmpty
            ifTrue: [ version load ]
            ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
    registrationForProjectSpec: loadedSpec
    ifAbsent: [ :new |
        new
            loadedInImage: true;
            registerProject ]
    ifPresent: [ :existing :new |
        existing
            copyOnWrite: [ :existingCopy |
                existingCopy
                    loadedInImage: true;
                    merge: new ] ] ] in [ self
    handleNotificationsForAction: [ | version loadedSpec |
        self setDefaultsAndValidateProjectSpec.
        [ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]             on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            do:
                [ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
        version := loadedSpec versionForScriptEngine: self.
        self
            root:
                (required isEmpty
                    ifTrue: [ version load ]
                    ifFalse: [ version load: required ]) loadDirective.
        loadedSpec loads: required.
        MetacelloProjectRegistration
            registrationForProjectSpec: loadedSpec
            ifAbsent: [ :new |
                new
                    loadedInImage: true;
                    registerProject ]
            ifPresent: [ :existing :new |
                existing
                    copyOnWrite: [ :existingCopy |
                        existingCopy
                            loadedInImage: true;
                            merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade: in Block: [ | version loadedSpec |...
BlockClosure>>on:do:
[ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ] in [ [ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
    on:
        MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            , MetacelloAllowConflictingProjectUpgrade
    do:
        [ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
    on:
        MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            , MetacelloAllowConflictingProjectUpgrade
    do:
        [ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
    on: MetacelloAllowLockedProjectChange
    do:
        [ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction: in Block: [ actionBlock...
BlockClosure>>on:do:
[ [ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
    on:
        MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            , MetacelloAllowConflictingProjectUpgrade
    do:
        [ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
    on:
        MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            , MetacelloAllowConflictingProjectUpgrade
    do:
        [ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
    on: MetacelloAllowLockedProjectChange
    do:
        [ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction: in Block: [ [ actionBlock...
BlockClosure>>on:do:
[ [ [ actionBlock
    on:
        MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
            , MetacelloProjectSpecLoadedNotification
            , MetacelloScriptEnsureProjectLoadedForDevelopment
            , MetacelloLookupBaselineSpecForEnsureLoad
    do:
        [ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
    on:
        MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
            , MetacelloAllowConflictingProjectUpgrade
    do:
        [ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
    on: MetacelloAllowLockedProjectChange
    do:
        [ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction: in Block: [ [ [ actionBlock...
BlockClosure>>on:do:


Le 03/04/2018 à 10:51, Thierry Goubier a écrit :
Hi Hilaire,

try

Metacello new
     baseline: 'DrGeo';
     repository: 'tonel://', SmalltalkImage current imageDirectory
pathString, '/src';
     load

Thierry

--
Dr. Geo
http://drgeo.eu



Reply via email to