Cangjie 1.1.0 Release Breakdown: Cross-Platform Runtime, Central Repository, and a Fully Upgraded Toolchain

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.