Burer d8a5b5d16d
Build C-- programs / Build (LANG_SPA) (pull_request) Successful in 24s
Build C-- programs / Build (LANG_ENG) (pull_request) Successful in 25s
Build C-- programs / Build (LANG_RUS) (pull_request) Successful in 26s
Build C-- programs / Build (LANG_SPA) (push) Successful in 31s
Build C-- programs / Build (LANG_ENG) (push) Successful in 35s
Build C-- programs / Build (LANG_RUS) (push) Successful in 35s
apps/webview: use long jumps where short ones no longer reach
Since 5a7ba5c WebView does not compile: five short IF, RETURN and
FOR jump farther than 127 bytes ("jump distance too large"). Use
if, return and for there, as the compiler suggests. Behaviour does
not change.

Assisted-by: Claude:claude-opus-5-5
2026-10-01 15:12:47 +03:00
2026-09-27 09:45:21 +03:00
2024-06-02 03:56:38 +01:00
2024-06-02 03:56:38 +01:00
2026-09-27 09:45:21 +03:00
2026-09-27 09:45:21 +03: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
2026-09-27 09:45:21 +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
12 MiB
0 Stars 15 Watchers 1 Forks
Languages
C 93.1%
HTML 3.8%
C++ 0.8%
Python 0.6%
Objective-C 0.6%
Other 1.1%