Home ›
Developer & IT Tools › Programming Languages › Cangjie (LTS)
Cangjie (LTS) 1.0.5
A new-generation programming language oriented to full-scenario intelligence
Download for Windows
About Cangjie (LTS) The Cangjie programming language is a new-generation programming language oriented to full-scenario intelligence. It features native intelligence, being naturally suitable for all scenarios, high performance and strong security. It is mainly applied in scenarios such as native applications and service applications of HarmonyOS NEXT, providing developers with a good programming experience.
What's new in 1.0.5
0. 版本介绍 本版本为 Cangjie 语言 LTS 1.0.0 版本的更新版本(LTS 版本定义及维护周期详见仓颉社区版本生命周期管理规范,版本号为 Cangjie 1.0.4,主要解决部分发现的 Bug,以及对某些功能进行优化。版本包含了仓颉应用开发必须的能力,包括编译器,运行时,标准库,和工具链。欢迎各位开发者使用,如有任何问题,欢迎在 Cangjie 社区提出 issue,我们会第一时间处理。以下介绍本版本相比 LTS 1.0.3 版本的更新。 1. 语言特性 无特性新增。 2. 编译器 本版本仅修复问题,无特性新增。修复问题如下: -【issue-105】let 变量在 lambda 中被赋值了两次,未编译报错 -【issue-2591】当同一个包不同文件中存在同名私有函数时,无法编译 -【issue-2533】项目 cjpm build -g 编译失败,cjpm test --coverage 编译崩溃,报错 Error Code: 13 -【issue-2565】【缺陷】Option 作为返回值时,当 T 为 Array,ArrayList 时,多层 API 调用时返回值不对 3. 运行时 本版本仅修复问题,无特性新增。修复问题如下: -【issue-2395】新项目 MacOS26 报 SG_READ_ONLY 缺失,修复 MacOS26 编译失败问题 -【issue-2649】在运行 GC 场景中,长时间压测情况下,偶现 cangjie 进程卡死现象问题解决 4. 标准库 本版本仅修复问题,无特性新增。修复问题如下: -【issue-2242】修复在 Timer 的定时任务中调用 cancel()时后不能以预期的方式取消的问题 -【issue-2408】修复 TreeMap 和 TreeSet 中出现同一 key 值多次出现的问题 5. 工具链 1 IDE 插件 本版本仅修复问题,无特性新增。修复问题如下: -【issue-1961】codeArts 编译错误信息的中文内容显示为 -【issue-6】codeArts 编译错误信息的中文内容显示为乱码 2 cjpm 新增支持 lto-combined 功能,详情请参见工具指南。 本版本修复问题如下: -【issue-2373】优化 cjpm init 报错信息 -【issue-2650】交叉编译场景下,cjpm 宏包依赖出现错误 3 cjdb 无变化。 4 cjfmt 本版本仅修复问题,无特性新增:修复问题如下: -【issue-2385】cjfmt 文档缺少 cangjie-format.toml 配置的介绍 5 cjlint 本版本仅修复问题,无特性新增:修复问题如下: -【issue-2433】cjlint 的 G.VAR.02 规则误报,预期无警告 6 cjcov 无变化。 7 cjprof 无变化。 8 cjtrace-recover 无变化。 6. 遗留问题 在 lambda body 体内修改 lambda 参数,编译崩溃 【问题现象】在 lambda body 体内误修改 lambda 参数,可能会导致 ICE,ErrorCode 为 12。 【规避措施】不要错误的在 lambda body 体内修改 lambda 参数 调用被扩展的接口函数的部分场景会导致运行时崩溃的问题 【问题现象】当存在一个泛型类 A 扩展了某个泛型接口 I,且存在另一个非泛型类 B 继承了实例化版本的类 A,将 B 的实例赋值给 I 类型变量且调用接口 I 函数时可能导致运行时崩溃。 样例: interface I<T> { func foo() {} }
open class A<T> {} extend<T> A<T> <: I<T> {}
class B <: A<Int64> {}
main() { let i: I<Int64> = B() i.foo() // 此处调用会发生运行阶段崩溃 return 0 } 【规避措施】 方案一:若类 A 定义在本包,可以不使用扩展,通过 A 直接继承接口 I 以规避该问题。 规避样例: interface I<T> { func foo() {} } open class A<T> <: I<T> {} // 使 A 继承 I open class B <: A<Int64> {}
main() { let i: I<Int64> = B() i.foo() return 0 } 方案二:若类 A 是导入自其它包,可以将类 B 定义为泛型类以规避该问题。 规避样例: import pkgA.A
interface I<T> { func foo() {} } extend<T> A<T> <: I<T> {}
open class B<T> <: A<T> {} // 将类 B 定义为泛型类
main() { let i: I<Int64> = B<Int64>() i.foo() return 0 } 7. 文档变更说明 开发指南 - 程序结构章节新增说明:函数和 lambda 中的静态成员变量赋值,编译器无法判断函数或者 lambda 是否会被执行,因此采用保守策略,即编译报错。 - 普通 try 表达式中新增说明:当在 try 块中可能发生内存溢出错误时,应避免在 catch 或 finally 块中执行任何内存分配操作,以免再次触发溢出并导致未定义行为。一旦检测到内存溢出,建议在 catch 块中立即终止程序(例如调用 exit 函数),以确保系统稳定性并防止进一步错误。 - 新增编译选项--compile-as-exe 相关内容。 标准库 API - 无变化。 工具指南 …
Full release notes »
Technical details
Publisher Huawei Technologies Co., Ltd.
Version 1.0.5
Release date 2026-02-10
License Apache-2.0
Installer type nullsoft
Architecture x64
Package ID Huawei.Cangjie.LTS
Install scope All users
Install Cangjie (LTS) from the command line Install with Windows Package Manager winget install --id=Huawei.Cangjie.LTS -eUpdate to the latest version winget upgrade --id=Huawei.Cangjie.LTS -eUninstall winget uninstall --id=Huawei.Cangjie.LTS -eSilent install with the offline installer "downLoad" /SCangjie (LTS) adds these commands to the command line: cjc, cjc-frontend, cjcov, cjdb, cjfmt, cjlint, cjpm, cjtrace-recover.
harmonyos language oniro openharmony programming programming-language
Cangjie (LTS) version history 1.0.4 Nov 10, 2025 0. 版本介绍 本版本为 Cangjie 语言 LTS 1.0.0 版本的更新版本(LTS 版本定义及维护周期详见仓颉社区版本生命周期管理规范,版本号为 Cangjie 1.0.4,主要解决部分发现的 Bug,以及对某些功能进行优化。版本包含了仓颉应用开发必须的能力,包括编译器,运行时,标准库,和工具链。欢迎各位开发者使用,如有任何问题,欢迎在 Cangjie 社区提出 issue,我们会第一时间处理。以下介绍本版本相比 LTS 1.0.3 版本的更新。 1. 语言特性 无特性新增。 2. 编译器 本版本仅修复问题,无特性新增。修复问题如下: -【issue-105】let 变量在 lambda 中被赋值了两次,未编译报错 -【issue-2591】当同一个包不同文件中存在同名私有函数时,无法编译 -【issue-2533】项目 cjpm build -g 编译失败,cjpm test --coverage 编译崩溃,报错 Error Code: 13 -【issue-2565】【缺陷】Option 作为返回值时,当 T 为 Array,ArrayList 时,多层 API 调用时返回值不对 3. 运行时 本版本仅修复问题,无特性新增。修复问题如下: -【issue-2395】新项目 MacOS26 报 SG_READ_ONLY 缺失,修复 MacOS26 编译失败问题 -【issue-2649】在运行 GC 场景中,长时间压测情况下,偶现 cangjie 进程卡死现象问题解决 4. 标准库 本版本仅修复问题,无特性新增。修复问题如下: -【issue-2242】修复在 Timer 的定时任务中调用 cancel()时后不能以预期的方式取消的问题 -【issue-2408】修复 TreeMap 和 TreeSet 中出现同一 key 值多次出现的问题 5. 工具链 1 IDE 插件 本版本仅修复问题,无特性新增。修复问题如下: -【issue-1961】codeArts 编译错误信息的中文内容显示为 -【issue-6】codeArts 编译错误信息的中文内容显示为乱码 2 cjpm 新增支持 lto-combined 功能,详情请参见工具指南。 本版本修复问题如下: -【issue-2373】优化 cjpm init 报错信息 -【issue-2650】tr5-2 交叉编译场景下,cjpm 宏包依赖出现错误 3 cjdb 无变化。 4 cjfmt 本版本仅修复问题,无特性新增:修复问题如下: -【issue-2385】cjfmt 文档缺少 cangjie-format.toml 配置的介绍 5 cjlint 本版本仅修复问题,无特性新增:修复问题如下: -【issue-2433】cjlint 的 G.VAR.02 规则误报,预期无警告 6 cjcov 无变化。 7 cjprof 无变化。 8 cjtrace-recover 无变化。 6. 遗留问题 windows 下编译 cjpm test 报错 【问题现象】windows 下编译 cjpm test,提示找不到 openssl 相关的动态库错误。 【规避措施】手动增加 cjpm test 时的-L 地址。 在 lanbda body 体内修改 lambda 参数,编译崩溃 【问题现象】在 lambda body 体内误修改 lambda 参数,可能会导致 ICE,ErrorCode 为 12。 【规避措施】不要错误的在 lambda body 体内修改 lambda 参数 …
1.0.3 Oct 10, 2025 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. 遗留问题 …
Frequently asked questions Is Cangjie (LTS) free? Yes. Cangjie (LTS) is free and open-source software released under the Apache-2.0 license.
What is the latest version of Cangjie (LTS)? The latest version is 1.0.5, released on Feb 10, 2026.
Is it safe to download Cangjie (LTS)? The download button links to the official installer published on cangjie-lang.cn, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 05dda9e0009398af26df442ca1e83181fb8faea90a573d922fd3834a6e3143e0.
Which Windows versions does Cangjie (LTS) support? Cangjie (LTS) runs on Windows and is available for 64-bit (x64) systems.
How do I install Cangjie (LTS) silently? Run the offline installer with "downLoad" /S, or install it with Windows Package Manager: winget install --id=Huawei.Cangjie.LTS -e --silent.
How do I uninstall Cangjie (LTS)? Open Settings › Apps › Installed apps, find Cangjie (LTS) and select Uninstall. From the command line, run winget uninstall --id=Huawei.Cangjie.LTS -e.