1
0
Fork
You've already forked gash
0
forked from guix/gash
Gash is a POSIX-compatible shell written in Guile Scheme, designed to bootstrap Bash as part of the Guix bootstrap process.
Scheme 92.5%
Makefile 3.7%
Shell 3.3%
M4 0.5%
Find a file
Ludovic Courtès 5a98c630af
maint: Add Forgejo workflows.
* .forgejo/workflows/guile-3.0.yml,
forgejo/workflows/guile-2.2.yml: New files.
* Makefile.am (distcheck-hook): Tolerate missing .forgejo/* from the
distribution.
2025年11月27日 08:42:41 +01:00
.forgejo/workflows maint: Add Forgejo workflows. 2025年11月27日 08:42:41 +01:00
build-aux Install Git in the CI environment. 2020年02月06日 21:04:50 -05:00
doc Add arithmetic expansion. 2021年05月26日 13:16:50 -04:00
gash shell: ‘install-current-ports!’ opens file descriptors, not ports. 2025年05月05日 17:08:04 +02:00
language/sh Add a language specification. 2020年08月21日 15:49:24 -04:00
scripts Open low-numbered file descriptors for use by the shell. 2025年05月05日 17:08:04 +02:00
tests shell: Exit child process when ‘execle’ fails. 2025年05月05日 17:08:00 +02:00
tools Add missing copyright notice in coverage script. 2019年05月22日 01:03:43 -04:00
.dir-locals.el Add support for Guile 2.0.9. 2019年05月20日 18:07:47 -04:00
.gitignore Generate the ChangeLog reproducibly. 2019年12月09日 13:57:15 -05:00
AUTHORS Update AUTHORS file. 2019年05月20日 01:18:54 -04:00
bootstrap Initial commit 2018年01月31日 14:52:05 -05:00
ChangeLog Update ChangeLog copyright years. 2022年02月11日 10:43:58 -05:00
configure.ac Support Guile 3.0. 2022年02月11日 10:22:19 -05:00
COPYING Initial commit 2018年01月31日 14:52:05 -05:00
COPYING.CC0 Clarify the license of COPYING.CC0. 2019年05月28日 14:55:22 -04:00
guix.scm Support Guile 3.0. 2022年02月11日 10:22:19 -05:00
INSTALL Update INSTALL file from Automake. 2024年12月18日 17:17:01 -06:00
Makefile.am maint: Add Forgejo workflows. 2025年11月27日 08:42:41 +01:00
NEWS Update NEWS. 2025年05月05日 17:08:04 +02:00
README Touch up metadata and copyright notices. 2019年05月22日 00:44:39 -04:00
THANKS Add a THANKS file. 2019年06月01日 11:09:29 -04:00

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