Skip to content

Version 2.2.1 - #140

Merged
Kim-J-Smith merged 12 commits into
mainfrom
version-2.2.1
Aug 14, 2026
Merged

Version 2.2.1#140
Kim-J-Smith merged 12 commits into
mainfrom
version-2.2.1

Conversation

@Kim-J-Smith

Copy link
Copy Markdown
Owner

🔧 Fixed Bugs

⚠️ Breaking Changes

  • None.

✨ New Features

🛠️ Optimizations and Improvements

📌 Notes

  • Benchmark now requires C++20 because of the proxy dependency.

Kim-J-Smith and others added 12 commits August 9, 2026 21:03
* feat & perf: add ADL swap() function.

* style: adjust the format of trivially_move.

* resolve review comments.
* fix: fix wrong `INTERFACE` bug in CMakeLists.txt.

* ci: add Sanitizer.

* fix: install libclang-rt-$v-dev for clang.

* fix: remove -fsanitize=undefined in GCC to avoid bug.

* docs: add comments for GCC bug.
* fix: freestanding.

* docs: update `release_notes.md`.

* test: add tests for freestanding.

* fix: no link to fix bug in clang.
* refactor: construct ErasurePass directly with const ptr.

* refactor: remove `const_cast` in operator().

* fix: avoid using double underscore `__` according to [lex.name]/4.1 .

* style: simplify the operator().

* fix: GCC 16 ipa-cp workaround.

* resolve review comments.

* resolve review comments.
* fix: fix warning `-Wuninitialized`.

* fix: fix bug in test.

* docs: update `release_notes.md`.

* resolve review comments.
… setup (#137)

## Summary
Add [ngcpp/proxy](https://github.com/ngcpp/proxy) (a C++20 pointer-semantics based polymorphic wrapper) as a new comparison target across the runtime benchmarks, and refresh the benchmark build configuration and related docs/CI.

## Changes
### Benchmark (new proxy comparisons)
- Add proxy (pro) to benchmark.hpp include and benchmark/CMakeLists.txt as a benchmark target.
- Add pro cases to existing benchmark suites:
- benchmark_lambda.cpp: scalar / trivial / call-trivial lambda calls.
- benchmark_move_only_function.cpp: scalar, small-trivial, multi-trivial parameter forwarding.
- benchmark_assignment.cpp: copy/move assignment for small-trivial, large-capture, stateless, function-pointer and same-type cases.
- benchmark_create.cpp: capture-lambda and non-trivial-functor creation.
- benchmark_std_op.cpp, benchmark_free_function.cpp: additional pro cases.
- Vendor proxy v4 source under benchmark/runtime/proxy/.
### Benchmark config
- Switch compile flags from -Os to -O2 (fixes the strange bug on MinGW).
- Adjust BENCHMARK_TIMES to {1000, 1000000} and BENCHMARK_REPEAT to 15.
- Require C++20 (proxy needs C++20; function2 still works).
Fixes
- Add a missing `volatile` in `MoveOnlyFunction.Params.SmallTrivial`
### Docs / CI
- Update README.md benchmark results section , add references to P2721 (deprecating std::function) and P3086 (proxy).
- Update `benchmark/README.md`, `test/README.md` for the new commands.
- benchmark.yml: drop unused ninja-build install and use --parallel.
* resolve agent comments.

* docs: add PR number to `release_notes.md`.
@Kim-J-Smith Kim-J-Smith self-assigned this Aug 13, 2026
@Kim-J-Smith Kim-J-Smith added new version The candidate for next release version. careful review Complex pull request, which needs more careful review. labels Aug 13, 2026
Comment thread include/embed/embed_function.hpp

@Kim-J-Smith Kim-J-Smith left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Kim-J-Smith
Kim-J-Smith merged commit 79198d5 into main Aug 14, 2026
15 checks passed
@Kim-J-Smith
Kim-J-Smith deleted the version-2.2.1 branch August 14, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

careful review Complex pull request, which needs more careful review. new version The candidate for next release version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant