stable

mksh-39c-1.el5

FEDORA-EPEL-2010-2329 created by robert 14 years ago for Fedora EPEL 5

mksh R39c is an important minor bugfix release: - Build system, code, docs and testsuite cleanup, also style(9) - Build.sh now requires people to whitelist conftest*.c - AIX builds no longer pull in libcrypt uselessly by default - Parse and evaluate ${parameter op word} correctly - Fix possible SIGSEGV in interactive mode bind builtin due to mis-optimisation of gcc combined with a bogus prototype; discovered by Grml.org's Frank Terbeck (ft), thanks! - Prevent Build.sh from accidentally removing mksh.1

mksh R39b is a major stability and bugfix update: - Clean up some more strict roff or compiler warnings: dashes, undefined macros; casting errors (constness, signedness, type width/class) and catch possibly unaligned pointer dereferences early; remove code/rodata redundancies, plug memory leaks - Tweak the manual page: point out the word "colour" - Optimise dot.mkshrc DJB’s CDB hash implementations; add Bob Jenkins’ one-at-a-time hash (standard and leading-bit initialised); fix signedness in expressions; let the hashes use stdin if "$" is empty, like Lb64{en,de}code; use "[[ -o utf8-mode ]]" ipv "[[ $- = U ]]" - Build.sh portability fixes: missing prerequisite headers; ensure $CC is never called without $CFLAGS; fix test.sh, et al. - Optimise internal variable representation; use one-at-a-time hash; cache hash values for faster resizing at zero memory cost; clean up hash table (keytab) code; switch hash table collision resolution algorithm to Python’s; prepare for later changes (commented out) - Fix type errors in the source code (int → bool, size_t, mksh_uari_t) - Fix "${foo:bar:$baz}" not working (missing substitute() call) - Implement "typeset ±a" as nop - Support ksh93-like "${!foo[@]}" listing the keys (indicēs) of all set array elements – zsh does it too (${(k)foo}), bash4 can’t :þ - Support bash/ksh93-like "array=([key]=value …)" and (additionally) "set ±A array -- [key]=value …" to directly specify indicēs to use - Document the optional, unsupported, printf(1) builtin in TFM - Replace realpath(3) dependency and internally used get_phys_path() pdksh code with own implementation; always offer the realpath builtin - Implement nameref='typeset -n' (bounded variables) like AT&T ksh93 but with mksh-style nested/dynamic scoping and on-use resolving; they cannot currently be stored in an array though - Add "chdir" builtin doing the same as the "cd" special builtin - Document more differences between mksh (and pdksh) and AT&T ksh (or, more specific, ksh88, ksh93) in the manual page - Support "'a'" as an alternative to "1#a", like ksh93 does - Add ksh’s "test -o ?foo": true if "foo" is a valid shell option, where "foo" can be "xtrace" or "-x" or "+x" (these three are equivalent) - Support "$'…'" backslash-expanding single-quoted strings, as requested by David G. Korn, with almost the same syntax and semantics - Unify backslash expansion code (C style vs. print builtin mode) - Support "function stop () {" bashism - For several items in the source code that require order to be kept, provide it from multiply-included header files; sort correctly - Get rid of unneeded FMONITOR (-m) for shells without job control; sync list of flags, comments and manpage with reality - If MKSH_SMALL, reduce size by removing editor functionality - Support VT100 emulator style {Ctrl,Alt}-CurLeft/Right keycode sequences with new vt100-hack emacs bind function (LP: #355883) - Remove more, like GNU bash extensions, from MKSH_SMALL - Remove more functionality, such as Emacs command line editing mode bind key macros, and other extensions, from MKSH_SMALL to help floppies - Make forking and subshells less expensive wrt. random state - Build and source code fixes for / caught by SUNWcc, HP aCC, pcc, DEC ucode cc (MIPS), GCC, LLVM clang - Make undef/def MKSH_NOVI into 0/1 MKSH_S_NOVI build flag - Get rid of "U getenv" in nm(1) output, we already import environ - Simplify $RANDOM handling: reads are now either arc4random(3) (if available: set +o arc4random is no longer possible) or an LCG; writes are arc4random_pushb(3) if available for explicit writes, arc4random_addrandom(3) otherwise, or another one-at-a-time hash feeding the LCG; furthermore, RANDOM is now always exported to and imported from (implicit read: no push to kernel done) the environment vector on startup and spawning - Internal code cleanup, optimisation, moves to different files; dead/commented out code removal; code beautification - Document mksh does not exactly use OPTU-8/OPTU-16 in the manpage, as well as when characters, octets, or screen columns are used - Fix exit 127 on "mksh /tmp/horsies" ipv of 1 on ENOENT, #548744 - Fix typos in the testsuite - Begin a shared testsuite for mksh and posh - Document (via check.t) another posh bug affecting mksh, #445651 - Make 「((foo) || bar)」 and 「((foo) | (bar))」 work - Fix lazy evaluation of assignments by ternary operator, #445651 - Work around Cygwin bugs (quirks) hindering the testsuite - In FSH mode, "echo [-n] 'foo@bar'" shall not be expanded - Let Build.sh run with AIX bsh (SVR3 Bourne Shell) - Let set -- $(false); echo $? return 0 (POSIXly correct) in FSH mode, 1 (needed for getopt(1) support) otherwise - Changes of variables inside Bourne style POSIX functions indeed affect the current execution environment (of the function caller) - Fix getopts behaviour (sync with AT&T ksh93 not ksh88) - "eval $(false)" shall return 0 (Debian Closes: #550717) - Ensure that / apo'strophes in comments / work - New Build.sh flag -M to not compile but spit out a Makefrag.inc file from the current build environment, such as the (cross)compiler, CFLAGS, LDFLAGS, etc. which then can be sourced by e.g. the Android NDK, or built with make(1) – BSD make and GNU make have been tested, but almost all makes should work if the source and build directories are the same or VPATH is supported at least (use of this option is discouraged) - Overhaul and simplify handling of (special) variables - Further reduce memory (code/data) and import footprint - Use functions without PATH_MAX limit on GNU/Hurd - Fix tab completing pathnames containing ‘:’, ‘=’, ‘$’ or ‘`’ - Support ‘-T <tty>’ even if MKSH_SMALL and fix it - Remove "which" alias "whence -p" to allow "which -a" in dot.mkshrc and add more examples, some commented out - Fix print_columns() issue with displaying items where characters had differing number of octets and columns, and the off-by-one which had hidden this problem with 2-octet 1-column and 3-octet 2-column chars - Beautify the manpage in both AT&T nroff and GNU groff - Fix null-expansion of "${x%?}" if $x is unset - Make some globbing (${x%?}) operate on characters instead of octets; update manual page to reflect that others still do and remove wording that let people think we’d ever support POSuX character classes - New ${%foo} returning width of $foo in screen columns, or -1 if $foo contains an ASCII/latin1/Unicode C0/C1 control character - Fix subtle possible portability problem wrt. CHILD_MAX - Honour ±U on command line of an interactive shell - Fix dead stores and other bugs pointed out by the Clang static analyser; put assertions in places it has false positives (-DDEBUG) - Plug uninitialised memory access and possible out-of-bounds read of a buffer caught by Valgrind; change one memcpy(3) to memmove(3) where srcbuf and dstbuf overlap; place (-DDEBUG) workaround for false positive - HP aCC: change IA64 default from forced +DD64 to using the default; support Bundled compiler; fix double-const warning - Rework attribute compiler capability check - Apply errno save/restore related fix from (sync with) oksh - Build.sh: output message when switching from autoconfiguration to building / output generation (requested by Matt "lewellyn" Lewandowsky); use "conftest.c" ipv "scn.c" (to please ccache); check for "-xipo" with SUNWcc (suggested by lewellyn as well) - Allow "unset foo[]" (keep attributes) and "typeset foo[]" (for forward-compatibility; in R39b it’s the same as "typeset foo") - When persistent history is enabled (but not MKSH_SMALL) and used, intertwine the shells concurrently accessing $HISTFILE better ⇒ sync on empty or duplicate line as well (requested by Maximilian "mxey" Gaß) - Split off "set ±o posix" and "set ±o sh" again, to be somewhat more compatible to various old or vendor versions of pdksh and mksh: - MKSH_BINSHREDUCED sets FSH but not FPOSIX - MKSH_MIDNIGHTBSD01ASH_COMPAT depends on FSH but not FPOSIX - The echo built-in behaves the same for FPOSIX and FSH - File descriptors > 2 are not closed for both FPOSIX and FSH - Both "set -o posix" and "set -o sh" call "set +o braceexpand" - In contrast to R39 and below, the errorlevel of "set -- $(getopt ab:c "$@")" is now the same in ksh and FPOSIX mode (0) and only FSH will use the errorlevel of getopt (used to be the other way round) - Document some more shortcomings in the mksh(1) manual page - Contributed printf.c fixes: - Make printf(1) builtin use "$'…'" mode, like ksh93 - Fix const-cleanliness - Contributed arc4random.c fixes: - Fix buffer overflows in the Win32 codepath of the contributed arc4random.c file and limit the rate of expensive CryptGenRandom calls if we have other (seed in registry key) entropy pools - Fix uninitialised memory access caught by Valgrind - New Build.sh flag -valgrind since I’m lazy

This update has been submitted for testing

This update has been pushed to testing

14 years ago

This update has been submitted for stable.

This update has been pushed to stable

14 years ago

Please login to add feedback.

Metadata
Type
bugfix
Karma
0
Signed
Content Type
RPM
Test Gating
Builds
1
Settings
Unstable by Karma
-3
Stable by Karma
disabled
Stable by Time
disabled
Dates
submitted
14 years ago
in testing
14 years ago
in stable
14 years ago

Automated Test Results