0. 版本介绍
本版本为Cangjie语言LTS 1.0.0版本的更新版本(LTS版本定义及维护周期详见仓颉社区版本生命周期管理规范,版本号为Cangjie 1.0.3,主要解决部分发现的Bug,以及对某些功能进行优化。版本包含了仓颉应用开发必须的能力,包括编译器,运行时,标准库,和工具链。欢迎各位开发者使用,如有任何问题,欢迎在Cangjie社区提出issue,我们会第一时间处理。以下介绍本版本相比LTS 1.0.3版本的更新。
1. 语言特性
修复部分问题,无特性新增。
2. 编译器
修复部分问题,无特性新增。
3. 运行时
修复部分问题,无特性新增。
4. 标准库
修复部分问题,无特性新增。
5. 工具链
1 IDE插件
修复部分问题,无特性新增。
2 cjpm
修复部分问题,无特性新增。
3 cjdb
修复部分问题,无特性新增。
4 cjfmt
修复部分问题,无特性新增。
5 cjlint
无变化。
6 cjcov
无变化。
7 cjprof
无变化。
8 cjtrace-recover
无变化。
6. 修复问题
- 【issue-2170】运行时崩溃"Thread 'out' catched unhandled SIGSEGV (Segmentation fault) from managed frame."
- 【issue-2336】【LSP】cjpm.toml中target的顺序会导致vscode插件无法识别stdx。
- 【issue-2167】windows环境下,Directory.isEmpty()执行报错。
- 【issue-2328】【文档】编译器@!格式的注解没有文档说明。
- 【issue-2308】【LSP】【代码高亮】多行原始字符串高亮效果不正确。
- 【issue-2359】编译时发生Internal Compiler Error, Error Code:13。
- 【issue-2322】项目cjpm build编译报错command failed。
- 【issue-2337】cjpm build时误报unused import。
- 【issue-2352】AST的visitor无法访问block节点。
- 【issue-2266】if表达式中存在流程控制语句,并且表达式的类型为?String,if表达式的计算结果有误。
- 【issue-2255】泛型推断错误。
- 【issue-2319】报错信息英文描述不准确。
- 【issue-2351】【文档】文档没有提到抽象函数 open函数 接口实例函数可以是泛型函数。
- 【issue-1866】项目运行cjpm build报错semantic error。
- 【issue-2307】多层级继承+扩展接口时发生ICE。
- 【issue-2280】使用 @Derive 宏后 VSCode 插件误标错。
- 【issue-2190】代码编译时sema应该报错,实际程序无响应。
- 【issue-2323】代码符合cjlint G.VAR.02规则,但是出现误报,预期结果应该是无告警。
- 【非社区问题】cjpm test --coverage崩溃,出现内部编译器错误:Broken llvm ir! (存储值类型与指针操作数类型不匹配!)。
- 【非社区问题】编译cjpm工程发生ICE。
- 【非社区问题】【stdx】【http】偶现 stream 计数错误和 http 写超时。
7. 遗留问题
windows下编译cjpm test报错
【问题现象】windows下编译cjpm test,提示找不到openssl相关的动态库错误。 【规避措施】手动增加cjpm test时的-L地址。
使用exe安装导致系统中原本的环境变量path丢失
【问题现象】当环境变量path长度(添加前长度,或者加上Cangjie环境变量后)超过1024位时,使用exe安装会导致系统中原本的环境变量path丢失。 【规避措施】使用zip安装包进行安装并手动配置环境变量。
8. 文档变更说明
开发指南
- 注解>自定义注解”中补充预留语法“@!Annotation”说明。
- 补充“包和模块管理”章节。
标准库API
- 无变化。
工具指南
- 无变化。