Hi Everyone,
I'm attempting to update to the latest Pharo7 image (918efe2, 32 bit), but am getting an error while loading OSsubprocess. The error occurs in FFISharedPool class>>initialize: initialize self flag: #removeIt. "This IF will be eliminated soon...only here temporary" (SystemVersion current highestUpdate >= 50558) ifTrue: [ SessionManager default registerToolClassNamed: self name ] ifFalse: [ Smalltalk addToStartUpList: self. ] because #highestUpdate is nil. The top of the stack is: UndefinedObject(Object)>>doesNotUnderstand: #'>=' FFISharedPool class>>initialize MCMethodDefinition>>postloadOver: [ :each | each postloadOver: (self obsoletionFor: each) ] in MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each postloadOver: (self obsoletionFor: ...etc... Based on the method above, it looks like highestUpdate used to be set based on the image number, and has presumably broken during the move to Pharo 7 and git. Earlier Pharo 7 images had it set to 0, which doesn't sound right. Since a build number was recently introduced (fogbugz 20321), should the highestUpdate be set to 70000+buildNumber? E.g. this image has an identifier of: Pharo 7.0 Build information: alpha.build.56.sha.918efe28fa3e6ad485b059dbf4ce675fd4086cf6 So highestUpdate would be 70056. Thanks! Alistair |
I don't think so... Build number only works from the CI. This means
that if you build your image in your machine you'll have no build number and then this piece of code will not work neither. Thus maybe we need to find a separate solution for it? On 8/22/17, Alistair Grant <[hidden email]> wrote: > Hi Everyone, > > I'm attempting to update to the latest Pharo7 image (918efe2, 32 bit), > but am getting an error while loading OSsubprocess. > > The error occurs in FFISharedPool class>>initialize: > > > initialize > self flag: #removeIt. > "This IF will be eliminated soon...only here temporary" > (SystemVersion current highestUpdate >= 50558) > ifTrue: [ > SessionManager default registerToolClassNamed: self name > ] > ifFalse: [ > Smalltalk addToStartUpList: self. > ] > > > because #highestUpdate is nil. > > > The top of the stack is: > > UndefinedObject(Object)>>doesNotUnderstand: #'>=' > FFISharedPool class>>initialize > MCMethodDefinition>>postloadOver: > [ :each | each postloadOver: (self obsoletionFor: each) ] in > MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each postloadOver: > (self obsoletionFor: ...etc... > > > Based on the method above, it looks like highestUpdate used to be set > based on the image number, and has presumably broken during the move to > Pharo 7 and git. > > Earlier Pharo 7 images had it set to 0, which doesn't sound right. > > Since a build number was recently introduced (fogbugz 20321), should the > highestUpdate be set to 70000+buildNumber? > > E.g. this image has an identifier of: > > Pharo 7.0 > Build information: > alpha.build.56.sha.918efe28fa3e6ad485b059dbf4ce675fd4086cf6 > > So highestUpdate would be 70056. > > > Thanks! > Alistair > > -- Guille Polito Research Engineer 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 |
On Tue, Aug 22, 2017 at 05:55:22PM +0200, Guillermo Polito wrote:
> I don't think so... Build number only works from the CI. This means > that if you build your image in your machine you'll have no build > number and then this piece of code will not work neither. Thus maybe > we need to find a separate solution for it? Good point. I guess that #registerToolClassNamed: was introduced around image #50558 and didn't exist in earlier versions, so the test could be replaced with: SessionManager default respondsTo: #registerToolClassNamed: I'll see if I can download an older Pharo 5 VM and image and check (pre 50558). Thanks, Alistair > On 8/22/17, Alistair Grant <[hidden email]> wrote: > > Hi Everyone, > > > > I'm attempting to update to the latest Pharo7 image (918efe2, 32 bit), > > but am getting an error while loading OSsubprocess. > > > > The error occurs in FFISharedPool class>>initialize: > > > > > > initialize > > self flag: #removeIt. > > "This IF will be eliminated soon...only here temporary" > > (SystemVersion current highestUpdate >= 50558) > > ifTrue: [ > > SessionManager default registerToolClassNamed: self name > > ] > > ifFalse: [ > > Smalltalk addToStartUpList: self. > > ] > > > > > > because #highestUpdate is nil. > > > > > > The top of the stack is: > > > > UndefinedObject(Object)>>doesNotUnderstand: #'>=' > > FFISharedPool class>>initialize > > MCMethodDefinition>>postloadOver: > > [ :each | each postloadOver: (self obsoletionFor: each) ] in > > MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each postloadOver: > > (self obsoletionFor: ...etc... > > > > > > Based on the method above, it looks like highestUpdate used to be set > > based on the image number, and has presumably broken during the move to > > Pharo 7 and git. > > > > Earlier Pharo 7 images had it set to 0, which doesn't sound right. > > > > Since a build number was recently introduced (fogbugz 20321), should the > > highestUpdate be set to 70000+buildNumber? > > > > E.g. this image has an identifier of: > > > > Pharo 7.0 > > Build information: > > alpha.build.56.sha.918efe28fa3e6ad485b059dbf4ce675fd4086cf6 > > > > So highestUpdate would be 70056. > > > > > > Thanks! > > Alistair > > > > > > > -- > > > > > Guille Polito > > > Research Engineer > > 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 > |
In reply to this post by Guillermo Polito
Hi Guille,
On Tue, Aug 22, 2017 at 05:55:22PM +0200, Guillermo Polito wrote: > I don't think so... Build number only works from the CI. This means > that if you build your image in your machine you'll have no build > number and then this piece of code will not work neither. Thus maybe > we need to find a separate solution for it? P.S. Shouldn't the highestUpdate still be set as described below? This is an image that presumably came from the CI (http://files.pharo.org/image/70/latest.zip). Thanks, Alistair > On 8/22/17, Alistair Grant <[hidden email]> wrote: > > Hi Everyone, > > > > I'm attempting to update to the latest Pharo7 image (918efe2, 32 bit), > > but am getting an error while loading OSsubprocess. > > > > The error occurs in FFISharedPool class>>initialize: > > > > > > initialize > > self flag: #removeIt. > > "This IF will be eliminated soon...only here temporary" > > (SystemVersion current highestUpdate >= 50558) > > ifTrue: [ > > SessionManager default registerToolClassNamed: self name > > ] > > ifFalse: [ > > Smalltalk addToStartUpList: self. > > ] > > > > > > because #highestUpdate is nil. > > > > > > The top of the stack is: > > > > UndefinedObject(Object)>>doesNotUnderstand: #'>=' > > FFISharedPool class>>initialize > > MCMethodDefinition>>postloadOver: > > [ :each | each postloadOver: (self obsoletionFor: each) ] in > > MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each postloadOver: > > (self obsoletionFor: ...etc... > > > > > > Based on the method above, it looks like highestUpdate used to be set > > based on the image number, and has presumably broken during the move to > > Pharo 7 and git. > > > > Earlier Pharo 7 images had it set to 0, which doesn't sound right. > > > > Since a build number was recently introduced (fogbugz 20321), should the > > highestUpdate be set to 70000+buildNumber? > > > > E.g. this image has an identifier of: > > > > Pharo 7.0 > > Build information: > > alpha.build.56.sha.918efe28fa3e6ad485b059dbf4ce675fd4086cf6 > > > > So highestUpdate would be 70056. > > > > > > Thanks! > > Alistair > > > > > > > -- > > > > > Guille Polito > > > Research Engineer > > 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 > |
Le mar. 22 août 2017 à 18:33, Alistair Grant <[hidden email]> a écrit : Hi Guille, But how do you do it? Imagine I build my image from outsider the ci. Where do I get the build number ? In my machine I have no thing such as a build or a job. Pharo should work independently from where it is build. We should not mistake build number for version number. They do not mean the same.
--
|
My impression is that this code is old and we should rewrite it. Now I wonder why the session manager register itself to the tools. The idea of the tool registration was that we can swap them to get different suite of tools. This was never really used and I would replace that by a tool context passed around instead of an ugly global variable (because this is what it is). So I wonder why the logic is like that. SessionManager default registerToolClassNamed: self name I hope that code relying on the DNU aspect of the tool registry does not exist. Now may be I'm confusing the sessionManager tool registry with the toolregistry. We should really reassess some of the solutions we have. stef On Tue, Aug 22, 2017 at 6:58 PM, Guillermo Polito <[hidden email]> wrote:
|
Ok I checked and the Session manager is not the toolRegistry. I do not like the design of the latter: a global variable used from anywhere. Now the alternative is that each tool access other tools via a context object but the question is how to update such context when we have a new tool loaded. Stef On Tue, Aug 22, 2017 at 7:03 PM, Stephane Ducasse <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |