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 <le...@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