Skip to content

[asio] update to 1.36.0#47271

Draft
miyanyan wants to merge 4 commits intomicrosoft:masterfrom
miyanyan:asio-1.36.0
Draft

[asio] update to 1.36.0#47271
miyanyan wants to merge 4 commits intomicrosoft:masterfrom
miyanyan:asio-1.36.0

Conversation

@miyanyan
Copy link
Copy Markdown
Contributor

@miyanyan miyanyan commented Sep 9, 2025

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

Fixes #49576

@miyanyan
Copy link
Copy Markdown
Contributor Author

miyanyan commented Sep 9, 2025

port status
hpx wait for 1.11.1, TheHPXProject/hpx#6747
nrf-ble-driver This repository was archived by the owner on Apr 18, 2024. It is now read-only.
opendnp3 This repository was archived by the owner on Sep 1, 2022. It is now read-only.
pulsar-client-cpp apache/pulsar-client-cpp#561
sese libsese/sese#98, the author will archive it
tcp-pubsub wait for #49552

@miyanyan miyanyan marked this pull request as draft September 9, 2025 13:07
@vicroms
Copy link
Copy Markdown
Member

vicroms commented Apr 21, 2026

AI review (shortened by me since miyanyan already identified the ports that need to be updated or delisted):


Summary

This PR updates ASIO from version 1.32.0 to 1.36.0, which introduces breaking API changes that cause compilation failures in 10 unique ports across multiple platforms.

🔴 Root Cause Analysis

ASIO 1.36.0 Breaking API Changes

ASIO version 1.36.0 introduced significant API changes that are incompatible with code written for ASIO 1.32.0:

1. Removal of asio::io_service

  • Breaking Change: asio::io_service was deprecated and removed in ASIO 1.36.0
  • Replacement: Code should use asio::io_context instead
  • Affected: opendnp3, tcp-pubsub, vcpkg-ci-rest-rpc, and others that use this class
  • Error Example:
    error C2039: 'io_service': is not a member of 'asio'
    error C2065: 'io_service': undeclared identifier
    

2. Timer Method Signature Changes

  • Breaking Changes:
    • cancel() method now requires zero arguments (was taking std::error_code)
    • expires_at() method now requires arguments (was taking zero arguments)
  • Affected Files:
    • exe4cpp/asio/AsioSystemTimer.h (opendnp3 dependency)
    • exe4cpp/asio/AsioTimer.h (opendnp3 dependency)
  • Error Example:
    error C2660: 'asio::basic_waitable_timer<...>::cancel': 
               function does not take 1 arguments
    

3. Executor API Changes

  • Breaking Change: get_executor() method signatures changed
  • Affected: HPX and other high-performance computing ports
  • Error Example:
    error C2039: 'get_executor': is not a member of 'std::shared_ptr'
    

📊 Failure Summary by Category

Category Count Details
io_service API removal 5 ports opendnp3, tcp-pubsub, vcpkg-ci-rest-rpc, and others
Timer method signature changes 2 ports opendnp3 (via exe4cpp), others
Executor API changes 2 ports hpx, pulsar-client-cpp
General ASIO incompatibility 3 ports sese, nrf-ble-driver, others

⚠️ Known / Expected Failures in Baseline

The following ports were already failing in the baseline (before this PR), so their failure is not a regression caused by this update. However, the failures may now be due to different root causes:

Port Triplet(s) Baseline Entry Status
hwloc arm-neon-android, arm64-android, x64-android fail Known failure
nrf-ble-driver arm-neon-android, arm64-android, arm64-linux, x64-android fail Known failure
openmpi arm-neon-android, arm64-android, x64-android fail Known failure
spscqueue arm-neon-android, arm64-android, x64-android fail Known failure

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.

[asio] update to 1.36.0

2 participants