Cangjie 1.1.0 正式发布,支持 Android/iOS 跨平台运行,中心仓正式上线 | STS Beta 测试活动获奖名单公示

Cangjie 1.1.0 正式发布

🚀 支持 Android/iOS 跨平台运行,中心仓正式上线 | STS Beta 测试活动获奖名单公示

Cangjie 1.1.0STS 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
相关推荐
liulian09162 小时前
【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 底部导航栏交互设计与性能优化实践
flutter·华为·交互·学习方法·harmonyos
Lanren的编程日记10 小时前
Flutter 鸿蒙应用智能推荐功能实战:协同过滤+混合推荐算法,打造个性化内容体验
flutter·华为·harmonyos·推荐算法
小成Coder17 小时前
【Jack实战】如何用防窥保护给 HarmonyOS 应用敏感页面加一层系统蒙层
华为·harmonyos
jiejiejiejie_21 小时前
Flutter for OpenHarmony 视频播放与本地身份验证萌系实战总结
flutter·华为·音视频·harmonyos
liulian091621 小时前
【Flutter for OpenHarmony 第三方库】Flutter for OpenHarmony 第三方社交登录功能适配与实现指南
flutter·华为·学习方法·harmonyos
条tiao条1 天前
鸿蒙 ArkTS 实战全解:从基础布局到完整页面,核心组件与样式一篇通
华为·harmonyos
liulian09161 天前
【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 骨架屏实现与用户加载体验优化指南
flutter·华为·学习方法·harmonyos
Lanren的编程日记1 天前
Flutter 鸿蒙应用无障碍功能实战:语义化标签+屏幕阅读器+键盘导航,全方位提升应用可用性
flutter·华为·计算机外设·harmonyos
小白学鸿蒙1 天前
鸿蒙APP开发:SDK 兼容版本与目标版本如何选择
华为·harmonyos