Hello everybody,
I am pleased to announce that schemesh 0.7.3 has been released.
It is an interactive REPL merging traditional Unix shell syntax
and Lisp REPL - Chez Scheme, to be exact.
Schemesh objective is to be a user-friendly, unified environment
for interactive shell use, shell scripting, Scheme REPL and Scheme
development.
The following features of Unix shells are supported maintaining the same
syntax:
* redirections, pipelines, composite jobs using `&&` `||` `;` `&` and `{
... }`, subshells using `[ ... ]`
* wildcard expansion
* job control
* aliases, builtins, environment variables
It also offers:
* context-aware autocompletion in both syntaxes
* persistent history with search
* single-key shortcuts
* customizable prompt, startup and shutdown
Shell syntax creates *first-class* Scheme objects `sh-job` and subtypes,
which can be managed
both from shell syntax with traditional builtins `fg` `bg` etc.
and from Scheme syntax with functions (sh-start) (sh-fg) (sh-bg)
(sh-run) (sh-run/i) (sh-run/string) etc.
Download and build instructions are available at
https://github.com/cosmos72/schemesh
Some very minimal examples:
```
ls -l 2>/dev/null | less -S
(define j {ls -l 2>/dev/null | less -S})
(sh-run/i j) ; interactive, i.e. returns if job is suspended
```
Feedback is welcome :)
Massimiliano Ghilardi