Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The renamed feature macro and test guard still use implementation-reserved C++ identifiers.
2 open findings
What changed in this PR
Renames active Microsoft-era identifiers to Next Gen C++ Foundation equivalents across public APIs, build systems, tests, documentation, and CI.
Changes:
- Renames feature-test macros and header guards.
- Renames CMake/Meson packages, targets, and dependencies.
- Updates documentation, benchmarks, tests, and workflows.
| File | Description |
|---|---|
tests/utils.h |
Renames test header guard. |
tests/modules/CMakeLists.txt |
Renames module test targets. |
tests/meson.build |
Renames Meson test dependency and executable. |
tests/freestanding/meson.build |
Renames freestanding Meson test identifiers. |
tests/freestanding/CMakeLists.txt |
Renames freestanding CMake targets. |
tests/CMakeLists.txt |
Renames main CMake test target. |
README.md |
Updates CMake and Meson usage examples. |
meson.build |
Renames the Meson project and dependency. |
include/proxy/v4/proxy.h |
Renames header guard. |
include/proxy/v4/proxy_macros.h |
Renames guards and feature-test macros. |
include/proxy/v4/proxy_fmt.h |
Renames guards and macro check. |
include/proxy/v4/detail/skills.h |
Renames header guard. |
include/proxy/v4/detail/proxy_creation.h |
Renames header guard. |
include/proxy/v4/detail/facade_creation.h |
Renames header guard. |
include/proxy/v4/detail/dispatch.h |
Renames header guard. |
include/proxy/v4/detail/core.h |
Renames header guard. |
include/proxy/v4/detail/compatibility_check.h |
Renames header guard. |
include/proxy/proxy.h |
Renames header guard. |
include/proxy/proxy_macros.h |
Renames header guard. |
include/proxy/proxy_fmt.h |
Renames header guard. |
docs/spec/README.md |
Updates feature-macro reference. |
docs/spec/ngcpp_lib_proxy.md |
Renames feature-macro documentation. |
docs/spec/.pages |
Updates documentation navigation. |
docs/modules_support.md |
Updates module-consumption instructions. |
docs/meson.build |
Renames documentation dependency. |
docs/faq.md |
Updates feature-macro references. |
docs/CMakeLists.txt |
Renames documentation project dependency. |
CMakeLists.txt |
Renames package, targets, exports, and variables. |
cmake/ngcpp_proxy4ModuleTargets.cmake |
Adds renamed module-target configuration. |
cmake/ngcpp_proxy4Config.cmake.in |
Adds renamed package configuration. |
cmake/msft_proxy4ModuleTargets.cmake |
Removes obsolete module configuration. |
cmake/msft_proxy4Config.cmake.in |
Removes obsolete package configuration. |
benchmarks/meson.build |
Renames Meson benchmark identifiers. |
benchmarks/CMakeLists.txt |
Renames CMake benchmark target. |
.github/workflows/pipeline-release.yml |
Updates release version extraction. |
.github/workflows/bvt-oneapi.yml |
Updates benchmark executable path. |
.github/workflows/bvt-nvhpc.yml |
Updates benchmark executable path. |
.github/workflows/bvt-msvc.yml |
Updates benchmark executable path. |
.github/workflows/bvt-gcc.yml |
Updates benchmark executable path. |
.github/workflows/bvt-clang.yml |
Updates benchmark executable path. |
.github/workflows/bvt-appleclang.yml |
Updates benchmark executable path. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
The PR description is out of date |
| ``` | ||
|
|
||
| Starting with 3.0.0, Proxy ships a feature-test macro that encodes the library version. When headers from different major versions of the Proxy library can appear in the same translation unit (for example, Proxy 4 and Proxy 5), use the major-qualified form `__msft_lib_proxy<major>` (e.g., `__msft_lib_proxy5`). | ||
| Starting with 3.0.0, Proxy ships a feature-test macro that encodes the library version. When headers from different major versions of the Proxy library can appear in the same translation unit (for example, Proxy 4 and Proxy 5), use the major-qualified form `__ngcpp_lib_proxy<major>` (e.g., `__ngcpp_lib_proxy5`). |
There was a problem hiding this comment.
Proxy 4 doesn't have a major-qualified __ngcpp_lib_proxy macro. We should reword this somehow
There was a problem hiding this comment.
🤖 Reworded this to say the major-qualified __ngcpp_lib_proxy5 starts with Proxy 5.
There was a problem hiding this comment.
- The table still lists values of __ngcpp_lib_proxy for 3.0.0 through 4.1.0. Those releases only ever defined __msft_lib_proxy.
- The example's #elif __ngcpp_lib_proxy >= 202408L → "Proxy 3.x" branch still can never be true. The "4.0.0 or above" message is wrong in the same way, because no 4.x release defines this macro.
- Suggested fix: rename the table column to something like "Value of the feature-test macro" and add one line saying releases before 5.0.0 defined it as __msft_lib_proxy. Also add a 5.0.0 row and change the example to versions that use the new name.
updated. |


Summary
Rename the remaining active Microsoft-era identifiers from
msft/MSFTtongcpp/NGCPPon the Proxy 5 branch, following the project's move to the Next Gen C++ Foundation.Changes
__msft_lib_proxy→__ngcpp_lib_proxy__msft_lib_proxy5→__ngcpp_lib_proxy5__ngcpp_lib_proxy5.msft_proxy*tongcpp_proxy*.MSFT_PROXYheader guards withNGCPP_PROXY.Compatibility
This is a breaking rename for consumers that directly reference the old CMake or Meson package names, targets, or variables. Those references must be updated to their
ngcppequivalents.The old feature-test macros remain available as deprecated aliases for source compatibility.
Validation
msftidentifiers ormsft-named files remain outside the deprecated compatibility aliases.mkdocs build --strictpasses.