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
相关推荐
网络与设备以及操作系统学习使用者1 小时前
ARP报文保护触发与解决详解
运维·网络·学习·华为
key_3_feng1 小时前
鸿蒙车规级MCU开发方案
单片机·华为·harmonyos
大雷神2 小时前
HarmonyOS APP<<古今职鉴定>>开源教程第14篇:碰一碰分享:NFC 近场通信
华为·华为云·harmonyos
想你依然心痛3 小时前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“智流工坊“——低代码可视化智能体编排平台
低代码·华为·harmonyos
richard_yuu3 小时前
鸿蒙ArkUI组件化实战|公共组件封装、复用解耦与上架级UI规范落地
ui·华为·harmonyos
AI周红伟3 小时前
Token工厂落地:移动,电信,华为,阿里,从流量到Token,All in Token
大数据·人工智能·百度·华为·copilot·openclaw
KKei16383 小时前
Flutter for OpenHarmony 学习专注模式APP技术文章
学习·flutter·华为·harmonyos
UnicornDev4 小时前
【Flutter x HarmonyOS 6】挑战功能的业务逻辑实现
flutter·华为·harmonyos·鸿蒙·鸿蒙系统
不爱吃糖的程序媛4 小时前
Harmonybrew:让Homebrew落地OpenHarmony,补齐鸿蒙命令行包管理能力
华为·harmonyos
nashane18 小时前
HarmonyOS 6学习:AI攻略长截图“防抖”与像素级拼接术
学习·华为·harmonyos