On 31 July 2017 at 05:10, Stephen John Smoogen <smooge@xxxxxxxxx> wrote: > If I am writing it as /bin/sh I am expecting that bash, zsh, etc are going > to fall into POSIX conformant mode outlined many years ago. Then the script > I run should work on everything from that SunOS-4.1.1 box needed for a 30 > year old experiment or the brand new RHEL box. > > When that doesn't happen we normally see some person opening up bugs, > complaining on lists and various other flames. And the counter flames from > people who are enjoying all the benefits of a newer shell that completely > broke when /bin/sh was used versus /bin/bash or /bin/zsh. When a developer > is working on bash, zsh internals they know that the /bin/sh must pass a set > of standards set by some committee years ago. > > That last part is the issue missing here. Unless that gets decided, this > problem is getting kicked down the road every time a major 'update' in > syntax happens. Syntactically, the de facto equivalent for Python now is code that meets the following criteria: - runs without warnings under "python2 -3" - passes "pylint --py3k" without warnings Even "async" and "await" haven't graduated to full keyword status yet (while they're expected to do so at some point, it's also something we can readily postpone if doing so is seen as helpful) Full standard library compatibility is somewhat trickier, as that's closer to the question of "compatibility of both /bin/sh *and* the default contents of PATH" than it is pure syntactic compatibility, but the six compatibility library provides most of the necessary pieces. Cheers, Nick. -- Nick Coghlan | ncoghlan@xxxxxxxxx | Brisbane, Australia _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx