3 ms·
The author has neglected the pdksh family of shells which includes all of Android, so this is a sizable oversight. This would include the MirBSD mksh, and oksh
by chasil 3mo ago
The author has neglected the pdksh family of shells which includes all of Android, so this is a sizable oversight.
This would include the MirBSD mksh, and oksh from OpenBSD.
They are much smaller than ksh93 and bash, and I would suggest that their syntax extensions be given preference, as they originally represented ksh88 (from which the POSIX shell standard was derived).
- gaigalas 3mo agoThese are all in the shell-versions toolkit I recommended. docker run -it --rm alganet/shell-versions:all /opt/mksh_R59c/bin/mksh -c 'echo $KSH_VERSION' docker run -it --rm alganet/shell-versions:all /opt/oksh_7.9/bin/oksh -c 'echo $KSH_VERSION' docker run -it --rm alganet/shell-versions:all /opt/loksh_7.9/bin/loksh -c 'echo $KSH_VERSION' I omitted them from the post because this is not about the history of ksh and the pdksh codebase.
- chasil 3mo agoThe POSIX commentary mentions the Korn shell ten times, including particular behavior of the 1988 ksh release. Bash is not mentioned. It is easier to understand the POSIX standard with a ksh focus, particularly ksh88. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V...
- gaigalas 3mo agoI particularly like ksh93. It's a virtual machine, which makes it super fast for a lot of scenarios. The ksh family is my personal favorite, in particular mksh and ksh93. Both with excelent feature sets. I even made a platformer game that works on them https://github.com/alganet/tuish/blob/main/examples/game.sh https://github.com/alganet/tuish/blob/main/examples/game.sh (and zsh/bash/busybox too) to show how feature-complete they are. Shell interpreters are such a broad subject, I could go all day talking about cool things that can be done with them. I want to get people focusing less on the spec. It's for whoever implements interpreters, not people who write scripts. And there's a gap on that, which I'm trying to cover (with full ksh support, much more than you think).
- chasil 3mo agoThe big problem with ksh93 is that it is not maintained. After David Korn retired, an attempt was made to bring out a new version which failed dramatically, and AT&T reverted to Korn's final release. SmartOS uses ksh93 as root's shell.
- gaigalas 3mo agohttps://github.com/ksh93/ksh https://github.com/ksh93/ksh Last commit was 11 hours ago, still maintained.
- chasil 3mo agoThis has some information on the 2020 failure, but it is not what I remember reading. https://www.reddit.com/r/openbsd/comments/jvbj4s/a_new_approach_towards_reviving_ksh93_kornshell/ https://www.reddit.com/r/openbsd/comments/jvbj4s/a_new_appro... There were core performance problems in the 2020 effort.
- gaigalas 3mo agoksh2020 is `v-` based, the repo I mentioned is an `u+` fork with backports from the failed attempt. Most notably, it doesn't change the build system. It's what Debian and Fedora use, so AT&T doesn't matter anymore. Real-world upstream is the repo I linked, which is maintained. All the 2020 drama is now obsolete.