tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pdksh



Richard PALO wrote:
> After first soliciting Amitai's and Tobias' opinion, it was felt best to start here.
> 

Great idea.

I wanted to modernize ksh(1) in NetBSD with the following ideas in mind:
1. Cut hacks for pre-c99 platforms and leave this niche for MKSH,
2. Remove SH-variation (built time option) code version of ksh, it's dead code and leave this for /bin/sh. This involves no more need to generate ksh.1 each build.
3. Remove more dead code sections like SILLY, it's never built and rots.
4. ANSIfy functions and assume C99 headers.
5. Merge ksh-compat patches from Minix.

I had some work-in-progress patches at GitHub and some more locally.
https://github.com/krytarowski/netbsd/commit/00bc3523c22278d771caa951c00775a263b7f5f2
https://github.com/krytarowski/netbsd/commit/98fceecf491a3cd1370d3c5c0b472e7cfa3d0b78
https://github.com/krytarowski/netbsd/commit/a3c174c4fcaa67fd88431c5947a95af2d8e61f28
https://github.com/krytarowski/netbsd/commit/61345267664e232ec84e179a8eae5d1652c67b6c
https://github.com/krytarowski/netbsd/commit/ace7da5d4ff0ee6ab2aa0b539ecc7dd069be0ecc

I have got problems with ksh(1) and git(1) over remote locations, something damages the prompt from being functional.

When I looked into the code I saw hacks for e.g. FreeBSD from pre-VCS era [1] and in general inconsistency of assuming k&r and c99 environment (later patches silently assume C99). I'm for compatibility with other platforms, however I don't see need to compete with MKSH to have better support for Coherent and other K&R Unices

If you like I can send you my patches for review, ack and merge, one after another -- to align ksh(1) with C99. I know that the initial changes will be non-functional, but it will increase maintainability and the general consistency. With my local changes the ksh(1) code considerably shrinked.

There was a discussion what to do with $KSH_VERSION in OpenBSD, they wanted to remove it[2].
What do you think to set its value to "NetBSD KSH" or "NBKSH"? It's used for checking whether it exists to assume ksh(1) and compatibility with ksh93. Hard-coding there some pdksh(1) version from '90 has no sense. Also there is no need to embed version.

I like your version of pulling-in latest patches.

[1] https://mail-index.netbsd.org/tech-userlevel/2015/01/31/msg008901.html
[2] http://openbsd-archive.7691.n7.nabble.com/ksh-version-lies-td265560.html


Home | Main Index | Thread Index | Old Index