[ANN] schemesh, a fusion between Unix shell and Chez Scheme REPL

69 views
Skip to first unread message

Massimiliano Ghilardi

unread,
Feb 9, 2025, 7:20:08 AMFeb 9
to chez-scheme
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

Reply all
Reply to author
Forward
0 new messages