X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-Id: <202209081732.288HWahC027033@delorie.com> Date: Thu, 8 Sep 2022 19:30:28 +0200 From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: DJGPP port of GNU Bash 4.2.53 uploaded. Content-Type: text/plain; charset=US-ASCII Reply-To: djgpp AT delorie DOT com This is a port of GNU Bash 4.2.53 to MSDOS/DJGPP. Bash is the GNU Project's Bourne Again SHell, a complete implementation of the POSIX.2 shell spec, but also with interactive command line editing, job control on architectures that support it, csh-like features such as history substitution and brace expansion, and a slew of other features. DJGPP specific changes. ======================= - This port is based on the last port of bash to DJGPP (aka bsh4117b*.zip). It fixes some issues discovered while using it. Beacuse the bsh4117* port is based on all previous ports of bash, it implies that all of them are very likely to suffer from the same issues. Thus all previous ports have been moved to the "deleted" directory. Their usage is no longer neither supported nor encuoraged. - The port checks at run time if LFN support is available or not and selects the file names of temporary files that are created accordingly. - This port now supports colorized printing on terminal in the same fashion as other DJGPP ports like grep and diffutils do. - The port has been compiled using a C library version compiled from current repository code. To avoid any nmalloc related issues, the old malloc functions have been compiled instead of nmalloc. - There may exist much more DOS specific bugs in this port that have still not been discovered and that will be fixed as they appear. - The testsuite is POSIX centric and has not been ported. Especially assumptions about paths that are POSIX specific make it really difficult to adjust the testsuite to DOS. Currently the port can only be tested by using it. It is also not clear at all if this port does work on FreeDOS and OpenDos in a reliably way. - The port has been configured and compiled on WinXP SP3, Win98SE, MS-DOS 7.10 using DOSLFN 0.41f and MS-DOS 6.22 using DOSLFN 0.41f. There is no guarantee that this may be possible with any other DOS- like OS. Due to the use of long file names it will not be possible to configure and compile without LFN support. The port has been compiled using gcc346 and bnu2351b. - The coprocess support and the coproc reserved word have been disabled. This feature requires special pipe support and this may be implemented in the future. - To be able to build this port you may need to have LFN support. - If NLS support is wanted, then the sources must be reconfigured passing the nls option to config.bat. As usual, all djgpp specific files (diffs, README files, etc.) are stored in the "djgpp" directory. The sources have been configured to be build in the "0build" directory. If for some reason it does not work for you, delete its contents and configure from scratch again. Please read the docs to become familiar with this product. Here is an extract of the NEWS file showing the user visible changes from the last port (GNU Bash 4.1.17) to this one: ------------------------------------------------------------------------------- This is a terse description of the new features added to bash-4.2 since the release of bash-4.1. As always, the manual page (doc/bash.1) is the place to look for complete descriptions. 1. New Features in Bash a. `exec -a foo' now sets $0 to `foo' in an executable shell script without a leading #!. b. Subshells begun to execute command substitutions or run shell functions or builtins in subshells do not reset trap strings until a new trap is specified. This allows $(trap) to display the caller's traps and the trap strings to persist until a new trap is set. c. `trap -p' will now show signals ignored at shell startup, though their disposition still cannot be modified. d. $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences. e. declare/typeset has a new `-g' option, which creates variables in the global scope even when run in a shell function. f. test/[/[[ have a new -v variable unary operator, which returns success if `variable' has been set. g. Posix parsing changes to allow `! time command' and multiple consecutive instances of `!' (which toggle) and `time' (which have no cumulative effect). h. Posix change to allow `time' as a command by itself to print the elapsed user, system, and real times for the shell and its children. j. $((...)) is always parsed as an arithmetic expansion first, instead of as a potential nested command substitution, as Posix requires. k. A new FUNCNEST variable to allow the user to control the maximum shell function nesting (recursive execution) level. l. The mapfile builtin now supplies a third argument to the callback command: the line about to be assigned to the supplied array index. m. The printf builtin has a new %(fmt)T specifier, which allows time values to use strftime-like formatting. n. There is a new `compat41' shell option. o. The cd builtin has a new Posix-mandated `-e' option. p. Negative subscripts to indexed arrays, previously errors, now are treated as offsets from the maximum assigned index + 1. q. Negative length specifications in the ${var:offset:length} expansion, previously errors, are now treated as offsets from the end of the variable. r. Parsing change to allow `time -p --'. s. Posix-mode parsing change to not recognize `time' as a keyword if the following token begins with a `-'. This means no more Posix-mode `time -p'. Posix interpretation 267. t. There is a new `lastpipe' shell option that runs the last command of a pipeline in the current shell context. The lastpipe option has no effect if job control is enabled. u. History expansion no longer expands the `$!' variable expansion. v. Posix mode shells no longer exit if a variable assignment error occurs with an assignment preceding a command that is not a special builtin. w. Non-interactive mode shells exit if -u is enabled and an attempt is made to use an unset variable with the % or # expansions, the `//', `^', or `,' expansions, or the parameter length expansion. x. Posix-mode shells use the argument passed to `.' as-is if a $PATH search fails, effectively searching the current directory. Posix-2008 change. 2. New Features in Readline a. The history library does not try to write the history filename in the current directory if $HOME is unset. This closes a potential security problem if the application does not specify a history filename. b. New bindable variable `completion-display-width' to set the number of columns used when displaying completions. c. New bindable variable `completion-case-map' to cause case-insensitive completion to treat `-' and `_' as identical. d. There are new bindable vi-mode command names to avoid readline's case- insensitive matching not allowing them to be bound separately. e. New bindable variable `menu-complete-display-prefix' causes the menu completion code to display the common prefix of the possible completions before cycling through the list, instead of after. ------------------------------------------------------------------------------- The port consists of the usual three packages that have been produced using djdev206 (CVS repository code) and can be downloaded from ftp.delorie.com and mirrors as (time stamp 2022-08-31): GNU Bash 4.2.53 binary, info and man format documentation: http://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4253b.zip GNU Bash 4.2.53 dvi, html, pdf and ps format documentation: http://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4253d.zip GNU Bash 4.2.53 source: http://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4253s.zip Send GNU Bash specific bug reports to . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . Enjoy. Guerrero, Juan Manuel