diff options
author | Joel Kronqvist <joel.kronqvist@iki.fi> | 2025-08-15 22:27:02 +0300 |
---|---|---|
committer | Joel Kronqvist <joel.kronqvist@iki.fi> | 2025-08-15 22:27:02 +0300 |
commit | 0328272d2a52264f36770d524aaa11b425e34370 (patch) | |
tree | c40006c6d17d441db0feae56070396c028d56462 /README.md | |
parent | 1a38462fbefd58cc7aff98f28520152e37c5ae55 (diff) | |
download | myslip-0328272d2a52264f36770d524aaa11b425e34370.tar.gz myslip-0328272d2a52264f36770d524aaa11b425e34370.zip |
doc: added help message and a reference to it in README.md
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 52 |
1 files changed, 36 insertions, 16 deletions
@@ -10,12 +10,15 @@ and instructions on setting it up. Language introduction --------------------- -STILL TODO (or to modify) -how functional is it? -myslip is a lisp-inspired language, but a bit different -(mostly, because I have never really written lisp except - for in emacs, so I have no clue of what lisp usually is - like). + +Myslip is a functional, symbolically interpreted programming +language. It's syntax is inspired by lisp and polish +notation. The author hasn't programmed much in lisp-variants +or in (non-general-purpose) functional languages, so the +language might include some slips or oddities, hence +the name. But the language is coherent within itself, +so learning it shouldn't be too hard. + Valid myslip s-expressions may be atoms of different types or lists of them, though not all syntactically valid myslip expressions are ones that can be evaluated. @@ -31,8 +34,8 @@ be the operator that is passed the rest of the expressions as arguments. -Running the project -------------------- +Running myslip +-------------- myslip can be built using cargo 1.88.0. Instructions to install cargo can be found online: @@ -44,22 +47,39 @@ follow these instructions on how to change the rust version https://rust-lang.github.io/rustup/overrides.html TODO: system requirements? try it out on debian +So, for example ```console -TODO $ sudo apt install curl git -$ curl ??? | sh ??? -$ git clone ??? +$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +$ git clone 'https://git.cron4.fi/myslip.git' $ cd myslip ``` -and then the interpreter can be accessed either via -`cargo run`, or then you can add it to your path: +and then myslip can be accessed either via `cargo run`, +or alternatively you can add it to your `$PATH`: ```console -TODO $ cargo build -$ ln ??? ??? +$ ln "$(pwd)/target/debug/myslip" ~/.local/bin/myslip $ myslip ``` -Exit the REPL by CTRL+C, CTRL+D or entering "exit". +Exit the REPL by pressing CTRL+C, CTRL+D or entering "exit". + +For a quick reference on how to use the `myslip` command, +see `myslip --help`. +Running `myslip filename.slip` tries to read a file named +`filename.slip` as an s-expression and evaluates it. +On the other hand, running `myslip` without specifying an +executable file opens a REPL, in which you can enter +one s-expression per line for evaluation. Variables bound +in earlier expressions can be used. + +If you wish to load a set of definitions from a file, say +`header.slip`, use the `--load`-argument (`-l` for short): +```console +$ myslip -l header.slip +``` +The standard library, found in `stdlib.slip`, is loaded +in an equivalent way by default. If you wish to disable +it, you can use the option `--no-stdlib`. |