What's Changed
- Added macro
PRO_DEF_FREE_AS_MEM_DISPATCH
to facilitate authoring a dispatch type of a free function, while providing accessibility through a member function. - Improved accessibility for reflection. Specifically,
- Added support for "accessors" in a custom reflector type. See function template
proxy_reflect
for more details. - Added support for "indirect" reflections, similar to conventions. See alias template
basic_facade_builder::add_reflection
for more details. - Added the named requirements ProReflection.
- Added support for "accessors" in a custom reflector type. See function template
- Improved code generation in non-optimized builds to facilitate debugging. Specifically,
- Added assertions against null pointers in
proxy::proxy()
,proxy_invoke()
, andproxy_reflect()
. - Added guidance to encourage compilers to generate code for accessibility, even if they are not used in a binary (see #200 and #202 for more details).
- Relaxed the named requirements ProAccessible to facilitate implementation of the debugging facilities.
- Added assertions against null pointers in
- Added benchmarks for the library. See Analyzing the Performance of the “Proxy” Library for more details.
- Added support for the NVIDIA HPC compiler as per @pedronahum's feedback. Specifically,
- Fixed unit tests to enable compilation with the NVIDIA HPC compiler.
- Added a new validation pipeline to ensure it won't regress.
- Updated README accordingly.
- Fixed unit tests when building with clang-cl on Windows as per @frederick-vs-ja's feedback.
- Improved documentation of some facilities. Specifically,
- Aligned wording of
allocate_proxy()
andmake_proxy_inplace()
with P3401R0. - Fixed typo in
basic_facade_builder::add_convention
by @ggqshr in #190. - Improved wording for
PRO_DEF_WEAK_DISPATCH
as per @Shuenhoy's feedback.
- Aligned wording of
- Revised the semantics of
proxy_invoke()
andproxy_reflect()
. - Improved pipeline infrastructure to facilitate engineering. Specifically,
- Enabled automated benchmarking for CI builds.
- Updated macOS image version to 15.
- Updated Ubuntu image version to 24.04.
- Improved release pipeline to generate a
proxy-{version}.tgz
package to facilitate consumption.
- Updated the value of feature test macro __msft_lib_proxy to
202410L
.
New Contributors
Full Changelog
- Fix broken link by @mingxwa in #161
- Update wording for allocate_proxy and make_proxy_inplace by @mingxwa in #163
- Fix documentation format by @mingxwa in #166
- Reduce semantics of
proxy_invoke
by @mingxwa in #167 - Update Ubuntu pipeline image by @mingxwa in #168
- Add benchmarks by @mingxwa in #169
- Resolve warnings in unit tests by @mingxwa in #173
- Pump library version by @mingxwa in #172
- Add assertion for
proxy_invoke()
andproxy_reflect()
by @mingxwa in #175 - [Build] Update macOS to 15 by @mingxwa in #176
- Improve benchmarking command line by @mingxwa in #177
- Force enable EBO on MSBuild when building with clang-cl by @mingxwa in #179
- Resolve build issues for NVHPC by @mingxwa in #182
- Generate benchmarking report by @mingxwa in #181
- Stabilize benchmarking report by @mingxwa in #183
- Implement
PRO_DEF_FREE_AS_MEM_DISPATCH
by @mingxwa in #189 - Update add_convention.md by @ggqshr in #190
- Implement accessibility support for reflection by @mingxwa in #191
- Add pipeline for NVHPC by @mingxwa in #197
- Improve accessibility in debugging by @mingxwa in #200
- Refactor unit tests by @mingxwa in #201
- Improve accessibility in debugging for free functions by @mingxwa in #202
- Improve release pipeline by @mingxwa in #203
- Improve wording for PRO_DEF_WEAK_DISPATCH by @mingxwa in #204
- Fix release pipeline by @mingxwa in #205
- Fix NVIDIA trade name by @mingxwa in #206