James Carlson wrote: [sorry, this one was stuck&&forgotten in my Drafts/-folder] > Garrett D'Amore writes: > > Have the upstream providers given thought to dealing with changes like > > this and their impact on already-deployed scripts? (Maybe there aren't > > any that we care about yet, since our ksh93 is still so new.) > > We've already had such problems. See CR 6667990 for one such > accident; you can't call your local function "start" and upgrade > safely from Sun's old ksh88 to ksh93.
1. AFAIK the "quagga" builtin has problem with the ksh(88|93) shell _alias_ called "stop" 2. The issue is caused by the switch from Bourne shell to ksh, not by ksh93 itself. ksh88 already had the "stop" alias: -- snip -- $ /usr/bin/ksh -c 'alias' | fgrep "stop" stop='kill -STOP' -- snip -- ... and other shells have the same problem. And the trouble is that "stop" is an shell "alias" which pretty much overrides anything else (as a future countermeasure we'll get "shlint" at some point (once "shcomp" is in the tree) to check for such common dragon-filled pits in the future (in the meantime you can run your script against $ shcomp -n <scriptname> /dev/null # ...)). > > I'm concerned, going forward, as ksh93 syntax becomes more prevalent, > > that bringing in changes like the above may have unintended consequences > > in scripts or even ON delivered components, which we cannot easily find > > or test. > > This probably isn't a good place to design a solution, but I share the > sense of unease. It puts script writers on shaky ground if they can't > either specify a known environment or predict what's "safe." Umpf... IMO "safe" is what's described in the POSIX shell standard and http://www.opensolaris.org/os/project/shell/shellstyle/ (that's why I wrote that document...). ---- Bye, Roland P.S.: Setting Reply-To: to ksh93-integration-discuss at opensolaris.org to get this off he ARC list... -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 7950090 (;O/ \/ \O;)