Skip to content

Commit f63be08

Browse files
committed
docs: the highlights are a list again, and each line still separates the capability from its use
The two-column table made the distinction structural at the cost of the shape the section has always had, and the shape was the better of the two. Each line is a bullet again, in the original form: the bold name is the capability, the first sentence says what it is, and the second says what it is used for. The five names are still the five the analogy in Why mcpp uses, in the same order, and self-hosting returns as the sixth bullet rather than a trailing sentence.
1 parent 3d61319 commit f63be08

2 files changed

Lines changed: 16 additions & 24 deletions

File tree

‎README.md‎

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

2121
## Highlights
2222

23-
The left column is what mcpp is; the right is what that is used for.
24-
25-
| Capability | What it is used for |
26-
|---|---|
27-
| **Build system** — native C++23 modules, `import std` handled automatically, file-level incremental builds, automatic dependency analysis | `mcpp new && mcpp build`, with nothing to configure; an interface that did not change does not cascade into the units importing it |
28-
| **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 |
29-
| **Package manager** — SemVer constraints, 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 |
30-
| **Toolchain manager** — `family@version`, installed on demand | no compiler has to be installed first; `--target` moves the same build to Windows, macOS, Cortex-M or RISC-V bare metal |
31-
| **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 |
32-
33-
mcpp is written entirely in C++23 module interface units and builds itself with
34-
this pipeline, so every row above runs on mcpp itself every day.
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
3531

3632
## Why mcpp
3733

‎README.zh-CN.md‎

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

2121
## 核心特性
2222

23-
左列是 mcpp 是什么,右列是它被用来做什么。
24-
25-
| 能力 | 用它做的事 |
26-
|---|---|
27-
| **通用构建系统** —— C++23 模块原生支持,`import std` 自动处理,文件级增量构建,模块依赖自动分析 | `mcpp new && mcpp build`,没有要配置的东西;接口没有变化,就不会级联到导入它的那些单元 |
28-
| **构建插件** —— `build.mcpp` 与规则包 | mcpp 没有现成规则的那一步写一次,就能打成包给别的项目用;CUDA、HIP、SYCL、Vulkan/SPIR-V 与 Ascend C 各是一个规则包 |
29-
| **包管理** —— SemVer 约束、锁文件、跨项目 BMI 缓存、自定义索引 | 两行清单引入一个社区模块化库并直接 `import`;多个包在 workspace 里共用一份锁文件 |
30-
| **工具链管理** —— `family@version`,按需安装 | 本机不必先装编译器;`--target` 让同一次构建换到 Windows、macOS、Cortex-M 或 RISC-V 裸机 |
31-
| **环境与运行时** —— xlings 提供的用户态环境 | 工具链与依赖落在隔离沙盒里而不是系统里;runner 把产物送上板子或模拟器 |
32-
33-
mcpp 完全由 C++23 模块接口单元写成,并用这条流水线构建自己 —— 上面每一行,每天都在
34-
mcpp 自己身上跑一遍。
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 自己身上跑一遍
3531

3632
## 为什么选择 mcpp
3733

0 commit comments

Comments
 (0)