Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cavvy 5.2.0 Bug 修复清单

本文件按模块分类列出 5.2.0 版本中修复的所有问题。


编译器核心

诊断系统

问题修复内容相关 Commit
cayError 类型名称不一致统一重命名为 CayError(PascalCase),与 Rust 命名规范一致c567ff9
错误识别依赖字符串匹配新增 error_code 显式字段,消灭 message.contains() 模式c567ff9
错误传播链过长删除四层转换链(CompilerError / DisplayDiagnostic / 旧 Diagnostic / DiagnosticCollector)c567ff9
诊断模块路径分散统一迁移到 miette_diagnostic 模块,移除废弃旧模块引用7157da3
line_col_to_offset 对中文/emoji 的处理新增多字节字符正确性验证测试c567ff9

泛型系统

问题修复内容相关 Commit
缺少全局泛型类型替换新增 substitute_type_params 工具函数0dd32b2
嵌套泛型未递归替换重构泛型返回类型解析,支持递归替换0dd32b2
接口 vtable 未处理泛型后缀修复 vtable 查找时泛型后缀匹配逻辑0dd32b2
调用方返回值类型未替换自动替换调用方法返回值中的泛型参数0dd32b2

嵌入式 LLVM 工具链

ir2exe

问题修复内容相关 Commit
嵌入式链接缺系统库路径为 ld.lld 添加默认系统库搜索路径b292408
缺少 C 运行时启动文件自动检测并添加 crt 启动文件以提供正确入口点b292408
缺少 dl 库链接补充链接 dl 库并自动设置动态链接器路径b292408
链接参数顺序错误调整链接参数顺序确保符号解析正确b292408
Linux 缺失运行时库自动执行构建脚本编译 libcayrt-linux.adefebed

LLVM C API 兼容性

问题修复内容相关 Commit
Windows 下 LLVMDisposeMessage 崩溃注释掉不安全的 error_msg 内存释放逻辑,添加注释说明原因b30f9b2
IR 验证时产生空字符串警告优化处理逻辑,仅在消息非空且有效时打印警告b30f9b2

工具链

问题修复内容相关 Commit
debug_common 模块被 git 忽略修正 .gitignore,取消忽略并跟踪 debug_common 模块2e284e0
cay-rcpl 缺少 –use-embedded-llc新增嵌入式 llc 选项支持e665ab9
cay-run 缺少 –use-embedded-llc新增嵌入式 llc 选项支持e665ab9
REPL 输入解析器不识别访问修饰符扩展解析器支持 pub/priv 修饰符e665ab9
REPL 输入解析器不识别 fn 风格方法扩展解析器支持 fn 关键字风格定义e665ab9
帮助信息排版不对齐优化帮助信息的排版对齐e665ab9

基础设施

问题修复内容相关 Commit
Windows 多线程编译竞态错误全局关闭增量编译0dd32b2