|
| 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 |
0 commit comments