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

  • 无变化。

工具指南

  • 无变化。