• v0.8.0 ee3f9e0bd0

    Serendipity released this 2026-06-07 18:29:59 +08:00 | 1 commits to main since this release

    L Language v0.8.0 — 闭包与引用参数

    新功能

    in/out 参数 — 引用传递语义

    fn swap(out x: i64, out y: i64) -> void { ... }
    fn increment(out x: i64) -> void { x = x + 1; }
    

    闭包/lambda — 匿名函数表达式

    let double = fn(x: i64) -> i64 { return x * 2; };
    let r = double(21);  // 42
    

    变量捕获 — 闭包自动捕获外层变量

    let base = 100;
    let adder = fn(x: i64) -> i64 { return x + base; };
    adder(50);  // 150
    

    Bug 修复

    • for 循环同名变量作用域隔离
    • 列表推导任意元素数量 (修复 element_type/size=0 crash)

    测试

    • 209 单元测试 (41 lexer + 54 parser + 86 sema + 28 codegen)
    • 44 集成测试程序

    安装

    下载 l_lang.exe 放到 PATH 中即可使用。
    需要 LLVM 22.x 运行时库。

    Downloads