Révo编程语言
摘要
Revo 是一种编程语言,具有清晰的数据流、错误即值、编译时执行和基于纤程的并发特性。它使用Zig构建,并提供可选类型和强推断功能。
<p><a href="https://lobste.rs/s/towfrz/revo_programming_language">评论</a></p>
查看缓存全文
缓存时间: 2026/09/03 14:04
# revo 来源:https://revo.lung.fyi/ `` ⣄⠔⠄⡨⣀⣹⣥⣣⡚⣿⣓⣾⣫⣷⠮⡧⣬⣬⣑⢤⠤⡉⣿⡥⣂⢟⣕⡴⠬⠆⠸⡈⡆⠀⠀⠀⡋⠄⠂⠨⡆⠀⠠⠃⡀⠀⠀⠈⢰⣿ ⠩⣽⢟⢭⠶⢷⢵⣻⠿⢍⣟⡅⡧⡭⣽⡯⡯⣶⠭⣽⡢⠱⢿⢧⠓⢥⠨⠧⠉⣡⠐⠀⢑⣀⠂⠈⠆⡅⠀⡀⢥⠤⢁⠀⢣⠀⠀⢘⠽⡏ ⠬⡓⣼⢟⢜⡧⣷⣇⣧⡷⢯⣿⣿⣿⡶⣭⠍⣯⣻⢥⠞⣮⣬⣩⠅⢏⠆⠁⡀⠌⢩⡁⢁⠅⠡⢀⠠⠀⢉⢈⠀⠀⡅⠀⡇⠀⠀⠃⠭⣯ ⡎⣟⣵⠅⣾⢭⣿⣾⣯⣿⣿⢿⣿⣿⣿⣿⣧⡳⣥⢜⣟⡤⠉⣁⢧⢨⠌⡂⠀⠒⠬⡪⣊⠄⠀⠘⠀⠢⡁⠀⡀⠅⠅⠀⡄⠀⠈⠀⢕⡟ ⡕⣧⡗⠎⠷⣯⣿⣿⣷⣿⡻⢵⣿⣿⣿⣭⣿⡿⣟⣇⡧⣿⡭⢨⠫⠮⠄⠖⠀⠆⠦⠕⠁⠅⠀⠆⡁⠁⡀⠀⠄⡉⠁⠀⠄⡀⡂⠀⢼⣇ ⠃⣶⣯⠢⡗⣟⣿⡿⣿⣯⢿⣷⢾⢿⣛⣿⣿⣯⡻⣾⡾⣾⢵⣏⣩⠅⠅⠥⠀⠃⠠⠅⠃⠀⡈⠀⠭⠅⠀⠀⠁⠔⠀⠀⢂⠅⠅⠀⠽⡇ ⠱⣻⣻⡥⢫⢯⢿⣷⣷⣿⣿⢾⢿⣷⢯⣉⣟⣟⣾⣿⠳⣿⣇⣃⠯⠘⠔⡇⠒⠅⡖⠁⠄⠡⠑⣀⠀⡁⠀⡀⠃⠈⠀⠀⠅⠀⠀⠂⣋⡇ ⢂⠵⣓⣿⣍⢯⢯⡯⣟⣝⠷⣟⢝⣋⡏⣧⠯⣿⣿⢯⣼⣯⡂⡂⣟⡧⠐⣅⠂⠥⠏⠀⠂⡅⠅⡁⠁⠄⠠⠊⠀⠨⠀⢈⠀⠄⠉⢘⡟⡆ ⡥⣯⢌⡤⢽⣗⣏⠗⢿⣻⡭⡞⡷⣭⢿⡻⡯⡟⣕⣾⢽⢯⡭⠂⡍⠀⠏⠀⢌⠴⠂⠊⡄⢗⠂⠰⠀⠤⠣⠀⠀⠀⠁⠀⠀⠀⠅⠀⢕⡽ ⠵⡭⡩⠋⠽⣽⡛⡹⢯⠍⡛⡏⣯⢟⠟⠿⣩⣳⡿⡟⢗⣭⡤⡯⠁⡬⠠⠂⢄⠂⢤⠀⢖⠀⠀⢀⠂⢖⠀⠘⠀⠀⠂⠡⢤⠠⠀⠀⣫⡿ ⠀⢰⡇⢂⣃⠙⣧⡵⡙⠇⡷⠶⡷⠶⡟⡙⣩⡌⠯⡺⡍⡲⡸⣆⠼⠅⡱⠌⠡⠂⢄⣠⠃⠀⠀⡂⠈⠂⠠⢀⠀⠀⠀⠔⠀⠂⠂⠀⠨⣯ ⡔⠰⠼⣝⢪⢋⢋⠣⣧⡦⣦⡁⡭⠽⡛⠁⡫⢡⡄⠿⡫⣕⣔⢳⠌⢡⡸⠁⠁⠂⣠⡇⠀⠀⠀⠍⠈⠄⠀⠀⢀⠀⠔⠆⠁⠈⠠⠀⡹⡏ ⡖⣠⠄⠀⠯⢜⢨⠊⣒⢡⠨⡀⠢⢭⠴⡊⢕⠐⣄⡓⡾⠋⠗⠉⢀⠚⠀⢃⠂⠥⠲⠀⠀⠀⠄⠐⠀⠀⠐⠀⠁⠄⠱⠁⠊⠈⡀⠀⠊⣽ ⠀⡉⠒⣃⠰⡀⢁⠘⡉⠪⠋⡲⡅⠍⡎⡪⢣⠽⢭⠍⡥⠁⠂⡰⠠⣄⠥⠐⠀⠣⠄⢀⠐⠁⡀⠀⢐⠐⠀⠠⠁⠂⠄⠠⠀⠁⡀⠐⣫⡟ ⠐⢔⠁⠀⠬⠑⠗⠴⠀⠢⡁⢌⠅⢘⠓⡛⠈⡀⠄⠆⠠⠠⠢⢂⠕⠷⠈⢀⠈⡒⠄⠂⠀⠀⠈⠀⡀⠡⠈⠀⠆⡐⠀⠀⠓⠀⠀⠀⢐⢼ ⡀⠀⠈⠐⠠⠀⠀⠁⠁⠣⢀⡁⡄⠂⠔⠂⠂⢉⠁⡌⠄⠜⠈⠡⠐⠀⡐⠀⢨⠀⠁⠀⠀⡀⠍⠄⠠⠁⠀⠠⢄⠈⠀⠀⡄⠀⠀⡀⠒⣸ ⢘⠉⡒⠤⠌⢀⠑⠕⠀⠄⠄⠄⠀⠄⠑⠉⠨⠀⠄⠀⠂⠃⠀⠀⠈⠄⠄⠠⠈⠀⠀⡀⠠⠁⢠⠁⠁⠀⠐⠱⠀⠀⠀⡐⠀⠉⠄⠀⢸⠾ ⠀⠘⠈⡀⠈⠀⠈⠨⠐⠠⠠⠐⡀⡄⢠⠀⢀⠨⠀⠃⠀⠀⡁⡠⠀⠩⠀⠂⠁⠀⠀⠀⢒⡄⠊⠀⠀⢀⠈⠁⠀⠀⠀⠆⠘⠁⠄⠀⠄⣿ ⠄⡄⠀⠈⠠⠀⡀⠀⠀⠄⠀⠂⠀⠀⠄⠀⢀⠁⠁⢁⠁⠆⠀⠀⠀⠀⡀⠀⠈⠀⡀⠀⠱⠀⠀⠀⠀⠂⢄⠈⠀⠀⡀⡨⠠⡀⠠⠀⠄⡼ ⠠⠀⠁⠊⢀⠀⠠⠁⠁⠂⠂⡄⢄⠐⡀⢀⠊⠂⡀⡁⡀⢀⢀⠠⠀⠄⠂⠡⠠⠁⠀⠀⠀⠂⠀⢠⠒⠀⠀⠀⠐⠢⠀⢀⠀⠀⠄⠄⣿⣿ ⠁⠋⠙⠊⠐⠕⠁⡂⠈⠅⠠⠈⠐⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠉⠀⠐⠀⠀⠀⠀⠀⣈⠀⠀⠀⠀⠈⡂⠈⠀⠀⠘⠌⢀⠥ ⠀⠀⠀⠀⠔⠔⠀⡀⡉⠀⠀⠀⠂⠠⠠⠀⠄⠄⠀⣀⢀⠀⡈⠀⠌⡐⠈⠈⠀⠀⠀⠀⠅⠀⣐⠉⠄⠀⠀⣂⠠⠁⡈⠀⠄⠄⢀⠣⢶⢿ ⠄⠀⠀⡁⠀⠄⠀⠀⠁⠈⠀⠈⠀⠁⠀⠁⡀⠁⠀⠁⠀⠀⠀⡀⠀⠀⠀⠀⠀⠠⡀⠑⠀⠀⠎⠀⢬⢠⠀⢂⠠⠢⠠⠈⡐⠸⠀⡐⣹⢷ ⠩⠥⠂⠆⡆⢠⠀⢄⠀⣀⡀⣄⠀⢈⠀⠀⣀⡀⡀⡀⠄⡄⠡⠀⠐⠀⠑⠀⠀⠁⠒⠒⠉⠡⡀⠈⠈⢀⠥⠈⠀⠀⠀⠀⠈⣞⣏⣿⡏⣿ ⠾⠝⠷⢿⣯⣿⠧⡧⠭⠣⠭⡭⡮⢭⠶⠶⠶⠦⣗⡶⠽⠭⣿⣶⠷⠵⠮⠽⠿⠮⠿⢷⡶⣖⡷⠲⠞⠷⠾⢿⢷⣿⣿⣿⣿⣯⢇⠟⡧⢈ `` ## 管道:无需嵌套的清晰数据流 数据自上而下流动 ## 错误即值 用原子替代nil和布尔值 不处理错误就无法使用值 所有崩溃都是显式的(进行中) 大量借助模式匹配、`?`、`orelse` 和 `:unwrap()` 实现 ## 万物皆表达式 没有语句,一切(真正)总是返回值 ……但代码看起来仍是过程式的 ## comp:编译时执行任何表达式 任何脚本都能编译成字节码并将任意值内联 `` revo compile script.rv revo script.rvo `` 编译时虚拟机与运行时虚拟机无异 ## 过程宏 除了基于AST替换的宏系统,它还允许你直接获取原始AST token的迭代器,运行任意代码来转换它们,然后返回新的AST表 ## 模式匹配 就地解构和分支 你会用到原子和元组,它们是解决问题的优美方案 ## 纤程 只需在阻塞代码前加上 `spawn`,就能使其变为非阻塞 ## 表:万物表示 用于:- 模块导出 - 数组 - 映射 ## 便捷的类型系统 类型系统可选,但深度集成 无类型代码运行良好,但有类型代码更快且优化更好(并确保编译时代码正确性!) 大部分代码会自动推断类型 ## 一等测试 它们只是闭包,返回错误时即为失败。后缀操作符 `?` 传播错误,提供相当简洁的体验 ## 获取最新版本 发布于 GitHub releases (https://github.com/if-not-nil/revo/releases) 然而,此项目正在快速迭代。建议你从源码构建 ## 从源码构建 你需要 Zig (https://ziglang.org/download) `0.16.0` 来构建 revo。我也推荐使用 anyzig (https://github.com/marler8997/anyzig) 版本管理器 ### Linux/BSD/macOS/其他 `` git clone https://github.com/if-not-nil/revo --recursive && cd revo git submodule update --init --recursive zig build --fetch zig build -Doptimize=ReleaseSafe # =ReleaseSmall 生成约1MB的可执行文件 # =ReleaseFast 获得约5%-10%的性能提升(更难报告bug) cp ./zig-out/bin/revo ~/.local/bin/revo revo `` #### Windows > \[!\] 某些功能在 Windows 上不可用。建议使用 WSL 并遵循上述步骤 `` git clone https://github.com/if-not-nil/revo && cd revo zig build --fetch -Doptimize=ReleaseFast mkdir "C:/tools/revo/bin" copy ./zig-out/bin/revo C:/tools/revo/bin # 现在将其添加到 PATH,步骤如下: # - Win+S -> `env` -> -> "环境变量" -> "Path" -> "系统变量" # - 添加新项 "C:\tools\revo\bin" -> 点击确定 -> 重新打开终端 revo `` ### 工具 - `repl` 运行 `revo` 打开 REPL 运行 `:h print` 查看 `print` 函数的文档 `:q` 退出 - `lsp` 编辑器中的诊断、高亮等功能!默认与你的 revo 捆绑 如何在文本编辑器中使用 (https://revo.lung.fyi/editors/) - `tree-sitter` 为大多数编辑器提供 revo 语法高亮支持 用法与安装 (https://revo.lung.fyi/editors/) \| doomy/tree-sitter-revo on codeberg (https://codeberg.org/doomy/tree-sitter-revo) ### 编辑器 - `VS Code` (https://revo.lung.fyi/editors/#vscode) - `Neovim` (https://revo.lung.fyi/editors/#neovim) - `Helix` (https://revo.lung.fyi/editors/#helix) - `Zed` (https://revo.lung.fyi/editors/#zed) - `Emacs` (https://github.com/if-not-nil/revo/blob/main/Emacs.org) Emacs.org (https://github.com/if-not-nil/revo/blob/main/Emacs.org) 中有包含设置说明的文学化 Emacs 插件 ### 使用 revo 制作 - 请通过 issues/邮件/Discord 提交项目 ### 致谢 revo 基于 MIT 许可 (https://revo.lung.fyi/LICENSE.txt) ~ isocline (https://github.com/daanx/isocline) by daanx - MIT ~ lsp-kit (https://github.com/zigtools/lsp-kit) by the zigtools team - MIT
相似文章
revo,编程语言
Revo 是一种新的编程语言,具有干净的数据流(无嵌套)、错误即值、一切皆表达式、编译时执行和过程宏等特点。
Rip 语言:编译到 ES2022,内置响应式
Rip 是一门受 CoffeeScript 启发的新语言,可编译为 ES2022 JavaScript,自带响应式系统、十余种新运算符,并拥有零依赖的自托管编译器。
Revalvo
Revalvo 是一个本地优先的工作台,用于提示工程和大语言模型评估,它允许并行运行多个模型的提示,对响应进行评分,对提示进行版本控制,并批量测试数据集。
与oofoe关于REBOL、Forth、Decker、Janet及VFx行业的访谈
与开发者oofoe的访谈,讨论他如何使用REBOL、Forth、Decker和Janet等小众编程语言,以及DSL设计和在VFx行业中的应用见解。
Zro
Zro 是一款为编码代理提供私有推理的产品,能够实现安全且私密的 AI 辅助代码生成。