wip/guile-gash: import as guile-gash-0.1

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. There are plans to develop Gash into a
general-purpose shell and tool for building interfaces between Scheme
and the shell.

Features of the shell
* Sophisticated enough to be used to build Bash.
* Has a nice colorized prompt.
* Includes all of the POSIX-specified "special" built-ins except for
  `times'.
* Includes about half of the POSIX-specified "regular" built-ins
  (see `gash/built-ins.scm' for details).

Features of the programming interface
* Parses Shell scripts into an AST.
* Provides a rudimentary interface for writing Shell-like Scheme
  scripts.
This commit is contained in:
ng0 2019-06-02 08:08:48 +00:00
parent 0dfaefb1f0
commit 465ca58233
5 changed files with 131 additions and 0 deletions

View File

@ -1293,6 +1293,7 @@ SUBDIR+= guile-bytestructures
SUBDIR+= guile-commonmark
SUBDIR+= guile-gcrypt
SUBDIR+= guile-git
SUBDIR+= guile-gash
SUBDIR+= guile-haunt
SUBDIR+= guile-json
SUBDIR+= guile-reader

19
guile-gash/DESCR Normal file
View File

@ -0,0 +1,19 @@
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. There are plans to develop Gash into a
general-purpose shell and tool for building interfaces between Scheme
and the shell.
Features of the shell
* Sophisticated enough to be used to build Bash.
* Has a nice colorized prompt.
* Includes all of the POSIX-specified "special" built-ins except for
`times'.
* Includes about half of the POSIX-specified "regular" built-ins
(see `gash/built-ins.scm' for details).
Features of the programming interface
* Parses Shell scripts into an AST.
* Provides a rudimentary interface for writing Shell-like Scheme
scripts.

24
guile-gash/Makefile Normal file
View File

@ -0,0 +1,24 @@
# $NetBSD$
DISTNAME= gash-0.1
PKGNAME= guile-${DISTNAME}
CATEGORIES= www
MASTER_SITES= http://download.savannah.nongnu.org/releases/gash/
MAINTAINER= ng0@n0.is
HOMEPAGE= https://git.savannah.nongnu.org/cgit/gash.git
COMMENT= POSIX-compatible shell written in Guile Scheme
LICENSE= gnu-gpl-v3
GNU_CONFIGURE= yes
GNU_CONFIGURE_PREFIX= ${PREFIX}/guile/2.2
CONFIGURE_ARGS+= --libdir=${PREFIX}/guile/2.2/lib
USE_TOOLS+= automake autoconf autoreconf pkg-config
INFO_FILES= YES
pre-configure:
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} autoreconf -I${PREFIX}/guile/2.2/share/aclocal -vif
.include "../../lang/guile22/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

81
guile-gash/PLIST Normal file
View File

@ -0,0 +1,81 @@
@comment $NetBSD$
guile/2.2/bin/gash
guile/2.2/info/gash.info
guile/2.2/lib/guile/2.2/ccache/gash/built-ins.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/break.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/cd.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/colon.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/command.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/continue.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/dot.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/echo.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/eval.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/exec.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/exit.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/export.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/false.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/pwd.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/read.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/readonly.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/return.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/set.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/shift.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/trap.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/true.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/type.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/umask.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/unset.go
guile/2.2/lib/guile/2.2/ccache/gash/built-ins/utils.go
guile/2.2/lib/guile/2.2/ccache/gash/compat.go
guile/2.2/lib/guile/2.2/ccache/gash/compat/hash-table.go
guile/2.2/lib/guile/2.2/ccache/gash/compat/textual-ports.go
guile/2.2/lib/guile/2.2/ccache/gash/config.go
guile/2.2/lib/guile/2.2/ccache/gash/environment.go
guile/2.2/lib/guile/2.2/ccache/gash/eval.go
guile/2.2/lib/guile/2.2/ccache/gash/gash.go
guile/2.2/lib/guile/2.2/ccache/gash/lexer.go
guile/2.2/lib/guile/2.2/ccache/gash/parser.go
guile/2.2/lib/guile/2.2/ccache/gash/pattern.go
guile/2.2/lib/guile/2.2/ccache/gash/readline.go
guile/2.2/lib/guile/2.2/ccache/gash/repl.go
guile/2.2/lib/guile/2.2/ccache/gash/shell.go
guile/2.2/lib/guile/2.2/ccache/gash/word.go
guile/2.2/share/guile/2.2/gash/built-ins.scm
guile/2.2/share/guile/2.2/gash/built-ins/break.scm
guile/2.2/share/guile/2.2/gash/built-ins/cd.scm
guile/2.2/share/guile/2.2/gash/built-ins/colon.scm
guile/2.2/share/guile/2.2/gash/built-ins/command.scm
guile/2.2/share/guile/2.2/gash/built-ins/continue.scm
guile/2.2/share/guile/2.2/gash/built-ins/dot.scm
guile/2.2/share/guile/2.2/gash/built-ins/echo.scm
guile/2.2/share/guile/2.2/gash/built-ins/eval.scm
guile/2.2/share/guile/2.2/gash/built-ins/exec.scm
guile/2.2/share/guile/2.2/gash/built-ins/exit.scm
guile/2.2/share/guile/2.2/gash/built-ins/export.scm
guile/2.2/share/guile/2.2/gash/built-ins/false.scm
guile/2.2/share/guile/2.2/gash/built-ins/pwd.scm
guile/2.2/share/guile/2.2/gash/built-ins/read.scm
guile/2.2/share/guile/2.2/gash/built-ins/readonly.scm
guile/2.2/share/guile/2.2/gash/built-ins/return.scm
guile/2.2/share/guile/2.2/gash/built-ins/set.scm
guile/2.2/share/guile/2.2/gash/built-ins/shift.scm
guile/2.2/share/guile/2.2/gash/built-ins/trap.scm
guile/2.2/share/guile/2.2/gash/built-ins/true.scm
guile/2.2/share/guile/2.2/gash/built-ins/type.scm
guile/2.2/share/guile/2.2/gash/built-ins/umask.scm
guile/2.2/share/guile/2.2/gash/built-ins/unset.scm
guile/2.2/share/guile/2.2/gash/built-ins/utils.scm
guile/2.2/share/guile/2.2/gash/compat.scm
guile/2.2/share/guile/2.2/gash/compat/hash-table.scm
guile/2.2/share/guile/2.2/gash/compat/textual-ports.scm
guile/2.2/share/guile/2.2/gash/config.scm
guile/2.2/share/guile/2.2/gash/environment.scm
guile/2.2/share/guile/2.2/gash/eval.scm
guile/2.2/share/guile/2.2/gash/gash.scm
guile/2.2/share/guile/2.2/gash/lexer.scm
guile/2.2/share/guile/2.2/gash/parser.scm
guile/2.2/share/guile/2.2/gash/pattern.scm
guile/2.2/share/guile/2.2/gash/readline.scm
guile/2.2/share/guile/2.2/gash/repl.scm
guile/2.2/share/guile/2.2/gash/shell.scm
guile/2.2/share/guile/2.2/gash/word.scm

6
guile-gash/distinfo Normal file
View File

@ -0,0 +1,6 @@
$NetBSD$
SHA1 (gash-0.1.tar.gz) = 806e42582feb0f4a769f7f56d04b78f11cc5b933
RMD160 (gash-0.1.tar.gz) = 1cfc0db59584f4ada407c293b5509b88dd84566a
SHA512 (gash-0.1.tar.gz) = 4f90d40eb434e3f735ef727aeeb55d88b1962b0e7d1f02f711961234934a62a40d8f8d8c1004fe8fc825c0b01fab520eaacba28bcf758452e3db3d66098c2c85
Size (gash-0.1.tar.gz) = 321694 bytes