cc: opensolaris-discuss at opensolaris.org
Subject: Re: Re: [ksh93-integration-discuss] Re: [osol-discuss] Formal Proposal
: Port OpenSolaris to PowerPC
--------
I don't want to get involved in political arguments so I will
state my view one once.
It looks as if Casper Dik and Martin Schaffstall have views that are at
opposite ends of the spectrum. Neither is right and neither is wrong.
There are tradeoffs in either view which I will outline below
and present the pros and cons of each.
Casper's view:
Avoid making changes that could be incompatible and effect customers.
Add ksh but putting it under a new name. Install ksh93 as /bin/ksh.
Here are the pros:
1. Sun provides continuity for customers.
2. Easier to get approved.
3. Each version can be modified independently.
4. Can be implemented quickly.
5. It is simpler in the short term.
Here are the cons:
1. Complexity grows over time.
2. Multiple versions need to be supported.
3. Versions might diverge making future merges more difficult.
4. Features that users want might be partially in one
version and not in the other.
5. More closed source code.
6. Less compatbility with Linux systems.
7. Gets worse as time goes on.
Martins view:
Select the best shell and make that the standard. Install ksh93 as
/bin/sh.
Here are the pros:
1. Once adopted, improves productivity for users.
2. Reduces code and the need to support closed version.
3. Improves Solaris performance.
Here are the cons:
1. Sun would have to make sure that all their scripts
run which is likely to require some changes.
2. It might break some existing user scripts.
3. When installed as /bin/sh, it must be able to handle
all calls to system().
4. This would take longer to implement.
5. Harder to get approved.
An alternative would be to do things in three phases.
Phase 1.
1. Move the current ksh to /bin/ksh88
2. Install the new ksh as /bin/ksh
3. Fix any Solaris scripts that currently use ksh so
that they run with ksh93.
4. Inform user to either change the #! in their scripts
to use /bin/ksh88 or fix the script if it doesn't
run under the new /bin/ksh.
5. Mark /bin/ksh88 as obsolete and stop any maintenence.
Phase 2.
1. Make sure all Solaris scripts run with /bin/sh as ksh93.
2. Let /bin/sh be a symlink that can be set to /bin/ksh
or to the old /bin/sh.
3. Mark /bin/osh as obsolete and stop any maintenence.
Phase 3.
1. Make /bin/sh and /bin/ksh links.
David Korn
dgk at research.att.com