debian:trixie-slim + GCC Objective-C + GNUstep Base, pinned by digest in Containerfile, plus make, python3, and clang-format (19.1.7, Debian trixie)
Native CI
Linux: GCC Objective-C + GNUstep Base (apt); macOS: Apple Clang + Foundation; Windows: MSYS2 CLANG64 with GNUstep Base and libobjc2; clang-format==19.1.7 from PyPI on all three
make toolchain verifies both environments. For Objective-C, the native compiler differs by OS, so it runs a language-standard compile-and-run probe. It also checks that clang-format is version 19.1.7 everywhere.
A project is implemented once it is listed in IMPLEMENTED in the repository's root
Makefile. CI then builds, lints, and tests it in the container and natively on Linux,
macOS, and Windows.
One code base for GCC with GNUstep Base, Apple Clang with Foundation, and Clang with libobjc2
(MSYS2). GCC has no ARC, @autoreleasepool, or @[]/@{}/@() literals, so the code uses
manual reference counting with NSAutoreleasePool.
Windows: builds enter through wmain (-municode), convert the UTF-16 command line to
UTF-8, and write binary-mode stdout and stderr. MSYS2 ships a newer clang-format, so the
PyPI 19.1.7 one must come first on PATH.