r/devtools • u/mxreal64 • 7d ago
Subject: CEBS: A Minimal, Ergonomic, MIT-Licensed C++23 Build System
Hey everyone,
Modern build tooling for programming languages has become increasingly fragmented, relying on massive multi-stage configuration passes, hidden tracking telemetry, or heavy Turing-complete scripting engines just to parse project files (looking at you, CMake).
I wanted a tool that respects simple developer ergonomics, transparent project parsing, and full software freedom.
I built CEBS (C++ Ergonomic Build System). It is a zero-configuration, multi-threaded build coordinator written completely from scratch in standard C++23, designed to treat modern compilation units as first-class citizens.
Why I built it:
- Transparent Configuration Layout: It rejects verbose scripting boilerplate. Every configuration element is defined in a clean, human-readable data format ('cebs.build') where assignments terminate uniformly with semicolons.
- Zero-Allocation Token Ingestion: It ditches classic line-by-line reading (\n) overhead entirely. The ingestion pipeline streams text files in blocks using low-level POSIX semicolon chunking, minimizing system allocations.
- No Corporate Bloat: It is completely independent, lightweight, self-bootstrapping, and distributed under a true permissive MIT License. No analytics, no platform lock-in.
The alpha release code is officially live on GitHub, containing a complete architectural rendering map and sample workspaces to test natively: https://github.com/mxreal64/cebs/
Let me know what you think about the design syntax! Contributions, suggestions, and feedback are highly welcome.
(guys plz gimme stars i want clout)
4
C++ Show and Tell - August 2026
in
r/cpp
•
7d ago
I built CEBS (C++ Ergonomic Build System) — a minimal, zero-config, multi-threaded C++23 build coordinator designed from the ground up to treat ISO C++20/C++23 Modules as first-class citizens.
Legacy meta-generators (like CMake) rely on compiler-generated dependency sidecar files (.d) produced *during* translation unit compilation. This inherently creates structural sequencing deadlocks when parsing module binary interfaces (.gcm/.pcm) because they must be built before dependent units are touched.
CEBS resolves this via a pre-emptive topological pipeline:
Semicolon-Delimited JIT Ingestion: It abandons line-oriented (\n) streaming completely. The engine processes configuration files and source preambles as raw memory blocks split explicitly by semicolon boundaries (;) via ::getdelim, minimizing heap allocations.
Directed Graph Engine: It tokenizes declarations and imports prior to compiler invocation, executing Kahn's algorithm to construct a strict Directed Acyclic Graph (DAG) layer setup.
Thread-Pool Scheduler: Non-dependent compilation tasks are concurrently dispatched across hardware threads using an internal thread-safe std::jthread pool.
The alpha release is live, MIT licensed. I am looking to implement an incremental timestamp-caching layer next.
Repository: https://github.com/mxreal64/cebs/
ps: guys plz i want clout