Rocksolid Light

News from da outaworlds

mail  files  register  groups  login

Message-ID:  

You are confused; but this is your normal state.


comp / comp.unix.shell / [ANN] ksh 93u+m/1.0.10

SubjectAuthor
o [ANN] ksh 93u+m/1.0.10Martijn Dekker

1
Subject: [ANN] ksh 93u+m/1.0.10
From: Martijn Dekker
Newsgroups: comp.unix.shell
Date: Thu, 1 Aug 2024 23:38 UTC
Path: eternal-september.org!news.eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: martijn@inlv.demon.nl (Martijn Dekker)
Newsgroups: comp.unix.shell
Subject: [ANN] ksh 93u+m/1.0.10
Date: Fri, 2 Aug 2024 00:38:41 +0100
Lines: 413
Message-ID: <lh2kk1Fbul1U1@mid.individual.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net V4ReBq8lXFO9WnmnSZugTwDyLOdchA1ZMkjh1f4KIeIr7RfZ8=
Cancel-Lock: sha1:mZyXP6XQNq3Vk9OfPsFQEfbEZbM= sha256:/QCuEnKhBPoJmAzAQ1EyzasVaYeGHjKhk5VXj91CD9U=
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
View all headers

Announcing: KornShell 93u+m/1.0.10
https://github.com/ksh93/ksh

Here is the tenth ksh 93u+m/1.0 bugfix release -- exactly two years after
93u+m/1.0.0 and twelve years after 93u+. Unfortunately, we're not done
fixing bugs yet, but progress continues steadily.

This release fixes a serious bug in the arithmetic subsystem that was
triggered on non-Intel processors (such as ARM): any division of an integer
by a negative integer threw a spurious "divide by zero" error. This bug has
been in ksh since 2005. There are other bug fixes as well; see below.

For greater detail, see the NEWS file in the distribution. For complete
detail, see the git(1) commit log, which has full documentation of every
significant change.

### HOW TO GET IT ###

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 maintainer to upgrade ksh to this version.

### ABOUT KSH ###

KornShell (ksh) is a full-featured and very fast shell script interpreter
and interactive command shell with a distinguished lineage: it is a direct
descendant of the Bourne shell and, like its ancestor, was developed at
AT&T, the birthplace of UNIX. ksh has been open source since 2000.

But when AT&T terminated development in 2020, ksh was left buggy and
unreliable. ksh 93u+m aims to fix this situation whilst maintaining and
growing the tradition. For now, we are focusing mostly on fixing bugs and
egregious flaws but we also prioritise backward compatibility, performance,
portability, and occasionally adding a feature. Work on ksh 93u+m started in
May 2020, based on the last AT&T stable release, ksh 93u+.

Unique ksh features include discipline functions (every variable expansion
or assignment can trigger a shell function call determining its value),
static scoping of local variables in functions, the ability to define your
own data types, customisable tilde expansion (new in 93u+m), a shell option
for file system case (in)sensitivity detection for pathname expansion and
file name completion (new in 93u+m), and much more.

### CONTRIBUTORS ###

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, 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,
Lefteris Koutsofios, Siteshwar Vashisht, Kurtis Rader, Roland Mainz,
Finnbarr P. Murphy, Lijo George, OpenSUSE ksh 93u+ patch authors, Red Hat
ksh 93u+ path authors, Solaris ksh 93u+ patch authors, Debian ksh 93u+
patch authors, Apple ksh 93u+ patch authors, Graphviz maintainers

Many fixes have also been backported from the AT&T 93v- beta as well as the
former AT&T ksh2020 project lead by Kurtis Rader and Siteshwar Vashisht; we
appreciate and benefit from their work. Many thanks also to Siteshwar for
graciously donating his 'ksh93' GitHub organisation account!

### HOW TO GET INVOLVED ###

To report a bug, please open an issue at our GitHub page (see above).
Alternatively, email me at martijn@inlv.org with your report.
To get involved in development, read the brief policy information in
README.md and then jump right in with a pull request or email a patch.
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.9 and 93u+m/1.0.10 ###

- Fixed a serious and longstanding bug in the arithmetic subsystem that was
triggered on non-Intel processors (such as ARM): any division of an
integer by a negative integer threw a spurious "divide by zero" error.
- Fixed a regression where a broken pipe signal (SIGPIPE), when occurring in
a pipe construct within a subshell, caused incorrect signal handling in the
parent/main shell, in some cases causing a script to abort.
- Fixed a bug where printf %T, after having printed the time in UTC once
with the TZ variable set to "UTC", would always print the time in UTC from
then on, even if the TZ variable was changed to another time zone.
- The history expansion character ('!' by default) is now not processed when
immediately following '${'. This makes it possible to use expansion syntax
like ${!varname} and ${!prefix@} on the interactive command line with the
histexpand option on; these no longer trigger an "event not found" error.
- The shell is now capable of handling more than 32767 simultaneous
background jobs, subject to system limitations.

### 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
status used when no argument is given to 'exit' is now once again the exit
status of the last command executed *before* the trap action.
- Fixed a race condition, introduced in 1.0.7, that occurred on some systems
when running an external command with a standard output redirection from a
command substitution.
- Fixed an init-time crash on failure to trim the shell command history file
due to a non-writable parent directory; ksh now prints a warning instead.
- The 'kill' built-in command now correctly refuses to issue SIGSTOP to the
shell's own process if the shell is a login shell.

### MAIN CHANGES between ksh 93u+m/1.0.6 and 93u+m/1.0.7 ###

- Fixed a hang in command substitutions (introduced in 93u+m/1.0.0) that was
triggered when redirecting standard output within a command substitution,
in combination with other factors. E.g., the following no longer hangs:
{ v=$(redirect 2>&1 1>&9); } 9>&1
- Fixed a crash on trying to append an indexed array value to an unset name
reference, e.g.: nameref unsetref; unsetref+=(foo bar). This now produces
a "removing nameref attribute" warning before performing the assignment.
- Fixed: assignments like name=(...) to arrays did not preserve the array
and variable types; similarly, assigning an empty set () to a compound
indexed array caused the -C attribute to be lost.
- Fixed incorrect rejection of the tab key while reading input using the
'read' built-in command.
- Fixed a bug in printf %T: when using dates and times in the past, time
zones for the present were incorrectly used, ignoring historical changes.


Click here to read the complete article
1

rocksolid light 0.9.8
clearnet tor