gash/NEWS

102 lines
3.5 KiB
Plaintext

All The Latest Gash News
************************
Noteworthy changes in release 0.3.0 (2022-02-11)
================================================
New features
- Arithmetic expansion.
- Simple asynchronous commands.
- A language specification is now provided, allowing you to use the
evaluator from the Guile REPL by typing ",L sh".
- Redirects now honor the 'noclobber' option.
- The 'wait' built-in.
- The 'umask' built-in can now display the current umask.
Bug fixes
- An empty command will now reset the status.
- The 'read-sh' procedure now reads from 'current-input-port' by
default (before it used 'current-output-port').
Miscellaneous improvements
- Various performance improvements.
- Word expansion has been split into two steps, paving the way for a
compiler.
- Guile 3.0 is now explicitly supported.
Noteworthy changes in release 0.2.0 (2019-12-15)
================================================
New features
- Pattern-based and asserting variable operators ('#', '##', '%',
'%%', and '?') are now supported.
- Errors are now handled in the 'break', 'continue', and 'return'
special built-ins.
- Temporary variable assignments are now passed into function calls
and invocations of regular built-ins.
- The 'read' special built-in now supports field splitting and
logical lines.
- The IFS variable is now initialized with a value.
- The 'trap' special built-in now uses '-' if no action is given.
- The 'noglob' option can be used to turn off globbing.
Bug fixes
- Subshells no longer continue executing code from the parent shell.
- The 'exit' special built-in now runs the exit handler.
- Patterns can now contain malformed, unterminated bracket
expressions (e.g., '[-foo').
- Nested variable references that are interpreted as strings now
work (e.g., 'x=${y+${z+foo}}').
- Backtick command substitutions in double quotes are now parsed
"correctly" (i.e., in the same bizarre way as other shells).
- Case statements that have unbalanced parentheses and are nested
inside of command substitutions are now parsed correctly.
- The behavior of the '+' and ':+' variable operators are no longer
reversed.
- Pathname expansion now works for absolute paths, paths with quoted
slashes, paths with repeated slashes, and paths with dot and
dot-dot components.
- Files opened for redirect are now closed immediately after they
are used.
- Processes spawned for pipelines are now reaped.
Miscellaneous improvements
- Gash is now installed into Guile's 'site' directories.
- The source tarball can now be generated reproducibly from a Git
checkout.
Noteworthy features of release 0.1 (2019-06-01)
===============================================
Features of the shell
- Sophisticated enough to be used to build Bash.
- Has a nice colorized prompt.
- Includes all of the POSIX-specified "special" built-ins except for
'times'.
- Includes about half of the POSIX-specified "regular" built-ins
(see 'gash/built-ins.scm' for details).
Features of the programming interface
- Parses Shell scripts into an AST.
- Provides a rudimentary interface for writing Shell-like Scheme
scripts.
Copying this file
=================
This file was written by Timothy Sample <samplet@ngyro.com>.
To the extent possible under law, the author(s) have waived all
copyright and related or neighboring rights to this file.
You should have received a copy of the CC0 legalcode along with this
work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.