ksh-2020.0.0 is now available

Skip to first unread message

Siteshwar Vashisht

Oct 10, 2019, 4:44:34 AM10/10/19
to korn-...@googlegroups.com, flo...@gentoo.org, m...@suse.com, Boyuan Yang, eric desrochers, c...@freebsd.org, esch...@archlinux.org, sme...@gmail.com, ryand...@macports.org
Today we are announcing the availability of new stable release of ksh-2020.0.0. This is the first stable release of ksh after a gap of more than 6 years. It is based on the ksh93v- release, which was a beta release of ksh released by AT&T AST development team in 2014.

Release tarballs can be downloaded from GitHub[1]. Here are the highlights for this release:

* This is based on the ksh93v- code base but with some features removed or disabled. For example, new builtins that were not present in the ksh93u+ release have been (temporarily) removed. Support for JSON (through `read` and `print` builtins) added after ksh93u+ is currently disabled due to serious bugs in the implementation.
* We’ve switched from the ksh93[letter][-+] versioning scheme to semantic versioning. Hence the 2020.0.0 version rather than ksh93w+. This should make it much clearer moving forward when a release is a patch, minor, or major release.
* Build system has been changed to make it easier and faster to build.
* The AST Vmalloc subsystem has been removed and replaced by the system malloc (which makes it possible to use tools like Valgrind and ASAN).
* Almost all the AST locale subsystem has been replaced by the system locale support.
* Support for non-POSIX operating systems and EBCDIC has been removed.
* Hundreds of new tests have been added to improve test coverage. Including tests of interactive behavior (using the expect utility).
* Coverity defect rate (bugs per thousand lines of code) has been brought from above 2 to zero (almost). See https://scan.coverity.com/projects/ksh?tab=overview
* Downstream patches from different vendors were merged upstream.
* All of the bugs found through ASAN were fixed with the exception of a few memory leaks.
* Lots of bugs identified by cppcheck, oclint, clang-analyzer and gcc were fixed.
* The code has been reformatted to have a consistent style via clang-tidy and clang-format.
* `declare` and `local` are now builtin keywords.
* `times` has been changed from an alias to a builtin that conforms to the POSIX spec.
* It’s now possible to build and pass all tests on Solaris and modern BSD platforms like macOS and FreeBSD.

See the changelog[2] for more details about the changes made since the ksh93u+ release 6 years ago.


[1] https://github.com/att/ast/releases/tag/2020.0.0
[2] https://github.com/att/ast/blob/2020.0.0/CHANGELOG.md

Siteshwar Vashisht
Reply all
Reply to author
0 new messages