This branch is 7 commits behind KolibriOS/cmm_apps:main
2026-07-21 12:29:41 +01:00
2024-06-02 03:56:38 +01:00
2024-06-02 03:56:38 +01:00
2026-07-19 20:11:46 +03:00
2025-03-15 23:28:13 +01:00
2026-06-26 15:46:57 +00:00
2024-06-02 03:56:38 +01:00
2024-06-02 03:56:38 +01:00
2026-07-19 20:11:46 +03:00

Continuous integration

Build C-- programs (workflows/build.yaml)

Runs on every push to main and on every pull request. It compiles every C-- program in the repository and fails if any target stops building, so a change that breaks compilation is caught before merge.

The compiler is not committed here. The job clones KolibriOS/cmm, builds it with Makefile.lin32 and puts the result on PATH together with its c--.ini, which is where the compiler looks for it. Building the tip of the compiler on every run is deliberate: a compiler change that breaks a program is caught here, before it is bumped into the OS tree.

The heavy lifting is in build.sh:

  • it walks every Tupfile.lua and reads the declared c-- rule, so the set of built programs stays in sync with the real tup build — add a program with a Tupfile.lua and CI picks it up automatically;
  • tup.foreach_rule("*.c", …) directories (examples/, misc/) build every source file, single-tup.rule directories build their one target;
  • /D=AUTOBUILD and the /D=LANG_* define are applied exactly as the Tupfile.lua requests;
  • a target is considered built only if c-- exits 0 and produced a non-empty .com; a crash or hang (the known heap-layout-dependent c-- flakiness) is caught by a per-compile timeout and retried up to 4 times before being reported as a failure.

Language variants LANG_ENG, LANG_RUS and LANG_SPA build in parallel.

Built programs are collected under dist/ named as KolibriOS ships them — lowercase and without the .com extension — and published per language (cmm-programs-LANG_ENG / cmm-programs-LANG_RUS), downloadable from the run's Summary page for 14 days. They are not packed with kpack; the OS build does that itself when it assembles an image.

Running it locally

# c-- on PATH:
./build.sh LANG_ENG

# or point CMM at a compiler built from KolibriOS/cmm:
CMM=/path/to/c--.exe sh build.sh LANG_ENG

Runner

The job uses the kolibri-toolchain runner, the same self-hosted runner label as the main kolibrios build. It needs a working g++ and make to build the compiler, and must be able to run the resulting 32-bit i386 binary (any x86-64 Linux with IA32 support).

S
Description
No description provided
Readme
9.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 94%
HTML 1.7%
C++ 1.3%
Objective-C 1.1%
Lua 0.8%
Other 1.1%