Cangjie 1.1.0 completes its mobile cross-platform story with new Android and iOS cross-compilation and runtime support, plus the launch of a central repository that strengthens package management, debugging, interoperability, and standard library capabilities. It addresses long-standing pain points in emerging language ecosystems around cross-platform delivery, dependency distribution, and incomplete toolchains. Keywords: Cangjie, cross-platform, central repository.
The technical specification snapshot shows a much broader delivery surface
| Parameter | Details |
|---|---|
| Language | Cangjie |
| Version | 1.1.0 |
| Release Type | First official release of STS 1.1 |
| Maintenance Window | 6 months |
| Target Platforms | HarmonyOS, Android, iOS, Linux x64 OHOS cross-compilation scenarios |
| Package Management | cjpm, now with central repository support |
| Debugging Tool | cjdb |
| Interoperability Tool | HLE (initial release) |
| Core Components | cjc compiler, runtime, standard library, IDE plugins |
| GitHub Stars | Not provided in the source content |
This release moves Cangjie from usable to deliverable
The core message of Cangjie 1.1.0 is clear: it no longer focuses only on language features. It starts to complete the full development chain required for cross-platform application delivery.
The two most important changes in this release are now part of the mainline: official Android and iOS cross-platform runtime support, and standardized third-party library distribution through the new central repository. For engineering teams, this means the platform is moving from “you can write code” to “you can build, debug, and ship software.”
The language adds syntax for cross-platform abstraction
At the language level, Cangjie adds organization name syntax, along with common and specific syntax. The latter is designed to describe cross-platform abstractions and platform-specific logic, although it remains experimental for now.
common struct Logger {
// Shared interface for unified logging across platforms
}
specific(platform == "android") {
// Android-specific implementation
}
This example shows the design direction behind common and specific: unify shared semantics while routing implementations by platform.
Compiler enhancements now directly support multi-platform builds and debugging analysis
The compiler adds new --dump-xxx options, which help developers observe intermediate behavior and diagnose issues in the compilation pipeline. For teams building language tools, tuning performance, or troubleshooting complex builds, this kind of observability is important.
At the same time, version 1.1.0 now supports cross-compilation for both iOS and Android. The Android target is aarch64 with a minimum API level of 26. On iOS, supported targets include arm64, arm64 simulator, and x86_64 simulator. LTO also expands into specific cross-compilation scenarios.
# Cross-compilation example: generate target output with debug information enabled
cjc main.cj --target ios-arm64 -g --apc
# Inspect compiler intermediate behavior
cjc main.cj --dump-xxx
These commands reflect the new release’s stronger support for cross-platform builds and compiler analysis.
Two compatibility changes require immediate attention
First, -g no longer enables --apc by default, so you must add it explicitly. Second, the .cjo format is no longer guaranteed to remain consistent across versions. After an upgrade, incremental compilation may fail, so a clean build followed by a full rebuild is recommended.
These changes introduce a one-time migration cost, but they also give the toolchain more room to evolve. For CI pipelines, the best practice is to make clean builds part of the upgrade procedure.
The runtime now has a practical foundation for deployment across multiple operating systems
The runtime now supports iOS, Android, and HarmonyOS arm32, which shows that Cangjie is no longer limited to validation on a single platform. It is beginning to establish a real multi-platform execution surface.
In addition, support for binding exclusiveScope to OS threads and handling uncaught exceptions on iOS shows that the runtime continues to improve in concurrency control and stability.
main(): Int64 {
exclusiveScope { // Key capability for binding to an OS thread
println("run on dedicated thread")
}
return 0
}
This example shows where exclusiveScope fits in the runtime model: it provides explicit semantics for thread-bound execution scenarios.
Standard library and toolchain upgrades are improving engineering quality
The new standard library additions cover AST support, containers, core exception mechanisms, reflection, and runtime interfaces. Among them, std.reflect now supports struct, func, lambda, and tuple, which shows that metaprogramming and diagnostics capabilities are expanding.
Features such as the causedBy exception chain, Error registration handlers, and refEq overloading are more directly aimed at debugging and error management in production-grade projects. The official notes also warn that related private member changes can affect reflection and exception object layout, so you should fully rebuild both projects and dependencies after upgrading.
cjpm, cjdb, and HLE now form a more complete development loop
The most notable cjpm enhancement in this release is central repository support, including artifact publishing, downloading, indexing, and dependency resolution. This means the Cangjie ecosystem is beginning to gain unified infrastructure for package distribution.
cjdb adds better iOS and Android debugging support and adapts to the new syntax. The initial release of HLE can generate interoperability glue code from ArkTS or C header files, which can significantly reduce the cost of integrating mixed-language stacks.
# cjpm run now supports argument passthrough
cjpm run -- --port 8080 --env prod
This feature makes application argument passthrough more natural and easier to integrate into scripted workflows and automated tests.
Better documentation and community incentives show the ecosystem is accelerating
The documentation now includes Cangjie-Java and Cangjie-ObjC interoperability guides, along with experimental compiler option references and standard library API examples. For new users, this matters more than simply adding features, because it directly affects onboarding speed.
At the same time, the STS Beta testing campaign has published its award results, which shows that the team is already using community feedback to shape release quality. For a new language, the maturity of tools, documentation, and feedback loops often matters more than syntax alone when it comes to ecosystem growth.
Developers should focus on migration strategy before feature lists
If you are evaluating Cangjie 1.1.0, check three things first: whether you need multi-platform deployment, whether you plan to use the central repository, and whether your workflow depends on the previous incremental compilation behavior of .cjo.
For new projects, this release is already compelling. For existing projects, the safer path is to start with a clean build, validate dependencies related to exception chains and reflection, and then gradually introduce cross-compilation and central repository workflows.
FAQ answers the most important upgrade questions
Q1: What is the most important upgrade in Cangjie 1.1.0?
A: The two headline changes are Android and iOS cross-platform runtime and cross-compilation support, plus the official launch of the central repository. Together, they complete the two main delivery paths: multi-platform shipping and dependency distribution.
Q2: Why is a full rebuild recommended after upgrading to 1.1.0?
A: Because .cjo format compatibility is no longer guaranteed across versions, and private members related to exception chains and reflection have changed. Reusing old incremental build artifacts can cause build failures or runtime issues.
Q3: What is the practical value of HLE?
A: HLE can generate interoperability glue code from ArkTS or C header files, which reduces the need to handwrite binding layers. It is especially useful in mixed projects where Cangjie must coexist with existing native libraries or ArkTS code.
AI Readability Summary: Cangjie 1.1.0 is the first official STS 1.1 release. It introduces Android and iOS cross-platform runtime support, a central repository, and the HLE interoperability tool, while also upgrading the compiler, runtime, standard library, and debugging stack. It is a strong release for developers evaluating HarmonyOS and the broader domestic programming language ecosystem for real-world delivery.