diff --git a/ANNOUNCE b/ANNOUNCE index 683553d956da..1810ee5b2bf9 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,10 +1,12 @@ -Announcing: KornShell 93u+m/1.0.8 +Announcing: KornShell 93u+m/1.0.9 https://github.com/ksh93/ksh -Here is the eighth ksh 93u+m/1.0 bugfix release. It fixes a bug that caused -an incorrect default exit status for 'exit' within a trap action, as well as -a race condition (introduced in 1.0.7) occurring on some systems when -running an external command with a redirection from a command substitution. +Here is the ninth ksh 93u+m/1.0 bugfix release. This release contains many +fixes of old and not-so-old bugs (including a couple of regressions in the +printf built-in introduced in 93u+m/1.0.5), adds Android/Termux as a +supported platform, and reintroduces the ability to build a dynamically +linked ksh (with libast, libdll, libcmd, and libshell available for other +applications to use) on most supported platforms. Further below is an overview of the main changes. For greater detail, see the NEWS file in the distribution. For complete detail, see the git(1) @@ -16,7 +18,7 @@ Please download the source code tarball from our GitHub releases page: https://github.com/ksh93/ksh/releases To build, follow the instructions in README.md or src/cmd/ksh93/README. -Or ask your distribution package manager to upgrade ksh to this version. +Or ask your distribution package maintainer to upgrade ksh to this version. ### ABOUT KSH ### @@ -44,8 +46,8 @@ file name completion (new in 93u+m), and much more. Main ksh 93u+m developers: Martijn Dekker, Johnothan King, hyenias Direct contributors: Andy Fiddaman, Anuradha Weeraman, atheik, Chase, -Cy Schubert, Govind Kamat, Harald van Dijk, K. Eugene Carlson, Lev -Kujawski, Marc Wilson, Phi, Ryan Schmidt, rymrg, Sterling Jensen, +Cy Schubert, Govind Kamat, Harald van Dijk, hyousatsu, K. Eugene Carlson, +Lev Kujawski, Marc Wilson, Phi, Ryan Schmidt, rymrg, Sterling Jensen, Trey Valenta, Vincent Mihalkovic Also includes backported contributions by: David Korn, Glenn Fowler, @@ -70,6 +72,49 @@ Feel free to use Discussions to introduce yourself to the community. You can also join the mailing list/Google group at: https://groups.google.com/g/korn-shell +### MAIN CHANGES between ksh 93u+m/1.0.8 and 93u+m/1.0.9 ### + +- Android/Termux is now a supported platform. Build dependencies: binutils, + clang, getconf. Runtime dependencies (optional): ncurses-utils, getconf. +- Reintroduced support for building a dynamically linked ksh(1)/shcomp(1), + with libast, libdll, libcmd, and libshell available to other programs as + dynamic libraries. 'bin/package install /your/basepath' will install + development headers. The dynamically linked version is built in a 'dyn' + subdirectory; there are no changes to the statically linked version. + Dynamic linking is currently tested and supported on Linux, Android, + macOS, all the BSDs, illumos, Solaris, QNX, and Haiku. +- On systems where the external printf(1) utility supports deprecated + pre-POSIX syntax for formatters starting with '-', ksh now adapts its + built-in printf to match, for compatibility with system scripts. However, + ksh's built-in printf options such as -v or --man are not affected. +- Fixed a regression in the 'printf' built-in, introduced in 93u+m/1.0.5, + where each instance of '\0' or '%Z' in the format operand caused a string + argument to be incorrectly skipped. +- Fixed a regression, introduced in 93u+m/1.0.5, in ordinal specifiers in + 'printf %T' date specifications. For example, + printf '%(%F)T\n' '4th tuesday in march 2016' + wrongly printed '2016-04-09' and now again correctly prints '2016-03-22'. +- Fixed a regression of 'return' within traps, reintroduced in 93u+m/1.0.8 + after being fixed in 93u+m/1.0.0. The regression caused a 'return' or + 'exit' with no arguments to assume the before-trap exit status instead of + that of the last-run command. This broke the shipped 'autocd' function. +- Fixed a longstanding bug in shell arithmetic: the representation of + negative integers with a base other than 10 was incorrectly treated as + unsigned long. For example, + typeset -i16 n=-12; echo $n + now correctly outputs '-16#c' and no longer ouputs '16#fffffffffffffff4'. +- Fixed a bug, introduced in ksh93q+ 2005-05-22, that stopped an append + assignment from working together with a declaration command. For example, + 'typeset var+=value' or 'export var+=value' now again work as expected. +- Fixed a longstanding bug where the default terminal width for typeset -L, -R, + or -Z, if not given, was miscalculated for multibyte or control characters. +- Fixed: expansions of name references in loops were incorrectly treated as + invariant so they yielded the wrong values. +- If a .get or .getn discipline function is set for a variable, it is no + longer incorrectly triggered when performing an arithmetic assignment on + that variable; only the .set discipline is now triggered (as documented). +- Many other bug fixes (see the NEWS file). + ### MAIN CHANGES between ksh 93u+m/1.0.7 and 93u+m/1.0.8 ### - Fixed a regression in the behavior of 'exit' in a trap action. The exit diff --git a/NEWS b/NEWS index 5294eed56f7b..af6f46cfdae7 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,8 @@ Uppercase BUG_* IDs are shell bug IDs as used by the Modernish shell library. 2024-07-02: +- Release 1.0.9. + - Support for UNC paths (//server/dir) is now enabled by default on Cygwin. 2024-06-30: diff --git a/README.md b/README.md index f11c964b6b62..c0daff395b8c 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ outputs the name of this subdirectory. Dynamically linked binaries, if supported for your system, are stored in `dyn/bin` and `dyn/lib` subdirectories of your architecture directory. If built, they are built in addition to the statically linked versions. -Export `AST_NO_DYLIB` to deactivate building dyanmically linked versions. +Export `AST_NO_DYLIB` to deactivate building dynamically linked versions. If you have trouble or want to tune the binaries, you may pass additional compiler and linker flags. It is usually best to export these as environment diff --git a/TODO b/TODO index 5cd6602dfaa4..574304240891 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -The following bugs and issues are known for ksh 93u+m 1.0.5: +The following bugs and issues are known for ksh 93u+m 1.0.9: Memory leak when initialising associative array in subshell https://github.com/ksh93/ksh/issues/94 @@ -6,15 +6,9 @@ https://github.com/ksh93/ksh/issues/94 command substitution botches output of non-waited-for child processes https://github.com/ksh93/ksh/issues/124 -wrong typeset -p output after unsetting multidimensional array elements -https://github.com/ksh93/ksh/issues/148 - typeset -L/-R: string length breaks on multibyte characters https://github.com/ksh93/ksh/issues/189 -Unicode code points in $'...' strings should vary according to the locale -https://github.com/ksh93/ksh/issues/193 - Segfault with very large extended glob patterns https://github.com/ksh93/ksh/issues/207 @@ -39,14 +33,26 @@ https://github.com/ksh93/ksh/issues/419 Function autoload apparently broken on DragonFly BSD https://github.com/ksh93/ksh/issues/432 -Alias expansion loop not detected in command substitution -https://github.com/ksh93/ksh/issues/458 - -Make KEYBD trap handling code multibyte-aware -https://github.com/ksh93/ksh/issues/460 - nameref fails with nested associative arrays https://github.com/ksh93/ksh/issues/594 globstar fails to resolve symlink https://github.com/ksh93/ksh/issues/629 + +Race condition in job notification +https://github.com/ksh93/ksh/issues/655 + +ksh remains in "noecho" mode forever +https://github.com/ksh93/ksh/issues/672 + +bogus typeset -p output for compounds with disciplines +https://github.com/ksh93/ksh/issues/729 + +test a = a b: undetected error bug +https://github.com/ksh93/ksh/issues/739 + +Occasional "write error" when writing to pipe +https://github.com/ksh93/ksh/issues/741 + +sleep 10 | read hangs interactive shell after ^Z +https://github.com/ksh93/ksh/issues/750 diff --git a/src/cmd/ksh93/include/version.h b/src/cmd/ksh93/include/version.h index 9d7735397400..fbe5800ae150 100644 --- a/src/cmd/ksh93/include/version.h +++ b/src/cmd/ksh93/include/version.h @@ -17,7 +17,7 @@ #include #define SH_RELEASE_FORK "93u+m" /* only change if you develop a new ksh93 fork */ -#define SH_RELEASE_SVER "1.0.9-beta" /* semantic version number: https://semver.org */ +#define SH_RELEASE_SVER "1.0.9" /* semantic version number: https://semver.org */ #define SH_RELEASE_DATE "2024-07-02" /* must be in this format for $((.sh.version)) */ #define SH_RELEASE_CPYR "(c) 2020-2024 Contributors to ksh " SH_RELEASE_FORK