feat: 裸机分配器与零 libc 层 —— 三个新包,两个新版本 - #226
Merged
Merged
Conversation
## 新增 * `std-freestanding-alloc-kal` 0.1.0 —— 十二个 operator new/delete 转发 openkal * `std-freestanding-alloc-libc` 0.1.0 —— 同上,转发目标 C 库 * `std-freestanding-nolibc` 0.1.0 —— memcpy/memmove/memset/memcmp/strlen⚠️ 两个 alloc 包**同图只能有一个**。两者都 provide `freestanding-allocator`, 而 `operator new` 是全程序单例:解析器会点名两个 provider 并拒绝,这正是把选择做成 capability 而不是「链接器先看见谁算谁」的理由。⚠️ `std-freestanding-nolibc` **仅用于零 libc 档**。mcpp 把依赖包的目标文件无条件 放进消费方的链接行,没有「符号仍缺失才拉入」的归档语义,所以板级包链了 `-lc` 的 工程会得到两份 `memcpy`。其消费者应设 `[target.<triple>].sysroot = ""`。 ## 新版本 * `std-freestanding` 0.3.0 —— `alloc` / `alloc-kal` / `alloc-libc` feature。 feature 作开关、capability 作仲裁、实现在别的包;普通消费者只写一个 feature, 连 provider 包名都不必知道。 * `riscv-virt-rt` 0.4.0 —— 解除对编译器与 C 库的隐式耦合(改向引擎提问), 新增 openkal 裸机后端(置于 feature 之后)与零 libc 内核模板。 旧版本全部保留:已发布过的版本就是可能有人 pin 过的版本。 ## 校验 五个 tarball 的 GitHub 与 GitCode 镜像**逐字节一致**(sha256 相同)。 `check_mirror_urls` / `check_package_name` / `check_platform_version_parity` / `check_cross_package_refs` 本地全过。`min_mcpp` 未动。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
新增
std-freestanding-alloc-kal0.1.0 —— 十二个 operator new/delete 转发 openkalstd-freestanding-alloc-libc0.1.0 —— 同上,转发目标 C 库std-freestanding-nolibc0.1.0 —— memcpy/memmove/memset/memcmp/strlenfreestanding-allocator,而
operator new是全程序单例:解析器会点名两个 provider 并拒绝,这正是把选择做成capability 而不是「链接器先看见谁算谁」的理由。
std-freestanding-nolibc仅用于零 libc 档。mcpp 把依赖包的目标文件无条件放进消费方的链接行,没有「符号仍缺失才拉入」的归档语义,所以板级包链了
-lc的工程会得到两份
memcpy。其消费者应设[target.<triple>].sysroot = ""。新版本
std-freestanding0.3.0 ——alloc/alloc-kal/alloc-libcfeature。feature 作开关、capability 作仲裁、实现在别的包;普通消费者只写一个 feature,
连 provider 包名都不必知道。
riscv-virt-rt0.4.0 —— 解除对编译器与 C 库的隐式耦合(改向引擎提问),新增 openkal 裸机后端(置于 feature 之后)与零 libc 内核模板。
旧版本全部保留:已发布过的版本就是可能有人 pin 过的版本。
校验
五个 tarball 的 GitHub 与 GitCode 镜像逐字节一致(sha256 相同)。
check_mirror_urls/check_package_name/check_platform_version_parity/check_cross_package_refs本地全过。min_mcpp未动。