You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9d09bb9
Browse filesBrowse the repository at this point in the historyBrowse files
- muduo is packaged as Form B from the GitHub release archive; direct source compilation includes muduo base/network/poller units and excludes optional examples, protobuf/RPC, and contrib targets. The upstream empty `boilerplate.cc` is excluded because its referenced `BoilerPlate.h` is absent from the archive.
4
+
- muduo is packaged as Form B **Linux-only**from the GitHub release archive: upstream poller uses `sys/epoll.h` and timer queue uses `sys/timerfd.h`. The only `xpm` section is `linux`; consumers gate it with `cfg(linux)`. Direct source compilation includes muduo base/network/poller units and excludes optional examples, protobuf/RPC, and contrib targets. The upstream empty `boilerplate.cc` is excluded because its referenced `BoilerPlate.h` is absent from the archive.
- Dependency research from the actual compiler errors and upstream include tree found `boost/operators.hpp`, `boost/any.hpp`, and `boost/circular_buffer.hpp`. `boost/operators.hpp` is provided by Boost.Utility; that descriptor already existed. Added `compat.boost-any` and `compat.boost-circular-buffer`; the latter's transitive include closure also required adding `compat.boost-concept-check`.
7
7
- Added Boost component versions all follow the index's 1.92.0 train:
@@ -11,5 +11,6 @@
11
11
- SHA-256 values above were computed twice per archive. CN mirrors are not configured; descriptors use plain upstream URL strings until matching GitCode assets are available.
12
12
- muduo depends on `compat.boost-any`, `compat.boost-circular-buffer`, and existing `compat.boost-utility`.
- Verification: `mcpp test -p boost-any`, `mcpp test -p boost-circular-buffer`, `mcpp test -p boost-concept-check`, and `mcpp test -p muduo` passed on the local Linux toolchain. The environment emitted its existing default-SubOS-description warning; it did not fail these runs.
15
-
- Platform caveat: all source descriptors declare the three xpm platforms, but muduo behavior is intended for Linux/macOS; macOS/Windows CI still needs to establish actual support.
14
+
- CI exposed three unsupported assumptions: macOS lacks Linux `epoll`/`timerfd`, Windows lacks POSIX `pthread.h`/`netinet/in.h`, and LLVM/libc++ at C++23 does not provide `shared_ptr::unique()` (removed in C++20). The first two are fixed by publishing muduo only on Linux and gating its member dependency; the last by an install hook replacing the single upstream `connection_.unique()` call with `connection_.use_count() == 1`, preserving its meaning. LLVM's Linux sysroot also requires an explicit `<time.h>` in `Timestamp.cc` for `struct tm`; the same hook inserts that include. Each edit checks an exact-one match and retains the upstream archive SHA.
15
+
- Verification: `mcpp xpkg parse --all-os pkgs/c/compat.muduo.lua` reports Linux only; after a cold local install, `mcpp test -p muduo` passed under GCC 16.1.0 and `mcpp test -p muduo --toolchain llvm@22.1.8` passed under LLVM 22.1.8. The three Boost component members passed the original macOS and Windows CI checks. The local environment emitted a default-SubOS-description warning; it did not fail the runs.
16
+
- With the CI-pinned mcpp 2026.10.1.2 and LLVM 22.1.8, a fresh muduo install plus `mcpp test -p muduo --toolchain llvm@22.1.8 --cache off` passed (`buffer ... ok; test result ok. 1 passed; 0 failed`). macOS and Windows gates need confirmation from the next CI run.
0 commit comments