parent
ac286a283f
commit
45f00c8f2e
|
|
@ -0,0 +1,10 @@
|
|||
# Joy interpreter in Elm
|
||||
|
||||
> Simple pleasures are the best.
|
||||
|
||||
This interpreter written in Elm is part of the Thun project.
|
||||
|
||||
You should be able to run `elm reactor` in this directory and then
|
||||
browse to http://localhost:8000/src/Main.elm to try the interpreter.
|
||||
|
||||
|
||||
|
|
@ -7,47 +7,33 @@ 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
|
||||
- ...
|
||||
|
||||
If you have `nimble` installed:
|
||||
|
||||
nimble install bigints nimfp
|
||||
|
||||
|
||||
## Building
|
||||
|
||||
To build an executable just run:
|
||||
|
||||
make
|
||||
|
||||
This will copy the `implementations/defs.txt` file into the Nim project and
|
||||
compile the `joy` executable.
|
||||
|
||||
|
||||
## TODOs:
|
||||
|
||||
- link to other Thun sub-projects & info on Joy in general
|
||||
- ctrl-c should exit cleanly
|
||||
- graphics?
|
||||
- `words` and `help`?
|
||||
- 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
|
||||
|
||||
https://git.sr.ht/~sforman/Bliss/tree/10b5651ed242fb16c29f2c1f7340d77f65926ca4/item/types.nim#L26
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
(I had the Python package set up to upload to PyPI as "Thun", but the
|
||||
whole Python distribution story seems unsettled at the moment (2023) so
|
||||
I've gone back to the *old ways*: there is a single script ``joy.py``
|
||||
that gets modified (``defs.txt`` is inserted) to create a ``joy`` script
|
||||
that uses the "shebang" trick to pretend to be a binary. In other words,
|
||||
run ``make`` and put the resulting ``joy`` script in your PATH, if that's
|
||||
what you want to do. In a year or two the Python folks will have sorted
|
||||
things out and we can go back to ``pip install Thun`` or whatever.)
|
||||
|
||||
|
||||
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
|
||||
|
||||
https://git.sr.ht/~sforman/Bliss/tree/10b5651ed242fb16c29f2c1f7340d77f65926ca4/item/types.nim#L26
|
||||
Loading…
Reference in New Issue