feat(pkg): compat.boost-{config,assert,throw-exception,type-traits,uuid} 1.92.0 + compat.jwt-cpp 0.7.2 - #244
Merged
Conversation
…id} 1.92.0 + compat.jwt-cpp 0.7.2 modular-boost 拆包路线(vcpkg 同构):每个 boostorg/<lib> 从自己的 boost-1.92.0 tag 打独立小包,不引单体 tarball。头文件包含闭包经逐文件 grep 核实:uuid 仅依 赖 config/assert/throw_exception/type_traits 四个头库,五包交付集两两不相交, 升级时整列车一起动版本。 - 传统 #include 消费(Shape B 头文件+锚点),不做模块包装;language=c++20 - jwt-cpp(Thalhammer/jwt-cpp,v0.7.2)无条件依赖 compat.openssl 3.5.1, 链接标志由 openssl 包自带并传递;JSON 后端用捆绑 picojson 默认 - 六个消费者测试成员(mcpp.toml 注册),真断言:版本列车/BOOST_VERIFY 语义/ 异常传播/trait 答案/UUID RFC4122 形状与 SHA1 名字生成器/JWT HS256 实签实验签 - 本地 macOS 冷缓存全绿:lint 五连 + pinned mcpp 2026.8.10.3 xpkg parse + 六成员 mcpp test;linux gcc 腿的 -latomic 预案已记录在 uuid 描述符注释 - CN 镜像暂缺,纯上游 URL(boost-ext.ut 先例)
Sunrisepeak
pushed a commit
that referenced
this pull request
Sep 5, 2026
* feat(pkg): compat.boost-beast 1.92.0 + modular-boost 第二列车(25 个新包) 收录 Boost.Beast(HTTP/WebSocket)。Beast 1.92 上游已移除 BEAST_USE_STANDALONE_ASIO(error.hpp 无条件别名 boost::system::error_code), 无法复用独立 chriskohlhoff.asio,故沿 #244 的 modular-boost 拆包路线 (vcpkg 同构,每个 boostorg/<lib> 从自己的 boost-1.92.0 tag 打小包) 一次性补齐全传递闭包,共 25 个新描述符: boost-beast(19 直接依赖), boost-asio, boost-align, boost-bind, boost-compat, boost-container, boost-container-hash, boost-core, boost-describe, boost-endian, boost-intrusive, boost-io, boost-logic, boost-move, boost-mp11, boost-optional, boost-predef, boost-preprocessor, boost-smart-ptr, boost-static-string, boost-system, boost-type-index, boost-utility, boost-variant2, boost-winapi - 闭包逐 include grep(两种 #include 拼写)并与各仓 CMakeLists INTERFACE 行交叉核对;beast 的 19 个依赖与上游 CMakeLists 完全一致 - 29 棵 include 树(2608 文件)两两不相交,*/include 联合无碰撞 - 单文件 shim 归属逐一核实(type_index 走 <boost/type_index.hpp> 单文件头; cerrno 归 system;get_pointer/type/noncopyable 等归 core;none 归 optional) - boost-asio 经 default feature 携带 BOOST_ASIO_DISABLE_BOOST_CONTEXT_FIBER 与 BOOST_ASIO_DISABLE_BOOST_DATE_TIME(与 chriskohlhoff.asio 同思路): 关掉 boost.context(编译期汇编库)与 boost.date_time,保住家族 header-only; boost-beast 的 default feature 原样重述两个宏,保证消费 TU 配置一致 - 全部 25 个 tarball 无符号链接(Windows 可直接解包);sha256 双算稳定; 暂不建 CN 镜像(纯字符串 GLOBAL url,家族先例) - 测试成员 boost-beast:HTTP 解析/序列化回路/错误路径/自带 zlib 往返/ multi_buffer+static_string;boost-asio:feature 宏传播 + 真实 io_context 定时器/co_spawn 往返;既有 boost-uuid 成员回归通过 - mcpp 2026.8.27.2 本地冷验证通过;lint 全套(lua 语法/必填字段/裸版本/ name 单段/镜像表/跨包引用/平台版本对齐/重复版本/xpkg parse)全绿 设计文档:.agents/docs/2026-09-05-add-boost-beast-plan.md * fix(boost-asio): 钉定 BOOST_ASIO_HAS_THREADS — llvm-on-Windows 静默退化为 null_thread workspace 的 llvm-on-Windows 工具链(clang → x86_64-pc-windows-msvc)不定义 _MT/_REENTRANT,boost::config 也给不出 BOOST_HAS_THREADS,asio 的探测 (detail/config.hpp)静默选中 null_thread,boost-asio 成员在 windows CI 上 运行即 crash(exit 0xC0000409)。与 chriskohlhoff.asio 钉 ASIO_HAS_THREADS 完全同构;该宏还参与 BOOST_ASIO_VERSION_TAG,跨 TU 必须一致,故作为 default feature 的 define 传播,boost-beast 侧同步重述。 linux/macos/windows 三平台语义一致,macOS 本地冷验证两成员仍通过。 * test(boost-family): 大测试成员 — 一个工程覆盖全部 23 个小依赖包 新增 tests/examples/boost-family/:消费 modular-boost 家族所有没有专属 成员的小包(align/bind/compat/container/container-hash/core/describe/ endian/intrusive/io/logic/move/mp11/optional/predef/preprocessor/ smart-ptr/static-string/system/type-index/utility/variant2/winapi), 按主题分 6 个 tests/*.cpp,每个组件都有可失败的行为断言: core-smart core(addressof/empty_value/ref) + smart-ptr + move containers container(vector) + intrusive(list) + optional + static-string meta mp11 + describe + preprocessor + type-index + predef system-errors system(error_code/system_error) + compat(invoke) + bind bytes-logic endian + container-hash + logic(tribool) + align io-platform io(ios_flags_saver) + utility(compressed_pair) + winapi 实测踩坑固化进注释:tribool 连 operator! 都返回 tribool(取 bool 走 explicit 转换/indeterminate());boost/winapi 头非 Windows 平台 #error (include 与断言均在 _WIN32 门控内,由 windows CI 腿真实覆盖); intrusive::list 析构前必须 clear(带链析构触发调试断言)。 mcpp 2026.8.27.2 本地冷验证:6/6 test result ok。
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.
内容
六个新包(传统
#include消费,Shape B 头文件+锚点,无模块包装,language=c++20):compat.boost-configcompat.boost-assertcompat.boost-throw-exceptioncompat.boost-type-traitscompat.boost-uuidcompat.jwt-cpp(Thalhammer/jwt-cpp)Boost 家族走 modular-boost 拆包路线(vcpkg 同构):每个 boostorg/ 从自己的
boost-1.92.0tag 打独立小包(Config 约 300 KiB),不引 ~224 MiB 单体 tarball;后续引入其他 Boost 组件只需再加一个描述符。头文件包含闭包经逐文件 grep 核实
(与各库 CMakeLists INTERFACE 行一致),五包交付集两两不相交;升级时整列车一起动版本。
jwt-cpp 无条件依赖 openssl(jwt.h 在无 feature guard 下包含 <openssl/*.h>),
链接标志由 compat.openssl 自带并向消费者传递;JSON 用捆绑 picojson 默认后端。
CN 镜像暂缺,纯上游 URL(boost-ext.ut 先例)。
验证
mcpp xpkg parse(pin 的 2026.8.10.3)六描述符全过mcpp test全绿均通过六个新成员的真实断言(uuid 的 uint128
-latomic预案未被触发;windowsNOMINMAX 无扰);jwt-cpp 成员在每条腿上做真实 HS256 签发→验签→错误密钥拒绝,
经 compat.openssl 源码构建实链
PR 描述符注释里记录了两条预案:linux
-latomic(uuid uint128 路径)与 windowsNOMINMAX 上游 FAQ。测试成员:tests/examples/{boost-config,boost-assert,
boost-throw-exception,boost-type-traits,boost-uuid,jwt-cpp}。