You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Timothy Sample a3123ab02a Update NEWS for 0.3.0.
* NEWS (release 0.3.0): New section.
1 year ago
build-aux Install Git in the CI environment. 3 years ago
doc Add arithmetic expansion. 2 years ago
gash parser: Simplify default port handling. 2 years ago
language/sh Add a language specification. 3 years ago
scripts Remove (almost) all references to Geesh. 4 years ago
tests Add arithmetic expansion. 2 years ago
tools Add missing copyright notice in coverage script. 4 years ago
.dir-locals.el Add support for Guile 2.0.9. 4 years ago
.gitignore Generate the ChangeLog reproducibly. 4 years ago
AUTHORS Update AUTHORS file. 4 years ago
COPYING Initial commit 5 years ago
COPYING.CC0 Clarify the license of COPYING.CC0. 4 years ago
ChangeLog Update ChangeLog copyright years. 1 year ago
INSTALL Use the standard GNU INSTALL file. 4 years ago Add arithmetic expansion. 2 years ago
NEWS Update NEWS for 0.3.0. 1 year ago
README Touch up metadata and copyright notices. 4 years ago
THANKS Add a THANKS file. 4 years ago
bootstrap Initial commit 5 years ago Support Guile 3.0. 1 year ago
guix.scm Support Guile 3.0. 1 year ago


Gash --- Guile As SHell

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.

It is still early days for Gash.  At the moment, Gash is extremely
limited and extremely slow, so we cannot recommend using it as your
shell.  It does its bootstrapping job, and the parser works well for
POSIX-compatible scripts, but that's about it.


This package uses GNU Autotools for building and installing.  For
details on how to configure, build, and install it, see the file named

If you have GNU Guix, you can skip all that and install the package
by running:

     guix package -f guix.scm

Gash is designed to work with Guile versions as early as 2.0.9.

Normally, you should build Gash using 'configure' and 'make'.
However, it can be built with nothing but Guile.  There is an example
of this in the file 'tests/bootstrap/bash-without-bash.scm'.


Gash includes a number of unit and integration tests that can be run
using 'make check'.  If you are using Guile 2.0.9, you will have to
make SRFI 64 available to run the unit tests.  To do this, you can
copy 'module/srfi/srfi-64.scm' and the 'module/srfi/srfi-64' directory
from a newer version of Guile into a directory named 'srfi' in the
Gash source code directory.

If you have GNU Guix, you can also run the following extra tests.

The bootstrap test can be run using 'make check-bootstrap'.  It builds
Gash using nothing but Guix's bootstrap Guile, then uses Gash to build
Bash using Guix's bootstrap toolchain.  This test is designed to make
sure that Gash is suitable for bootstrapping.

The specification tests can be run using 'make check-spec'.  These
tests get copied and adapted from Oil <>, and
then run against Gash.

Copying Gash

Gash is free software released under the GNU GPLv3 (or later).  See
'COPYING' for the full license.  Enjoy!

Copying this file

This file was written by Timothy Sample <>.

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