71 lines
2.5 KiB
Plaintext
71 lines
2.5 KiB
Plaintext
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.
|
|
|
|
Installing
|
|
==========
|
|
|
|
This package uses GNU Autotools for building and installing. For
|
|
details on how to configure, build, and install it, see the file named
|
|
'INSTALLING'.
|
|
|
|
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'.
|
|
|
|
Testing
|
|
=======
|
|
|
|
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 <https://www.oilshell.org/>, 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 <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/>.
|