Skip to content

Proxy 3.4.0 – Forward-compatibility release 🚀

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 12 Jun 03:26
· 21 commits to main since this release

3.4.0 adds no new APIs, but it paves the way for Proxy 4 and later majors.

What’s inside

  • Forward-compatibility scaffolding

    • Public headers now live in a versioned inline namespace (pro::v3).
    • Every macro has a major-qualified alias (e.g. PRO3_DEF_MEM_DISPATCH).
    • Lets two majors coexist in one translation unit without ODR violations.
    • Idea by @SidneyCogdill, implemented by @SidneyCogdill and @mingxwa.
  • Toolchain fix

    • Resolved a build failure on Clang 20 — thanks @iKoznov.

Upgrading

  1. Treat 3.4.0 like any other 3.x patch/minor update; no code changes required.

  2. After Proxy 4 ships, migrate module-by-module:

    #include <proxy/v3/proxy.h>  // current
    #include <proxy/v4/proxy.h>  // new
    
    pro::v3::foo();  // existing code
    pro::v4::foo();  // migrated code
  3. When every target depends only on v4, drop v3 and remove pro::v3:: qualifiers.

See the updated FAQ ("How do I upgrade Proxy in a large codebase?") for details.

Full changelog: 3.3.0...3.4.0