| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| proxy-3.3.0.tgz | 2025-03-20 | 17.1 kB | |
| Proxy 3.3.0 Release source code.tar.gz | 2025-03-18 | 99.1 kB | |
| Proxy 3.3.0 Release source code.zip | 2025-03-18 | 180.0 kB | |
| README.md | 2025-03-18 | 5.4 kB | |
| Totals: 4 Items | 301.6 kB | 0 | |
New Features 🌟
- Added facilities for shared/weak ownership by @mingxwa in https://github.com/microsoft/proxy/pull/264:
- function template
make_proxy_shared: Similar to instantiating aproxywithstd::shared_ptr, but- Without additional type-erasure on the deleter,
- Having a more compact memory layout without requiring a separate control block,
- Without weak ownership support if not desired.
- function template
allocate_proxy_shared: Similar tomake_proxy_shared()while supports any custom allocators. - alias template
weak_proxyand class templateweak_facade: Specifyproxywith weak ownership. basic_facade_builder::support_weak: Specifies that afacadetypeFsupports conversion fromproxy<F>toweak_proxy<F>.- function template
make_proxy_viewby @mingxwa in https://github.com/microsoft/proxy/pull/265: Similar to creating aproxy_viewfrom a raw pointer, but honors constness and reference semantics. - concept
proxiable_targetby @mingxwa in https://github.com/microsoft/proxy/pull/265: Specifies that a reference type can instantiate aproxy_view.
Quality Improvements 🔬
- Improved diagnostics by reducing constraints by @mingxwa in https://github.com/microsoft/proxy/pull/262. Thanks to @SidneyCogdill for the great idea!
- Allowed creating
proxyfrom a null pointer by @mingxwa in https://github.com/microsoft/proxy/pull/260 - Prefered static
operator()if available by @mingxwa in https://github.com/microsoft/proxy/pull/267 - Constrained
proxywithfacadeby @mingxwa in https://github.com/microsoft/proxy/pull/263 - Switched lifetime convention to standard dispatch model by @mingxwa in https://github.com/microsoft/proxy/pull/269
- Aligned behavior of direct and indirect
proxy_invokewith rvalue reference by @mingxwa in https://github.com/microsoft/proxy/pull/271
Toolchain Updates 🛠️
- Added benchmarks for shared ownership both in indirect invocation and lifetime management by @mingxwa in https://github.com/microsoft/proxy/pull/264. Below are the numbers from a recent CI build:
| MSVC on Windows | GCC on Ubuntu | Clang on Ubuntu | Apple Clang on macOS | NVIDIA HPC on Ubuntu | |
|---|---|---|---|---|---|
Indirect invocation on small objects via proxy vs. virtual functions (shared ownership) |
🟢proxy is about 327.6% faster |
🟢proxy is about 83.2% faster |
🟢proxy is about 46.1% faster |
🟢proxy is about 26.8% faster |
🟢proxy is about 75.5% faster |
Indirect invocation on large objects via proxy vs. virtual functions (shared ownership) |
🟢proxy is about 165.3% faster |
🟢proxy is about 28.4% faster |
🟢proxy is about 20.8% faster |
🔴proxy is about 5.1% slower |
🟢proxy is about 8.6% faster |
Basic lifetime management for small objects with proxy (shared ownership) vs. std::shared_ptr (both without memory pool) |
🟢proxy is about 11.8% faster |
🟢proxy is about 10.8% faster |
🟢proxy is about 8.5% faster |
🟢proxy is about 37.5% faster |
🟢proxy is about 8.8% faster |
Basic lifetime management for small objects with proxy (shared ownership) vs. std::shared_ptr (both with memory pool) |
🟢proxy is about 5.7% faster |
🟡proxy is about 4.0% faster |
🟢proxy is about 21.5% faster |
🟢proxy is about 30.5% faster |
🟡proxy is about 1.6% faster |
Basic lifetime management for large objects with proxy (shared ownership) vs. std::shared_ptr (both without memory pool) |
🟢proxy is about 21.1% faster |
🟢proxy is about 6.0% faster |
🟡proxy is about 0.4% slower |
🟢proxy is about 48.9% faster |
🟢proxy is about 8.7% faster |
Basic lifetime management for large objects with proxy (shared ownership) vs. std::shared_ptr (both with memory pool) |
🟢proxy is about 17.7% faster |
🟢proxy is about 11.2% faster |
🟢proxy is about 29.1% faster |
🟢proxy is about 10.5% faster |
🟡proxy is about 4.5% faster |
- Attached environment information to benchmarking report by @mingxwa in https://github.com/microsoft/proxy/pull/270
- Revised documentation for 3.3.0 by @mingxwa in https://github.com/microsoft/proxy/pull/272
Full Changelog: https://github.com/microsoft/proxy/compare/3.2.1...3.3.0