Releases: Smertig/rcmp
Releases · Smertig/rcmp
v0.2.2
Full Changelog: v0.2.1...v0.2.2
Nothing interesting, maintenance release.
Change Log
- 🛠 Cleanup CMake: don't set C++ standard globally; don't build with "warning as errors" mode anymore
- 🛠 Improve CI: drop legacy clang-5 configuration, update deprecated actions
v0.2.1
Full Changelog: v0.2.0...v0.2.1
This release is mostly about refactoring of rcmp
internals with one new feature.
Change Log
- ✨ [x86] Introduce
rcmp::hook_function_stateless
that doesn't use global state for hooks and thus is more handy.- Previously, one had to use unique tags for each hook (or call
hook_function
with unique lambda type) to ensure global hook state uniqueness. This is no longer required withhook_function_stateless
. However, it uses TLS to forward hook state through function calls so is not enabled by default yet.
- Previously, one had to use unique tags for each hook (or call
- 🛠 Improve CI: use more to run tests: gcc 7-12, clang 5-15, MSVC 2022 for both x86 and x64 toolchains.
- 🛠 Refactor internals to deal with new customization points
v0.2.0
Full Changelog: v0.1.0...v0.2.0
This is mostly maintenance release.
Change Log
- Remove
rcmp::opcode_length
andrcmp::make_raw_hook
from public API - Add
rcmp::hook_indirect_function
that allows to hook virtual functions (and more) - Add
rcmp::with_signature<..>
utility, that is used to change calling convention of callable at compile-time - Rework and simplify implementation
- Drop
std::function
for better inlining - Internal state of hook is now trivially constructible, so it doesn't require any additional initialization on program startup and can be used before
main()
- Drop
- Add
rcmp::generic_hook_function
as a generic way of function hooking (if you want to customizercmp
behaviour without digging into templates) - Move to github actions
Commits
- do not update replaced function in case of double hook (Smertig)
- 44e6226: Stop using type-erased holder for hook, check callable concept statically (Smertig)
- a37bc10: Make address_t ctor constexpr, add asserts (workaround for static initialization order fiasco) (int3)
- 7f01a4e: Implement rcmp::with_signature for compile-time signature conversions (Smertig)
- 66c33d0: Fix linkage error in tests (travis, gcc, x86) (Smertig)
- 10e743b: Simplify implementation of hook_function (Smertig)
- dcf7e56: Enable thiscall hooking tests on MSVC compiler (Smertig)
- 4d758a0: Simplify PMF tests (Smertig)
- 4dccfd9: Implement rcmp::hook_indirect_function (actually a way to hook virtual functions) (Smertig)
- 72cef84: Rewrite vtable test to prevent devirtualization (gcc) (Smertig)
- e57098b: Make
rcmp::detail::hook_impl
generic over hook policy (Smertig) - 354e98c: Introduce policy-based
rcmp::generic_hook_function
(Smertig) - eb3d5df: Remove
opcode_length
andmake_raw_hook
from public API (Smertig) - c6260f4: Move hook policies to separate files (Smertig)
- ae5a953: Missing include (Smertig)
- 47ad93d: Bump Catch version: v2.13.1 -> v2.13.10 (Smertig)