Skip to content

Commit

Permalink
Release 1.0.9
Browse files Browse the repository at this point in the history
Here is the ninth ksh 93u+m/1.0 bugfix release.

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).
  • Loading branch information
McDutchie committed Jul 2, 2024
1 parent 5188590 commit d3fab04
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 23 deletions.
61 changes: 53 additions & 8 deletions ANNOUNCE
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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 ###

Expand Down Expand Up @@ -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,
Expand All @@ -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
Expand Down
2 changes: 2 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
32 changes: 19 additions & 13 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
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

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

Expand All @@ -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
2 changes: 1 addition & 1 deletion src/cmd/ksh93/include/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include <releaseflags.h>

#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

Expand Down

0 comments on commit d3fab04

Please sign in to comment.