# 2024/08/21 工作日志

本次修复了项目的许多漏洞，正式发行了2.4.19。

### 修复了大量漏洞

随着Stamon Web端的发布，大量网友帮我找到了漏洞，感谢他们！

本次修复的漏洞有：

* String equals方法无法正常使用
* Lexer的String匹配算法无法对未封闭字符串进行报错
* 对错误的小数点无法正常分析
* SFN的语法分析语法报错信息有误
* 在GC后如果内存还是溢满则直接卡退
* 修复了Stamon标准库
* 解决了gc之后内存泄漏的问题
* stamon help指令无需检查环境变量
* 打开不存在的文件出现内存泄漏的问题
* 使用--isStrip=true选项会产生内存泄露

### 新增内存池

我们测试了2.4.8的性能，并生成了火焰图，发现内存申请和释放的性能开销很大。于是我在依赖库当中添加了MemoryPool类。

MemoryPool提供了内存池功能，加快运行速度的同时增加了内存浪费。如果用户不希望内存池过度浪费内存，可以指定``--MemPoolCache=<Integer>``参数来指定内存池的缓存大小，当缓存大小为0时，则不使用内存池（详细请参见``发行版使用指南.md``）

在使用内存池后，我们进行了一百万次的空循环测试和素数筛测试，运行时间普遍减小至85%。

### 接下来要做的事

1. 支持文件处理库
2. 支持编译为平面字节码
3. 编写词法分析的保存功能
4. 编写AST的O1优化器
5. 完善标准库
6. 编写AST的解释器