That if you the developers of Phar change things many have to follow and
it comes to things like this:
"protocol: version dependent"
platformName
"After Squeak version 3.6, #platformName was moved to SmalltalkImage
Some
versions of Pharo move this to OSPlatform and issue deprecation warnings
about the other usages. The original idiom (Squeak 3.6 and earlier) is
the sensible
default, but here we attempt to support other implementations if the
sensible
default is not available."
"OSProcess platformName"
(Smalltalk respondsTo: #platformName)
ifTrue: [^ Smalltalk platformName].
self isPharo3AndLater
ifTrue: [ ^ (Smalltalk perform: #os) name ].
^ (((Smalltalk hasClassNamed: #OSPlatform)
and: [(Smalltalk at: #OSPlatform)
respondsTo: #platformName])
ifTrue: [Smalltalk at: #OSPlatform]
ifFalse: [((Smalltalk classNamed: 'SmalltalkImage')
ifNil: [^ Smalltalk osVersion]) current])
platformName
Now how many do have to follow through all this?
So well yes in the end it means not thinking about compatibility costs a
lot thereafter....