用 Fuzzing 给 Gleam 编译器找茬
Fuzzing the Gleam Compiler

我长期关注 Gleam 项目,总想通过生成海量程序来挖掘未测试的边缘情况。起初我尝试用 LLM 生成测试用例,但成本高且结果不可控。于是转向结构感知 Fuzzing,利用 Rust 编写的编译器特性,直接生成随机代码而非字节流。通过 fuzzing 解析器,我成功复现了 nightly 版本的回归 bug。接下来,我将构建一个“smith”来生成类型安全的 Gleam 程序,进一步深入挖掘代码生成层面的潜在问题。
我想象它像一个棋盘,上面有准无限多的可能位置,但我们希望这个棋盘包含的是 Gleam 程序,并拥有一个无限大的程序数据库来发现未测试的边缘情况。