Skip to content

Commit 1a4385f

Browse files
committed
docs: each highlight is named for the capability and the work it does, in one line
The lead sentence is gone: with each bullet named for both halves, saying that a bullet has two halves is a line that explains the next six rather than adding to them. The names now pair a capability with the work it is for -- build plugins with heterogeneous hardware, package management with the module-library ecosystem, toolchain management with cross-compilation -- so the reader sees what each part is for without reading to the end of the line. Every bullet is one line. The mcpplibs link moves up into the ecosystem bullet, where a reader looking for libraries meets it first; it can be given a bullet of its own once the library set is the thing being announced.
1 parent f63be08 commit 1a4385f

2 files changed

Lines changed: 12 additions & 16 deletions

File tree

README.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020

2121
## Highlights
2222

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
3129

3230
## Why mcpp
3331

README.zh-CN.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020

2121
## 核心特性
2222

23-
每一条先说能力,再说它被用来做什么。
24-
25-
- **通用构建系统** — C++23 模块原生支持:`import std` 自动处理,文件级增量构建,模块依赖自动分析。`mcpp new && mcpp build`,没有要配置的东西;接口没有变化,就不会级联到导入它的那些单元
26-
- **构建插件**`build.mcpp` 与规则包。mcpp 没有现成规则的那一步写一次,就能打成包给别的项目用;CUDA、HIP、SYCL、Vulkan/SPIR-V 与 Ascend C 各是一个规则包
27-
- **包管理** — SemVer 约束解析、锁文件、跨项目 BMI 缓存、自定义索引。两行清单引入一个社区模块化库并直接 `import`;多个包在 workspace 里共用一份锁文件
28-
- **工具链管理**`family@version`,按需安装。本机不必先装编译器,`--target` 让同一次构建换到 Windows、macOS、Cortex-M 或 RISC-V 裸机
29-
- **环境与运行时** — xlings 提供的用户态环境。工具链与依赖落在隔离沙盒里而不是系统里;runner 把产物送上板子或模拟器
30-
- **纯模块化自举** — mcpp 完全由 C++23 模块接口单元写成,并用这条流水线构建自己:上面每一条,每天都在 mcpp 自己身上跑一遍
23+
- **模块化构建系统** — 专注 C++ 模块:`import std` 自动处理,文件级增量构建,模块依赖自动分析,零手动配置
24+
- **构建插件与异构硬件编程**`build.mcpp` 与规则包扩展构建;CUDA、HIP、SYCL、Vulkan/SPIR-V 与 Ascend C 各是一个规则包
25+
- **包管理与模块化库生态** — SemVer 约束、锁文件、跨项目 BMI 缓存、自定义索引;[mcpplibs](https://github.com/mcpplibs) 的库两行引入即可 `import`
26+
- **工具链管理与通用交叉构建**`family@version` 按需安装;`--target` 让同一次构建换到 Windows、macOS、Cortex-M 或 RISC-V 裸机,一份源码经 openkal 触及多个有操作系统的目标
27+
- **环境与运行时** — xlings 提供的用户态环境:工具链与依赖都留在隔离沙盒里,runner 把产物送上板子或模拟器
28+
- **纯模块化自举** — mcpp 完全由 C++23 模块接口单元写成,并用这条流水线构建自己
3129

3230
## 为什么选择 mcpp
3331

0 commit comments

Comments
 (0)