Skip to content

libarchive-m 3.8.7: libarchive as C++23 modules (mcpplibs.mwrap.libarchive) - #1

Merged
Sunrisepeak merged 2 commits into
mainfrom
mwrap-3.8.7
Nov 6, 2026
Merged

Sunrisepeak merged 2 commits into
mainfrom
mwrap-3.8.7

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

libarchive 3.8.7 as C++23 modules over compat.libarchive 3.8.7, the first release of the mwrap identity mcpplibs.mwrap.libarchive (mcpp-index docs/mwrap.md). The language server (mcppls) imports it in place of including <archive.h> (mcpp design record 2026-11-07, D10).

Contents

  • mcpplibs.mwrap.libarchive: the 453 functions and 16 types of <archive.h> and <archive_entry.h>, upstream names in the global namespace; the two Windows-only declarations on Windows. The module defines LIBARCHIVE_STATIC before the headers, as compat.libarchive compiles (defines in tools/surface.toml).
  • mcpplibs.mwrap.libarchive.macros: 173 constant macros, same names, in mcpplibs::mwrap::libarchive::macros.
  • <mwrap/libarchive/macros.hpp>: empty in this release (no macro with arguments for a user).
  • tools/generate.py writes the module, the mapping, the macro header and two tests (every constant against its macro; every exported function linked) from the headers as clang reads them with the build's flags; --check audits them on every LLVM row.
  • Tests: pax+gzip, ustar+xz, cpio+zstd, gnutar+bzip2, ZIP and 7-Zip written to memory and read back with format and filter detected; entry metadata through a clone; garbage refused; version; header mixing. Upstream's test suite (312 sources, 702 tests) over the same library; one test fails by compat.libarchive's UTF-8 locale configuration and is listed as expected with its reason. Default template bundle.

Local results (Linux x86_64)

Check Result
mcpp test, GCC 16.1.0 / LLVM 23.1.3 / GCC 16.1.0 --target x86_64-linux-musl 4/4 passed each
tools/generate.py --check 0 problems
tools/run_conformance.py 702 tests, 1 failed, 1 of them expected
tools/test_template.py template built and ran
tools/check_mwrap_release.py mcpplibs.mwrap.libarchive@3.8.7

After merge: tag mwrap-3.8.7, GitCode mirror, mcpp-index pkgs/mwrap/libarchive.lua and tests/mwrap/libarchive.

Sunrisepeak and others added 2 commits November 7, 2026 06:22
…chive)

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ration is the suite's

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit 4e1b7c6 into main Nov 6, 2026
6 checks passed
@Sunrisepeak
Sunrisepeak deleted the mwrap-3.8.7 branch November 6, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant