Skip to content
dnewhall edited this page Nov 19, 2024 · 9 revisions

user-visible changes between 93v- 2014-12-24 and 93u+m*

All of these sections are incomplete

Bugs in u+m with fixes in v-

TODO: Add list of applicable bugfixes in 93v- not yet backported to 93u+m. The 93v- RELEASE file lists at least some of these bugfixes:
https://github.com/ksh93/ksh93-history/blob/2016-01-10/src/cmd/ksh93/RELEASE

Bugs in v- with fixes in u+m

  • <>file default fd
  • function f { return; } is now equal to function f { return "$?"; }. (not sure if bug or feature but now agrees with other shells.)

Features in u+m not in v-

  • typeset -g
  • .sh.{p,}pid special variables. (partial substitute for the pids builtin)
  • .sh.tilde.{set,get} disciplines.

Features in v- not in u+m

  • ~{fd} and ~{var} expansions. (undocumented)
  • __ special variable. (undocumented)
  • .sh.sig special compound variable. Exposes the siginfo_t structure. (undocumented)
  • set -K numeric and reverse sorting for various kinds of arrays or positional parameters.
  • typeset -c new=obj Like typeset -m (move) but performs an object copy from obj to new. (undocumented)
  • A short-lived feature in which ${ .sh.value=result; } could be used to return a value was added then quietly removed. reference
  • The grep and poll builtins.
  • -m method option that reads a compound variable in a specific format. Two formats provided: ksh and json
  • JSON compound variable output with print -j and printf "%(json)B"
  • JSON input with read -m json
  • enum constants can have .DIG, .MAX, .MIN sub-variables.
  • Floating-point variables can be following by .DIG, .MAX, .MIN, .EPSILON, .INT_MAX, .INT_MIN, or .MAX_10_EXP to give values corresponding to the floating type of the variable.
  • Integer variables can be followed by .DIG, .MAX, or .MIN in arithmetic expression so give the values corresponding to that integer type.
  • Math constants such as E, LOG2E, LOG10E, LN2, PI, PI_2, PI_4, SQRT2, SQRT1_2