[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ANN] Gash 0.2.0 released

From: Timothy Sample
Subject: [ANN] Gash 0.2.0 released
Date: Sun, 15 Dec 2019 22:20:52 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

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


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.


You can download Gash 0.2.0 from

and verify its authenticity with its signature file


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” <>.
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

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.


The primary Git repository is available on Savannah.  It can be cloned
from <> and browsed on the Web
at <>.

If you would like to help out with this project, please get in touch at
<address@hidden>.  This is also where you can submit bugs!

Thanks to everyone who has helped out so far!

-- Tim

reply via email to

[Prev in Thread] Current Thread [Next in Thread]