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
相关推荐
坚果派·白晓明28 分钟前
[鸿蒙PC三方库移植适配] 使用 AtomCode + Skills 自动完成libhv鸿蒙化适配
c++·华为·ai编程·harmonyos·atomcode
hanlin0343 分钟前
基于OpenHarmony 5.0的CAN驱动移植步骤
linux·c语言·华为·can·openharmony·t527
大明者省3 小时前
NOLO HOME和华为 PCVR 助手软件
华为
事界见闻11 小时前
鸿蒙6闪控球功能评测:盯盘、抢单、搜题,一点即达
华为·harmonyos
李二。13 小时前
ArkTS原生 | 知识问答引擎 —— 鸿蒙Next声明式UI实战
ui·华为·harmonyos
坚果的博客14 小时前
【鸿蒙 PC三方库构建系统】【测试验证】HPKCHECK文件详解
华为·harmonyos
世人万千丶14 小时前
鸿蒙PC问题解决:窗口拖动与拉伸时页面布局瞬间错乱、回弹后恢复
学习·华为·开源·harmonyos·鸿蒙·鸿蒙系统
Dream-Y.ocean14 小时前
Windows 鸿蒙 PC 应用开发:Electron 桌面级电子书阅读器开发实战指南
华为·harmonyos
浮芷.15 小时前
鸿蒙PC端 TTS 语音播放失败问题详解:从错误码到解决方案
华为·开源·harmonyos·鸿蒙·鸿蒙系统
提子拌饭13315 小时前
模态窗鸿蒙PC Electron框架实现技术详解 - 饮料含糖量应用案例分析
前端·javascript·华为·electron·前端框架·开源·鸿蒙