- Zig 97.9%
- Python 1.5%
- C 0.4%
- Shell 0.2%
| bench | ||
| docs | std: add expect_eq | |
| examples | std: add expect_eq | |
| scripts | ||
| src | fixup expect_eq | |
| vendor @395fa5d168 | ||
| .gitmodules | ||
| build.zig | ||
| build.zig.zon | ||
| LICENSE.txt | ||
| README.md | ||
| revo.h | ||
| TODO.md | ||
revo
homepage | learn | codeberg | github (mirror) | license (REVO-GPLv3), not GPL-compatible
revo is an expressive, dynamically-typed language that is made
to balance semantic freedom and readability
more on the homepage
introduction at docs/basics
installing
you will need zig 0.16.0
zig build -Doptimize=ReleaseFast
cp ./zig-out/bin/revo ~/.local/bin/revo
revo -h
binary releases not available until a release
cli reference
usage: revo [options] [script [args...]]
options:
-e code run code
-i enter interactive mode after executing
-d output the last value the program evaluated
-b compile script to bytecode (.rvo)
-o path output path for -b (default: input with .rvo extension)
--test run test blocks
--bench[n] run with performance counters ([n] iterations, 1 if not specified)
--dis show bytecode disassembly instead of running
-h, --help show this help message
--version show version
examples:
revo start interactive REPL
revo script.rv run script
revo -e "1 + 2" run inline code
revo -e "1 + 2" -i run inline code and enter REPL
revo -b script.rv compile script to bytecode
revo -b -o output.rvo script compile script with custom output path
revo --bench script.rv run with performance counters
revo --dis script.rv show bytecode disassembly
revo uses a modified version of the GPLv3, refer to LICENSE.md
https://codeberg.org/lung/revo/LICENSE.txt; sha256:415d4cce
development
building
zig build # debug build
zig build -Doptimize=ReleaseFast # release built
zig build -Drepl=none # custom repl backend (bestline, readline, libedit, none)
the default repl backend is the vendored bestline, linked statically. read build.zig
running tests
zig build test --summary all -Dtest_filter="some test name filter"
writing extensions in C
contributing
recommending to a friend is always greatly appreciated. any contributions are welcome!
see TODO.md for plans
if adding an std function, please add a doc-comment that can get parsed by scripts/docgen.py
please do not submit LLM-authored code if you do not understand it,
can't explain it or have not tested it. describe the request in your own words,
rather than pulling in a wall of AI-generated text.
this greatly reducec maintenance burden
license
revo is licensed under a modified GPLv3 license
it is NOT compatible with article 10 of the GPLv3
see LICENSE.txt
credits
- bestline by Justine Tunney - MIT
optional repl backends, not vendored but linked dynamically
- libedit - BSD
- GNU readline - GPLv3