Thanks. I have merged -dtl.33 and two more change in OSProcess-Base-ThierryGoubier.35 on http://smalltalkhub.com/mc/ThierryGoubier/Alt30/main/ (osVersion and vmVersion), if you want to merge them as well. I have a question: are you sure about the perform: #delete in OSProcess class>>#deleteFileNamed: ? ensureDelete/ensureDeleted have a different behavior than #delete. Regards, Thierry Le 05/09/2013 04:21, David T. Lewis a écrit :
On Wed, Sep 04, 2013 at 02:17:29PM +0200, Marcus Denker wrote:
On Sep 4, 2013, at 2:13 PM, David T. Lewis <lewis@mail.msen.com> wrote:
On Tue, Sep 03, 2013 at 10:51:33PM -0400, David T. Lewis wrote:
On Tue, Sep 03, 2013 at 01:48:46PM +0200, Goubier Thierry wrote:
Le 03/09/2013 13:36, David T. Lewis a ?crit :
Can you post the method here first? I'd like to check it on some Squeak images before it goes into the repository.
Here it is (at least an example):
in OSProcess class
isPharo3AndLater "Test if we are on Pharo 3.0"
^ (Smalltalk classNamed: 'SystemVersion') ifNil: [ false ] ifNotNil: [ :v | v current type = 'Pharo' and: [ v current major >= 3 ] ]
The idea is right, but the details can be a PITA ;-)
- In Squeak trunk, class SystemVersion exists. But it does not understand #type, so this fails at runtime.
- There are no implementors of #major in Squeak (but this can be rewritten using #perform:).
- In Squeak 3.8, #ifNil:ifNotNil: requires a block with no arguments.
I did not check the other Pharo versions.
Something like this might work:
isPharo3AndLater Smalltalk at: #SystemVersion ifPresent: [:cls | ((cls canUnderstand: #type) and: [ cls canUnderstand: #major ]) ifTrue: [^ cls current type = 'Pharo' and: [ cls current major >= 3 ]]]. ^false
I am also checking the platform subtype implementation (OSProcess platformSubtype).
In Pharo:
Smalltalk os subtype ==> 'i686'
This reflects the processor type, not the os subtype (it should be 'x86_64' on my PC).
Is this intentional?
I don't think so.
Marcus
Thanks Goubier and Marcus,
I made the updates to OSProcess and CommandShell to handle system version and subtype in Pharo 3.0.
I did not yet update ConfigurationOfOSProcess or ConfigurationOfCommandShell, but the latest versions for Squeak/Pharo are in OSProcess-dtl.83 and CommandShell-dtl.73 in the SqueakSource repositories.
Dave
-- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95