|
20 | 20 |
|
21 | 21 | ## Highlights |
22 | 22 |
|
23 | | -Each line names a capability first, then what it is used for. |
24 | | - |
25 | | -- **Build system** — native C++23 modules: `import std` handled automatically, file-level incremental builds, automatic module dependency analysis. `mcpp new && mcpp build` with nothing to configure; an interface that did not change does not cascade into the units importing it |
26 | | -- **Build plugins** — `build.mcpp` and rule packages. A step mcpp has no rule for is written once and packaged for other projects; CUDA, HIP, SYCL, Vulkan/SPIR-V and Ascend C are each a rule package |
27 | | -- **Package manager** — SemVer constraint resolution, a lockfile, a cross-project BMI cache, custom indices. Two lines of manifest bring in a community module library to `import`; several packages share one lockfile in a workspace |
28 | | -- **Toolchain manager** — `family@version`, installed on demand. No compiler has to be installed first, and `--target` moves the same build to Windows, macOS, Cortex-M or RISC-V bare metal |
29 | | -- **Environment and runtime** — the user-space environment xlings provides. Toolchains and dependencies land in an isolated sandbox rather than in the system; a runner puts the artifact on a board or an emulator |
30 | | -- **Pure modular self-hosting** — mcpp is written entirely in C++23 module interface units and builds itself with this pipeline: every line above runs on mcpp itself every day |
| 23 | +- **Modular build system** — C++ modules first: `import std` handled automatically, file-level incremental builds, automatic dependency analysis, nothing to configure |
| 24 | +- **Build plugins and heterogeneous hardware** — `build.mcpp` and rule packages extend the build; CUDA, HIP, SYCL, Vulkan/SPIR-V and Ascend C are each a rule package |
| 25 | +- **Package management and a module-library ecosystem** — SemVer constraints, lockfile, cross-project BMI cache, custom indices; a library from [mcpplibs](https://github.com/mcpplibs) is two lines away from `import` |
| 26 | +- **Toolchain management and cross-compilation** — `family@version` installed on demand; `--target` moves the same build to Windows, macOS, Cortex-M or RISC-V bare metal, and one source tree reaches several hosted targets over openkal |
| 27 | +- **Environment and runtime** — the user-space environment xlings provides: toolchains and dependencies stay in an isolated sandbox, and a runner puts the artifact on a board or an emulator |
| 28 | +- **Pure modular self-hosting** — mcpp is written entirely in C++23 module interface units and builds itself with this pipeline |
31 | 29 |
|
32 | 30 | ## Why mcpp |
33 | 31 |
|
|
0 commit comments