Skip to content

Commit 6b2f45e

Browse files
authored
New version: Huawei.Cangjie version 1.0.4 (microsoft#311360)
1 parent 74ab4ed commit 6b2f45e

File tree

4 files changed

+189
-0
lines changed

4 files changed

+189
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Created with YamlCreate.ps1 Dumplings Mod
2+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.10.0.schema.json
3+
4+
PackageIdentifier: Huawei.Cangjie
5+
PackageVersion: 1.0.4
6+
InstallerType: nullsoft
7+
Scope: machine
8+
UpgradeBehavior: install
9+
Commands:
10+
- cjc
11+
- cjc-frontend
12+
- cjcov
13+
- cjdb
14+
- cjfmt
15+
- cjlint
16+
- cjpm
17+
- cjtrace-recover
18+
ProductCode: Cangjie
19+
ReleaseDate: 2025-11-10
20+
Installers:
21+
- Architecture: x64
22+
InstallerUrl: https://cangjie-lang.cn/v1/files/auth/downLoad?nsId=142267&fileName=cangjie-sdk-windows-x64-1.0.4.exe&objectKey=691154a3a1061e7e7ef142dc
23+
InstallerSha256: 4384273A237484DD1EE0E93332A54BBB69FDE924E609129220FF66829E04A7AD
24+
ManifestType: installer
25+
ManifestVersion: 1.10.0
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Created with YamlCreate.ps1 Dumplings Mod
2+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.10.0.schema.json
3+
4+
PackageIdentifier: Huawei.Cangjie
5+
PackageVersion: 1.0.4
6+
PackageLocale: en-US
7+
PublisherUrl: https://cangjie-lang.cn/en
8+
PackageUrl: https://cangjie-lang.cn/en/download
9+
ShortDescription: A new-generation programming language oriented to full-scenario intelligence
10+
Description: 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.
11+
Tags:
12+
- harmonyos
13+
- language
14+
- oniro
15+
- openharmony
16+
- programming
17+
- programming-language
18+
Documentations:
19+
- DocumentLabel: Docs
20+
DocumentUrl: https://cangjie-lang.cn/en/docs
21+
ManifestType: locale
22+
ManifestVersion: 1.10.0
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Created with YamlCreate.ps1 Dumplings Mod
2+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.10.0.schema.json
3+
4+
PackageIdentifier: Huawei.Cangjie
5+
PackageVersion: 1.0.4
6+
PackageLocale: zh-CN
7+
Publisher: Huawei Technologies Co., Ltd.
8+
PublisherUrl: https://cangjie-lang.cn/
9+
PrivacyUrl: https://cangjie-lang.cn/pages/privacy
10+
Author: Huawei Technologies Co., Ltd.
11+
PackageName: Cangjie
12+
PackageUrl: https://cangjie-lang.cn/download
13+
License: Apache-2.0
14+
LicenseUrl: https://gitcode.com/Cangjie/cangjie_build/blob/dev/LICENSE
15+
Copyright: Copyright Huawei Technologies Co., Ltd. 2022-2025. All rights reserved.
16+
ShortDescription: 面向全场景智能的新一代编程语言
17+
Description: 仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。主要应用于鸿蒙原生应用及服务应用等场景中,为开发者提供良好的编程体验。
18+
Tags:
19+
- harmonyos
20+
- oniro
21+
- openharmony
22+
- 编程
23+
- 编程语言
24+
- 语言
25+
- 鸿蒙
26+
ReleaseNotes: |-
27+
0. 版本介绍
28+
本版本为 Cangjie 语言 LTS 1.0.0 版本的更新版本(LTS 版本定义及维护周期详见仓颉社区版本生命周期管理规范,版本号为 Cangjie 1.0.4,主要解决部分发现的 Bug,以及对某些功能进行优化。版本包含了仓颉应用开发必须的能力,包括编译器,运行时,标准库,和工具链。欢迎各位开发者使用,如有任何问题,欢迎在 Cangjie 社区提出 issue,我们会第一时间处理。以下介绍本版本相比 LTS 1.0.3 版本的更新。
29+
1. 语言特性
30+
无特性新增。
31+
2. 编译器
32+
本版本仅修复问题,无特性新增。修复问题如下:
33+
-【issue-105】let 变量在 lambda 中被赋值了两次,未编译报错
34+
-【issue-2591】当同一个包不同文件中存在同名私有函数时,无法编译
35+
-【issue-2533】项目 cjpm build -g 编译失败,cjpm test --coverage 编译崩溃,报错 Error Code: 13
36+
-【issue-2565】【缺陷】Option 作为返回值时,当 T 为 Array,ArrayList 时,多层 API 调用时返回值不对
37+
3. 运行时
38+
本版本仅修复问题,无特性新增。修复问题如下:
39+
-【issue-2395】新项目 MacOS26 报 SG_READ_ONLY 缺失,修复 MacOS26 编译失败问题
40+
-【issue-2649】在运行 GC 场景中,长时间压测情况下,偶现 cangjie 进程卡死现象问题解决
41+
4. 标准库
42+
本版本仅修复问题,无特性新增。修复问题如下:
43+
-【issue-2242】修复在 Timer 的定时任务中调用 cancel()时后不能以预期的方式取消的问题
44+
-【issue-2408】修复 TreeMap 和 TreeSet 中出现同一 key 值多次出现的问题
45+
5. 工具链
46+
1 IDE 插件
47+
本版本仅修复问题,无特性新增。修复问题如下:
48+
-【issue-1961】codeArts 编译错误信息的中文内容显示为
49+
-【issue-6】codeArts 编译错误信息的中文内容显示为乱码
50+
2 cjpm
51+
新增支持 lto-combined 功能,详情请参见工具指南。
52+
本版本修复问题如下:
53+
-【issue-2373】优化 cjpm init 报错信息
54+
-【issue-2650】tr5-2 交叉编译场景下,cjpm 宏包依赖出现错误
55+
3 cjdb
56+
无变化。
57+
4 cjfmt
58+
本版本仅修复问题,无特性新增:修复问题如下:
59+
-【issue-2385】cjfmt 文档缺少 cangjie-format.toml 配置的介绍
60+
5 cjlint
61+
本版本仅修复问题,无特性新增:修复问题如下:
62+
-【issue-2433】cjlint 的 G.VAR.02 规则误报,预期无警告
63+
6 cjcov
64+
无变化。
65+
7 cjprof
66+
无变化。
67+
8 cjtrace-recover
68+
无变化。
69+
6. 遗留问题
70+
windows 下编译 cjpm test 报错
71+
【问题现象】windows 下编译 cjpm test,提示找不到 openssl 相关的动态库错误。
72+
【规避措施】手动增加 cjpm test 时的-L 地址。
73+
在 lanbda body 体内修改 lambda 参数,编译崩溃
74+
【问题现象】在 lambda body 体内误修改 lambda 参数,可能会导致 ICE,ErrorCode 为 12。
75+
【规避措施】不要错误的在 lambda body 体内修改 lambda 参数
76+
调用被扩展的接口函数的部分场景会导致运行时崩溃的问题
77+
【问题现象】当存在一个泛型类 A 扩展了某个泛型接口 I,且存在另一个非泛型类 B 继承了实例化版本的类 A,将 B 的实例赋值给 I 类型变量且调用接口 I 函数时可能导致运行时崩溃。 样例:
78+
interface I<T> {
79+
func foo() {}
80+
}
81+
82+
open class A<T> {}
83+
extend<T> A<T> <: I<T> {}
84+
85+
class B <: A<Int64> {}
86+
87+
main() {
88+
let i: I<Int64> = B()
89+
i.foo() // 此处调用会发生运行阶段崩溃
90+
return 0
91+
}
92+
【规避措施】 方案一:若类 A 定义在本包,可以不使用扩展,通过 A 直接继承接口 I 以规避该问题。 规避样例:
93+
interface I<T> {
94+
func foo() {}
95+
}
96+
open class A<T> <: I<T> {} // 使 A 继承 I
97+
open class B <: A<Int64> {}
98+
99+
main() {
100+
let i: I<Int64> = B()
101+
i.foo()
102+
return 0
103+
}
104+
方案二:若类 A 是导入自其它包,可以将类 B 定义为泛型类以规避该问题。 规避样例:
105+
import pkgA.A
106+
107+
interface I<T> {
108+
func foo() {}
109+
}
110+
extend<T> A<T> <: I<T> {}
111+
112+
open class B<T> <: A<T> {} // 将类 B 定义为泛型类
113+
114+
main() {
115+
let i: I<Int64> = B<Int64>()
116+
i.foo()
117+
return 0
118+
}
119+
7. 文档变更说明
120+
开发指南
121+
- 程序结构章节新增说明:函数和 lambda 中的静态成员变量赋值,编译器无法判断函数或者 lambda 是否会被执行,因此采用保守策略,即编译报错。
122+
- 普通 try 表达式中新增说明:当在 try 块中可能发生内存溢出错误时,应避免在 catch 或 finally 块中执行任何内存分配操作,以免再次触发溢出并导致未定义行为。一旦检测到内存溢出,建议在 catch 块中立即终止程序(例如调用 exit 函数),以确保系统稳定性并防止进一步错误。
123+
- 新增编译选项--compile-as-exe 相关内容。
124+
标准库 API
125+
- 无变化。
126+
工具指南
127+
- 格式化工具 cjfmt 章节新增说明:CANGJIE_HOME 环境下的默认格式化工具配置文件路径为 CANGJIE_HOME/tools/config。
128+
- cjpm 工具中的模块配置文件说明增加支持工程级 LTO 相关说明。
129+
ReleaseNotesUrl: https://cangjie-lang.cn/docs?url=/1.0.4/release_notes.html
130+
Documentations:
131+
- DocumentLabel: 文档
132+
DocumentUrl: https://cangjie-lang.cn/docs
133+
ManifestType: defaultLocale
134+
ManifestVersion: 1.10.0
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Created with YamlCreate.ps1 Dumplings Mod
2+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.10.0.schema.json
3+
4+
PackageIdentifier: Huawei.Cangjie
5+
PackageVersion: 1.0.4
6+
DefaultLocale: zh-CN
7+
ManifestType: version
8+
ManifestVersion: 1.10.0

0 commit comments

Comments
 (0)