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
改进了整型和浮点型的存储方式
.....未完待续
评论