Skip to content
if-not-nilPublic

About

a dynamic language for the joy of programming

Topics

Resources

Contributing

Stars

575 stars

Watchers

2 watching

Forks

Repository files navigation

`revo, the programming language

homepage & docs | introduction & learn | playground | source & issues | discuss & chat

an expressive, dynamically-typed language for the joy of programming

browser-runnable examples here

demo

written in Zig version 0.1.2

tools | editors | credits | examples | made with revo

get

the latest release is hosted at github releases

however, this project is rapidly changing. i recommend you build from source instead

install from source

you need zig 0.17.0 to build revo

i also recommend the anyzig version manager

linux/bsd/mac/etc

git clone https://github.com/if-not-nil/revo --recursive && cd revo
git submodule update --init --recursive
zig build --fetch
zig build -Doptimize=safe
                  # =small for a ~1mb executable
                  # =fast  for a ~5%-10% performance gain (harder to report bugs on)
cp ./zig-out/bin/revo ~/.local/bin/revo

revo

nix

this project has a flake which exposes revo as a package on default
you can open a shell with revo using nix shell github:if-not-nil/revo?dir=extra/nix
there is also a function that bundles a revo script into a nix package

windows

Note

some features are unavailable on windows. i recommend using WSL with the linux steps

git clone https://github.com/if-not-nil/revo && cd revo
zig build --fetch -Doptimize=fast

mkdir "C:/tools/revo/bin"
copy ./zig-out/bin/revo C:/tools/revo/bin

# now add it to PATH by doing:
# - Win+S -> `env` -> <Enter> -> "Environment Variables" -> "Path" -> "System Variables"
# - add new at "C:\tools\revo\bin" -> click ok -> reopen your terminal

revo

tools

  • lsp

    diagnostics, highlighting, etc. in your editor!
    bundled by default with your revo
    how to use in your text editor

  • tree-sitter

    gives most editors revo syntax highlighting support doomy/tree-sitter-revo on codeberg

  • docs

    output docs in plaintext/html

    revo doc <file or directory>
    revo doc --html <file or directory>
    
  • fmt

    format .rv files

    revo fmt                          format every .rv under the pwd
    revo fmt script.rv dir/           format that in place
    revo fmt --check .                list files whose formatting differs
    revo fmt --diff .                 print a diff of the changes
    revo fmt - < script.rv            format stdin to stdout
    

editors

made with revo

  • revel by hachem-wtf -- a unix-like kernel

  • hiccup.revo -- an html rendering library\

  • rover -- parser generators\

  • if you want your project in the readme, you can submit it via pr/issues/discussion/email/discord

in c/zig/odin/what have you

you can extend or embed revo from (essentially) any language

four bindings for two ABIs, all of them embed revo and load extensions:

credits

revo is licensed as MIT

~ isocline by daanx - MIT
~ lsp-kit by the zigtools team - MIT
~ glob by xcaeser - MIT

About

a dynamic language for the joy of programming

Topics

Resources

Contributing

Stars

575 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages