RakuAST Grant Report
a year ago
- #Raku
- #Open Source
- #Compiler Development
- RakuAST项目涉及对Raku编译器前端的重写与重新设计,重点改进解析、检查、优化及生成底层表示等环节。
- 初期资助已搭建基础框架,支持变量/类/函数/方法调用等简单程序,但许多高级语言特性尚未实现。
- 开发过程采用系统化方法:按字母顺序和基础语言概念逐项修复规范测试,但测试中的高级语法常迫使实现顺序需灵活调整。
- 时序控制成为最大挑战——Raku在编译时执行代码(如角色/BEGIN块)需要精确的操作顺序,而这些顺序既无文档记录,又源自旧编译器的历史行为。
- 项目远超预期工作量(提交超900次),因特殊案例和错误检查存在长尾效应,与『修复能同时解决多个测试』的初始预期相反。
- 次要目标是实现RakuAST自举编译器(脱离旧前端),这带来循环依赖等新挑战,并需变通方案访问对象内部数据。
- 标准库对Raku高级特性的广泛使用,暴露出规范测试未覆盖的缺陷,某些测试本身也因旧编译器 quirks 存在错误或无意义案例。
- 项目复杂性限制了社区贡献,但核心贡献者在RakuDoc等组件上提供了关键支持。