diff options
Diffstat (limited to 'readme.md')
-rw-r--r-- | readme.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..4b6f95a --- /dev/null +++ b/readme.md | |||
@@ -0,0 +1,51 @@ | |||
1 | |||
2 | ![lisk.png](https://u.peppe.rs/0j.png) | ||
3 | |||
4 | `lisk` is a (soon to be) interpreter for R6RS Scheme, | ||
5 | written by the students of RV. It is written in Haskell and | ||
6 | compiled against GHC v8.6.5. `lisk` is an educational | ||
7 | adventure, it does not intend to be highly performant or | ||
8 | fully compliant with R6RS. | ||
9 | |||
10 | ### Building and Running `lisk` | ||
11 | |||
12 | On systems using the `nix` package manager: | ||
13 | |||
14 | ```shell | ||
15 | cabal2nix . > default.nix | ||
16 | nix-build release.nix | ||
17 | ./result/bin/lisk | ||
18 | ``` | ||
19 | |||
20 | Alternatively, you may build and run using `cabal`: | ||
21 | |||
22 | ```shell | ||
23 | # requires ghc & cabal to be installed | ||
24 | cabal build exe:lisk | ||
25 | cabal run lisk | ||
26 | ``` | ||
27 | |||
28 | ### Usage | ||
29 | |||
30 | On running `lisk`, you will be greeted by the `lisk` REPL, | ||
31 | where you may enter `lisk` expressions: | ||
32 | |||
33 | ```scheme | ||
34 | ;;; Entering lisk repl ... | ||
35 | † (+ 1 1) | ||
36 | 2 | ||
37 | † (* 42 (- 2 -3)) | ||
38 | 210 | ||
39 | † (and (not (= 2 2)) #f) | ||
40 | #f | ||
41 | ``` | ||
42 | |||
43 | ### Testing | ||
44 | |||
45 | `lisk` includes a property-based testing suite, written with | ||
46 | the QuickCheck module, you may run tests for the project | ||
47 | via: | ||
48 | |||
49 | ```shell | ||
50 | cabal run tests | ||
51 | ``` | ||