Skip to content

Commit

Permalink
README: Dockerfile and thanks to contributors (#35)
Browse files Browse the repository at this point in the history
* README: Dockerfile and thanks to contributors

[ci skip]
  • Loading branch information
vindarel committed Sep 5, 2023
1 parent 7912802 commit d82e767
Showing 1 changed file with 57 additions and 58 deletions.
115 changes: 57 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ It comes in 3 forms:

Questions, doubts? See the [FAQ](docs/FAQ.md).

NEW: we now have a Docker file.

## Rationale

One of our goals is to make Common Lisp useful out of the box for
Expand Down Expand Up @@ -171,8 +173,8 @@ images, you must build it yourself.

## With a binary. Use CIEL's custom REPL.

You don't need anything, just download the CIEL executable and run its
REPL. You need to build the core image yourself though.
You don't need anything, just download the CIEL executable and run it.
You need to build the core image yourself though.

- we provide an experimental binary for some systems: go to
<https://gitlab.com/vindarel/ciel/-/pipelines>, download the latest
Expand All @@ -186,51 +188,36 @@ CIEL is currently built for the following platforms:
| void | Void Linux glibc (2023-05) |


TODO: build it for more platforms.

To build it, clone this repository and run `make build`.

Start it with `./ciel`.

You are dropped into a custom Lisp REPL, freely based on
[sbcli](https://github.com/hellerve/sbcli).
## With Docker

This REPL is more user friendly than the default SBCL one:
We have a Dockerfile.

- it has readline capabilities, meaning that the arrow keys work by
default (wouhou!) and there is a persistent history, like in any
shell.
- it has **multiline input**.
- it has **TAB completion**.
- it handles errors gracefully: you are not dropped into the debugger
and its sub-REPL, you simply see the error message.
- it has optional **syntax highlighting**.
- it has an optional **lisp critic** that scans the code you enter at
the REPL for instances of bad practices.
- it has a **shell pass-through**: try `!ls`.
Build your CIEL image:

- it has **documentation lookup** shorthands: use `:doc symbol` or `?`
after a symbol to get its documentation: `ciel-user> (dict ?`.
docker build -t ciel .

- it has **developer friendly** macros: use `(printv code)` for an
annotated trace output.
The executable is built in `/usr/local/bin/ciel` of the Docker image.

- and it defines more helper commands:

```txt
%help => Prints this general help message
%doc => Prints the available documentation for this symbol
%? => Inspect a symbol: %? str
%w => Writes the current session to a file <filename>
%d => Dumps the disassembly of a symbol <sym>
%t => Prints the type of a expression <expr>
%lisp-critic => Toggles the lisp-critic
%q => Ends the session.
```
Get a CIEL REPL:

The CIEL terminal REPL loads the `~/.cielrc` init file at start-up if present. Don't load with `--no-userinit`.
docker run --rm -it ciel /usr/local/bin/ciel

Run a script on your filesystem:

docker run --rm -it ciel /usr/local/bin/ciel path/to/your/lisp/script.lisp

Run a built-in script:

docker run --rm -it ciel /usr/local/bin/ciel -s simpleHTTPserver

So, save you some typing with a shell alias:

alias ciel="sudo docker run --rm -it ciel /usr/local/bin/ciel"

See more in [*the documentation*](https://ciel-lang.github.io/CIEL/#/).

# Usage

Expand All @@ -254,33 +241,38 @@ See available built-in scripts with `--scripts`.

See [the scripts documentation](https://ciel-lang.github.io/CIEL/#/scripting).

## Shell REPL
## Terminal REPL

CIEL ships a terminal REPL for the terminal which is more user friendly than the default SBCL one:

- it has readline capabilities, meaning that the arrow keys work by
default (woohoo!) and there is a persistent history, like in any
shell.
- it has **multiline input**.
- it has **TAB completion**.
- it handles errors gracefully: you are not dropped into the debugger
and its sub-REPL, you simply see the error message.
- it has optional **syntax highlighting**.
- it has an optional **lisp critic** that scans the code you enter at
the REPL for instances of bad practices.
- it has a **shell pass-through**: try `!ls`.
- it has **documentation lookup** shorthands: use `:doc symbol` or `?`
after a symbol to get its documentation: `ciel-user> (dict ?`.
- it has **developer friendly** macros: use `(printv code)` for an
annotated trace output.
- it integrates the **lisp critic**.
- and it defines some more helper commands.

The CIEL terminal REPL loads the `~/.cielrc` init file at start-up if present. Don't load it with `--no-userinit`.

See more in [*the documentation*](https://ciel-lang.github.io/CIEL/#/).


Run `ciel` with no arguments:

```bash
$ ciel

_..._
.-'_..._''. .---.
.' .' '..--. __.....__ | |
/ .' |__| .-'' '. | |
. ' .--. / .-''''-. `. | |
| | | |/ /________ | |
| | | || || |
. ' | | .-------------'| |
'. .| | '-.____...---.| |
'. `._____.-'/|__| `. .' | |
`-.______ / `''-...... -' '---'
`
--------------------------------------------------------------------------------
OS: Linux 5.4.0-124-generic
Lisp: SBCL 2.0.1.debian
ASDF: 3.3.4.15
Quicklisp: (#<DIST quicklisp 2022-07-08>)
--------------------------------------------------------------------------------
CIEL's REPL version 0.1.5
Read more on packages with readme or summary. For example: (summary :str)
Special commands:
Expand All @@ -296,9 +288,11 @@ Special commands:
Press CTRL-D or type :q to exit
ciel-user>
```
It is freely based on [sbcli](https://github.com/hellerve/sbcli).
## Lisp library
You can install and `quickload` CIEL like any other Common Lisp library.
Expand Down Expand Up @@ -396,6 +390,11 @@ and now:

See `src/ciel.lisp` and run `(generate-dependencies-page-reference)`.

# Contributors

Special big thanks to @cinerion, [@themarcelor](https://github.com/themarcelor) and everyone who helped (@agam, @patrixl, @bo-tato…).


# Lisp?!

- [awesome-cl](https://github.com/CodyReichert/awesome-cl)
Expand Down

0 comments on commit d82e767

Please sign in to comment.