M1

1-11

实现了虚拟机和编译器的基础功能

12

扩展了虚拟机指令和编译器功能,第一个里程碑,实现了基本功能

M2

20

项目加入了libfmt

完成了字节码序列化/反序列化机制,解决了字节码不能正常解析运行的bug

21

进一步完善了ByteCodeChunk模块,清除了冗余代码

22

实现了更多数字格式支持:

十六进制:支持 0x 和 0X 前缀

八进制:支持 0o 和 0O 前缀

二进制:支持 0b 和 0B 前缀

十进制:普通数字表示

添加了对数字分隔符的支持,比如:

0x1_000_000  // 十六进制

0o777_777    // 八进制

0b1111_0000  // 二进制

1_000_000    // 十进制

// 目前支持大小写混合,但可以统一规范:

0x1A  // 推荐使用小写

0o77  // 推荐使用小写

0b101 // 推荐使用小写

初步添加数据范围和类型溢出相关代码

23

解决了数据范围和类型溢出问题。但是仍然有bug

修改了字节码文件格式,添加了校验和等

24

实现了指数格式支持

M3

30

解决了Native库调用问题,使用了libffi库实现native函数调用

修改了虚拟机整形数据存储方式

31

改进了整型和浮点型的存储方式

.....未完待续