Hi everybody, I am very pleased to announce that Gash version 0.2.0 has been released. It represents 58 commits from two authors over the course of about six months.
About ===== Gash is a POSIX-compatible shell written in Guile Scheme. It provides both the shell interface, as well as a Guile library for parsing shell scripts. Gash is designed to bootstrap Bash as part of the Guix bootstrap process. We are planning to develop Gash into a general-purpose shell and tool for building interfaces between Scheme and the shell. Download ======== You can download Gash 0.2.0 from http://download.savannah.nongnu.org/releases/gash/gash-0.2.0.tar.gz and verify its authenticity with its signature file http://download.savannah.nongnu.org/releases/gash/gash-0.2.0.tar.gz.sig News ==== The big news for this release is that Gash can now replace Bash in building all of the packages used in Guix’s “Reduced Binary Seed Bootstrap” <http://joyofsource.com/reduced-binary-seed-bootstrap.html>. Whereas the previous release could build Bash itself, this release can build everything from Mes to GCC and then build Bash. To do so, Gash needed many improvements. Here are a few highlights. • Pattern-based and asserting variable operators (‘#’, ‘##’, ‘%’, ‘%%’, and ‘?’) are now supported. • The ‘read’ special built-in now supports field splitting and logical lines. • Temporary variable assignments are now passed into function calls and invocations of regular built-ins. • Pathname expansion now works for absolute paths, paths with quoted slashes, paths with repeated slashes, and paths with dot and dot-dot components. There are also some significant fixes in resource handling and parsing, and a handful of other improvements. Please see the NEWS file for details. What’s next? ============ The next big thing for the Gash project will be the release of a sibling project which contains Scheme versions of the other utilities (“coreutils&co”) used in the Guix bootstrap process. Beyond bootstrapping, here’s what’s in store: • Asynchronous commands and job control; • Tilde expansion; • Becoming a more useful interactive shell (in particular, prompting the user for more input if they enter a newline before completing a command); and • A shell compiler for Guile along with a language specification. Contributing ============ The primary Git repository is available on Savannah. It can be cloned from <https://git.savannah.gnu.org/git/gash.git> and browsed on the Web at <https://git.savannah.nongnu.org/cgit/gash.git>. If you would like to help out with this project, please get in touch at <gash-de...@nongnu.org>. This is also where you can submit bugs! Thanks to everyone who has helped out so far! -- Tim