Commit 61c7446
feat(targetside): five layers, and the largest of them had no name (#494)
* feat(targetside): five layers, and the largest of them had no name
一次真实使用暴露了十条问题:一个 hello-world 工程,`[dependencies]` 里只加了一行
`openkal-llvm-runtime`,随后在四个目标上连续失败,每一次的错误信息都来自编译器,
没有一条提到 mcpp 作出的决定。
`01d6cef` 把「目标侧从哪来」收敛到了一处解析,但它的消费者仍停在旧模型上。
本次补齐模型本身。
── 1. 第五层:compiler-runtime ──────────────────────────────
实测 `openkal-llvm-runtime` 编译的 729 个对象里,**498 个是 compiler-rt 的
builtins**、21 个是 libunwind 的。这个包最大的一块此前声明在 `mcpp:c++-abi`
名下 —— 而 `__udivti3` 是一个纯 C 程序需要的东西,与 C++ 无关。
把 builtins 算作 C++ 运行时的一部分,与本文件开头记录的那个缺陷同形:
一个交叉到 macOS 的 C 程序被问「有没有 C++ 运行时」,答「没有」,
链接行因而保留了载荷自带的 libc++。**一个只有部分程序需要的层仍然是层。**
`compiler` 同时成为一层,因为规则二需要一个被检查的对象。它是唯一一个
包不能供给的层:族与族之间的差异(flag 拼写、模块模型、BMI 格式、驱动 cfg)
是引擎必须持有的事实,不是数据能描述的。
1 parent bf6d1a4 commit 61c7446
27 files changed
Lines changed: 5832 additions & 122 deletions
File tree
- .agents/docs
- docs
- spec
- zh
- src
- build
- manifest
- targetside
- toolchain
- tests
- e2e
- unit
Lines changed: 2035 additions & 0 deletions
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
6 | 82 | | |
7 | 83 | | |
8 | 84 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1101 | 1101 | | |
1102 | 1102 | | |
1103 | 1103 | | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
1104 | 1134 | | |
1105 | 1135 | | |
1106 | 1136 | | |
| |||
0 commit comments