1
0
Fork
You've already forked revo
0
forked from lung/revo
revo, the expressive general-purpose dynamic language
  • Zig 97.9%
  • Python 1.5%
  • C 0.4%
  • Shell 0.2%
2026年05月13日 10:52:18 +03:00
bench
docs std: add expect_eq 2026年05月13日 10:22:13 +03:00
examples std: add expect_eq 2026年05月13日 10:22:13 +03:00
scripts
src fixup expect_eq 2026年05月13日 10:52:18 +03:00
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

see docs

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

optional repl backends, not vendored but linked dynamically