https://todo.sr.ht/~sforman/thun-der/27 It doesn't let you overwrite definitions that are loaded from defs.txt. It DOES let you overwrite builtins, but that doesn't matter because they are handled by joy_eval() before it checks the dictionary, so in practice the definitions are never evaluated even though they are put into the dictionary. Whew! It's hacky but it works! |
||
|---|---|---|
| .. | ||
| htmldocs | ||
| Makefile | ||
| README.md | ||
| defs.txt | ||
| joy.nim | ||
README.md
Joy interpreter in Nim
Simple pleasures are the best.
This interpreter written in Nim is part of the Thun project, which includes interpreters written in Python and Prolog, and some explorations towards compilers for Joy written in Prolog.
Building
To build an executable just run:
nim c joy.nim
To build and immediately run an executable use:
nim c -r joy.nim
To build a smaller binary do:
nim c -d:release joy.nim
strip --strip-debug joy.exe
Dependencies
- Nim functional programming library https://github.com/vegansk/nimfp
- Pure Nim (i.e. not GMP) BigInts library https://github.com/def-/nim-bigints
- ...
TODOs:
- link to other Thun sub-projects & info on Joy in general
- ctrl-c should exit cleanly
- graphics?
wordsandhelp?- How to integrate docs?
nim cc
-d:release
--stackTrace:off
--lineTrace:off
--checks:off
--assertions:off
--debugger:native
joy.nim
nim doc --project --index:on --git.url:"https://git.sr.ht/~sforman/Bliss" --git.commit:10b5651ed242fb16c29f2c1f7340d77f65926ca4 --outdir:htmldocs joy.nim