Valen:带线性类型的更高层 “Rust++” 语言
Valen 是 Evan(Verdagon)在 Vale 路线上重启的实验性语言,目标是在保留 Rust 生态可达性的前提下,提供更贴近作者愿望列表的语言能力:group borrow checking(共享可变引用的借用检查变体)、线性类型、世代引用、Zig 风格 comptime,以及可直接调用 Rust 库的互操作。文章以“金钉子”类比:把两条原本分离的编译器世界真正接上。
核心难点是跨语言泛型。C ABI 没有 generics,而许多 Rust API(例如 main_loop<C: MainLoopCallback>)依赖泛型与 trait。Valen 不再只靠外部两次调用 rustc 的“侦察/实例化”脚本,而是通过 rustc_driver::run_compiler 把 rustc 当库跑起来,在 callback 中查询依赖 crate,并让 valenc 与 rustc 的 monomorphizer 协作发现彼此调用的具体化函数。当前状态仍很实验:线性类型已有,但还不能声明既有 Rust 类型为线性;group borrowing 可跨边界检查(闭包除外);跨边界 struct/实现 Rust trait 的路径有限制;世代引用暂时关闭。源码见 valen-lang/valen。
原文链接:https://verdagon.dev/blog/golden-spike-reviving-vale-valen
Bend 2:无借用检查的仿射类型、编译到 C,并带完整证明系统
Bend 是一门强调速度、并行与证明的语言:官网称可编译为接近 C 的本地代码,同一二进制可扩到多核乃至 GPU;类型检查同时是证明检查(类似 Lean/Rocq 方向),但强调秒级完成以便 agent 每次改动后都能跑。并行模型不写线程/锁/kernel:把工作对半拆分即可在可用核上展开。
与 AI 协作相关的机制是 LAWS.bend 与 PROOF.bend:在 laws 中声明不可违反的性质后,无法通过证明的改动不能合入;示例用“任意走子序列都无法获胜”一类定律演示 AI 改棋盘规则时被证明挡住。核心论文包括仿射依赖类型理论 BendTT 与并行运行时 BendRT。安装:curl -fsSL https://bend-lang.com/install.sh | sh。语言仍在快速演进,适合后端场景,Linux/macOS 优先。
原文链接:https://bend-lang.com/
Posixutils 0.9.0:完成 POSIX.1-2024 符合性关卡
posixutils-rs(rustcoreutils)发布 v0.9.0,相对 v0.8.0(2026-06-25)约 1,009 次提交、70 个 PR。本轮以 POSIX.1-2024 条款审计与修复为主,几乎每个工具都过了一遍;C 编译器相关改动约占三分之一提交。
亮点包括:原 pcc 收敛为只编译 C17 的 c17;make 支持 VPATH、内建推理规则、% 模式规则、$(eval)、宏函数与条件/define;pax 承接 tar/cpio 前端;man 换成 roff/mdoc 解释器并支持 man-db 配置与进程内解压;sh/tr/diff 等改为字节向文本处理,非 UTF-8 文件名不再直接中断。工作区依赖从 159 降到 102 个 crate,并增加 aarch64 Linux CI。作者说明其定位与 uutils 不同,更侧重 POSIX 符合深度。发布说明:https://github.com/rustcoreutils/posixutils-rs/releases/tag/v0.9.0 。
原文链接:https://github.com/rustcoreutils/posixutils-rs/releases/tag/v0.9.0
tokio_rcu 0.2:面向 Tokio 的 RCU 与读路径加速
tokio_rcu 为 async Tokio 提供 RCU(read-copy-update)原语,适合读多写少的共享状态。核心是 synchronize_rcu(等待 grace period 后再回收旧数据),以及高层 RcuBox:读路径基本是一次原子指针 load,不做分支或共享写;写路径 swap 后需等待各 Tokio worker 经过 quiescent state 才能释放旧分配。
实现把 quiescent state 定在 Tokio 的 on_after_task_poll:库约束 RCU 指针不可跨 .await 持有,因此 task poll 结束后可认为当前线程不再持有受保护指针。使用需 RCU 启用的 runtime(rcu_block_on / enable_rcu),并依赖 tokio_unstable。作者在 20 核机器上对比 arc_swap:只读与读多写少场景下 RcuBox 读大约 9–40× 更快,写完成墙钟时间大约慢 2×(多花在等待 grace period,而非更多 CPU 忙等)。当前支持 Linux 与 Windows(membarrier / FlushProcessWriteBuffers)。
原文链接:https://github.com/roeeshoshani/tokio_rcu
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论