Skip to content

Boost 1.85.0 for iOS

Choose a tag to compare

@github-actions github-actions released this 31 Aug 10:15

Boost is a large, peer-reviewed collection of portable C++ libraries that both fills gaps in the standard library and serves as a proving ground for features—many of which (like smart pointers, regex, and filesystem) later get adopted into the C++ standard itself.

Precompiled Boost 1.85.0 XCFramework for arm64 iOS devices and arm64/x86_64 iOS Simulator. Includes all headers, compiled-component inventories, CMake and pkg-config metadata.

Included compiled libraries

  • boost_chrono — Compiled date and time duration support.
  • boost_date_time — Compiled date/time library retained for build compatibility.
  • boost_filesystem — Compiled Filesystem v4 with error-code observer coverage.
  • boost_graph — Compiled Graph algorithms.
  • boost_locale — Compiled localization backends without optional ICU packaging.
  • boost_random — Compiled random_device implementation.
  • boost_system — Error-code support required by several compiled libraries.
  • boost_thread — Portable threading primitives.
  • boost_context — Architecture-specific fcontext implementation.
  • boost_nowide — Compiled UTF-8 adapters.
  • boost_json — Compiled parser and DOM support.
  • boost_serialization — Compiled archive support.
  • boost_url — Compiled URL parser.
  • boost_container — Compiled polymorphic memory resources.
  • boost_log — Compiled logging core and setup support.
  • boost_stacktrace — Compiled portable basic backend only.
  • boost_timer — Compiled CPU timer.
  • boost_type_erasure — Compiled dynamic binding support.
  • boost_cobalt — Compiled C++20 coroutine library carried forward from Boost 1.84.
  • boost_charconv — New compiled locale-independent numeric conversion library; required by Boost.MySQL.

All Boost headers are included. Header-only facilities remain available even
when their related compiled library is not part of the combined static binary.

Release features and exclusions

Boost 1.85.0 was released on April 15, 2024. This package remains on C++20
with an iOS 12.0 deployment target.

New libraries

  • Charconv is included as a compiled static library. Dedicated tests cover
    integer and floating-point conversion, invalid input, and overflow. All
    three Apple slices are checked for Charconv symbols and for the absence of
    libquadmath references.
  • Scope is packaged header-only. Separate tests cover scope_exit,
    scope_success/scope_fail, and unique_resource.

Correctness and regression coverage

The official Boost.Container known-issue patch for flat_map and
flat_multimap is applied before building. The release suite includes a
regression for the affected insertion path and will not release an unpatched
1.85 package.

Offline Boost.MySQL coverage is retained and now exercises its required
compiled Charconv dependency. Additional one-per-frame tests cover JSON
private described members, path conversion and rvalue visitation; LEAF
try_capture_all; Random splitmix64; Core functor; PFR local-type field
names; and Locale char8_t linkage.

Cobalt and deterministic offline Redis coverage are carried forward. Redis
continues to use upstream separate compilation and has no invented static
archive.

Device and Simulator validation

Current target status:

  • official source SHA-256 verification: passed;
  • Boost 1.85 compatibility patch dry-run: passed;
  • official Boost.Container flat-map patch dry-run: passed;
  • three-slice compile/link validation: passed (device arm64, Simulator arm64 and x86_64);
  • Charconv archive and three-slice symbol validation: passed;
  • Apple-slice libquadmath absence check: passed;
  • standalone XCFramework example validation: passed for all three slices;
  • SwiftPM packaging validation: passed for arm64 and x86_64 Simulator;
  • local CocoaPods consumer-project validation: passed;
  • generic arm64 Simulator and device Xcode builds: passed;
  • arm64 iOS Simulator runtime suite: passed with ALL TESTS PASSED;
  • physical arm64 iOS device runtime suite: passed (maintainer-confirmed).

Only checks observed locally or in CI will replace the pending entries.