Cangjie 1.1.0 正式发布
🚀 支持 Android/iOS 跨平台运行,中心仓正式上线 | STS Beta 测试活动获奖名单公示
Cangjie 1.1.0 为 STS 1.1 第一个发布版本,维护周期6个月。相比 1.0.5 版本,本版本新增 Android/iOS 跨平台运行 、中心仓等重要特性,修复了若干问题。
编程语言
✦ 新增组织名语法
✦ 新增 common/specific 语法,用于支持跨平台抽象
⚠️ 注意:该特性为实验特性
编译器
📌 新增特性
-
新增支持
--dump-xxx选项供开发者调试分析编译器中间行为 -
新增交叉编译至
-linux-x64-ohos场景 LTO(链接时优化)支持 -
条件编译新增
env内置编译条件变量 -
新增支持 iOS 交叉编译
(arm64、arm64 模拟器、x86_64 模拟器)
-
新增支持 Android 交叉编译
(aarch64),最低支持 API 26(Android 8)
-
cjc支持生成目标文件、指定目标文件类型等实验性选项
📌 变更特性
| 变更前 | 变更后 | 适配方式 |
|---|---|---|
-g 启用时默认启用 --apc |
-g 启用时不默认启用 --apc |
显式指定 --apc |
更换版本后 .cjo 格式一致,可增量编译 |
更换版本后 .cjo 格式不一致,增量编译失败 |
执行 clean 后重编译 |
📌 修复问题
-
修复打开特定中文路径的
.cj文件崩溃问题 -
修复多包 extend 场景虚函数调用导致的运行时崩溃问题
-
修复调试时可能会跳到 0 行的问题
-
修复编译器添加的 vardecl 不存在包名时的 mangle crash 问题
-
修复运行时读取堆上数据低概率崩溃的问题
运行时
📌 新增特性
-
✨ 新增支持在 iOS 上运行(arm64、arm64 模拟器、x86_64 模拟器)
-
✨ 新增支持在 Android 上运行(aarch64),最低要求 API 26
-
✨ 新增支持在 HarmonyOS 上运行(arm32)
-
提供
exclusiveScope依赖的绑定 OS 线程能力 -
新增 iOS 平台仓颉未捕获异常处理支持
标准库
📌 新增特性
-
std.ast包支持解析包含组织名语法的仓颉代码
-
std.collection包提供非迭代器版本容器操作
-
std.core包增加全局 public 函数
exclusiveScope -
std.core包新增支持对函数的
refEq重载 -
std.core包新增 Error 支持注册处理函数
-
std.core包新增异常支持
causedBy -
std.reflect包支持反射 struct、func、lambda、tuple
-
std.runtime包支持 signal 监听类接口
💡 温馨提示
异常链特性给 Exception 新增 private 成员变量,反射特性给 TypeInfo 新增 private 成员变量,建议使用本版本 SDK 对项目代码及其依赖包代码执行全量重编译。
工具链
🖥️ IDE 插件
-
新增支持中心仓特性
-
新增支持组织名语法、common/specific 新语法的语言服务
-
提供 debug 启动按钮,支持仓颉项目一键启动调试
-
优化语言服务增量代码诊断性能
📦 cjpm(包管理工具)
-
✨ 新增中心仓特性:制品发布、下载、索引机制、依赖解析等
-
新增工程级 lto-combine 特性
-
支持组织名配置
-
新增源码依赖增量扫描、流水线并行编译优化特性
-
新增跨平台项目构建支持
-
run命令支持通过
--标记入参
🐛 cjdb(调试器)
-
支持 iOS、Android 调试能力
-
支持组织名语法、common/specific 新语法
-
支持 try、coalescing、流、模式匹配、问号表达式求值
🔧 HLE(互操作工具)------ 首次发布
-
支持根据 ArkTS 头文件生成互操作胶水层代码
-
支持根据 C 头文件生成互操作胶水层代码
文档变更说明
📖 开发指南
-
跨平台
:新增"仓颉-Java 互操作"、"仓颉-ObjC 互操作"文档
-
cjc 编译选项
:新增实验性编译选项说明文档
📖 标准库 API
-
全量补充标准库 API 相关示例,帮助开发者使用 API
-
补充修改 std.ast、std.collection、std.convert、std.core、std.interop、std.reflect、std.runtime 对应 API 文档
📖 工具文档
-
cjpm
:新增 Linux/macOS 平台"不支持带
\路径"的限制说明 -
cjlint
:修正"规则级告警屏蔽"小节关于 SDK 路径的描述
-
cjcov
:修改 llvm 存放路径说明
🎉
1.1.0 STS Beta 测试活动获奖名单
特别感谢以下所有参与本次活动的开发者对仓颉社区的贡献!
| 排名 | AtomGit 账号 |
|---|---|
| 🥇 1 | @runningW |
| 🥈 2 | @macrosft |
| 🥉 3 | @xieyutian |
| 4 | @FinallyLanding |
| 5 | @zhangyin_gitcode |
| 6 | @ystyle |
| 7 | @Misakaa |
| 8 | @mcbbsandnz |
| 9 | @afocus |
| 10 | @m0_59023745 |
| 11 | @qq_72719894 |
| 12 | @zhuoyuanli |
| 13 | @xiaofengxi |
| 14 | @ly5156 |
| 15 | @Hacker_DL |
| 16 | @flydo |
| 17 | @Techman |
| 18 | @qq_21157457 |
| 19 | @gldong |
| 20 | @raozj |
| 21 | @yms_hi |
| 22 | @xffish |