最近一段时间,SoftArt的所有更新,都集中在编译器上。虽然没有办法赶上在2011年的SoftArt第一版本的alpha发布(也许会更名为Salvia,版本代号为Cryptic Era),但是整体进度还是比较理想的。今天提交了r425,这是一个比较重要的更新。到这个更新为止,编译器在后端的所有API便基本确定了。除去以后对参数和签名的小改动,基本结构已经成型。
Parser,AST,Semantic和Code gen都已经有了相应的原型和对应的测试。接下来基本就是堆代码的体力活了。
接下来,有以下工作比较重要:
0. 未实现的语言特性及对应的测试用例。
1. automatic regression tests的框架。这个框架的名称就叫fart,framework of auto regression tests的简写。这个Test与现有的unit tests稍有不同,他在第一次生成代码的时候,是要人工去检查并执行验证的。以后所有的测试,都是将结论与蓝本进行比较。
2. semantic阶段的出错处理,以及code generate阶段的容错机制。这一部分的将随着编译器的逐步完善而完善。
3. 并行化的代码生成。生成以SIMD方式执行的代码是这个编译器开发的初衷,它也是整个编译器功能中最重要的部分。
4. Host和Runtime部分。这一部分主要负责编译器的初始化,内建函数的注册,与脚本的交互等功能。在这一部分完成后,SoftArt就可以正式将SASL集成进来。
5. Shader API的设计和实现。
简易的计划表:
1.0(~Jun 2011):
不随SoftArt发布。完成进度:0: >60% 1: >80% 2: >20% 3: – 4: – 5: -
2.0(~Q1 2012):
编译器随SoftArt发布。未集成。进度: 0: >75% 1: >90% 2: >40% 3: – 4: – 5: -
3.0(~2013):
集成进softart。进度: 0: >85% 1: >90% 2: >50% 3: – 4: >50% 5: >30%