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.

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.


Home | Main Index | Thread Index | Old Index