Skip to content

Revert std::malloc/std::free to global malloc/free (#4569)#4570

Merged
vitaut merged 4 commits intofmtlib:masterfrom
rohitsutreja:fix-malloc-free-namespace
Oct 10, 2025
Merged

Revert std::malloc/std::free to global malloc/free (#4569)#4570
vitaut merged 4 commits intofmtlib:masterfrom
rohitsutreja:fix-malloc-free-namespace

Conversation

@rohitsutreja
Copy link
Copy Markdown
Contributor

@rohitsutreja rohitsutreja commented Oct 10, 2025

Fixes #4569.

This reverts the change from malloc/free to std::malloc/std::free introduced in #4477.
Using the std:: versions broke compatibility with global allocator overrides (e.g. mimalloc), since std::malloc can’t be intercepted.

Fix

Switched back to global malloc / free.

@rohitsutreja rohitsutreja changed the title Revert std::malloc/std::free to global malloc/free Revert std::malloc/std::free to global malloc/free (#4569) Oct 10, 2025
@rohitsutreja rohitsutreja requested a review from vitaut October 10, 2025 14:38
@rohitsutreja rohitsutreja requested a review from vitaut October 10, 2025 15:46
@vitaut vitaut merged commit b77a751 into fmtlib:master Oct 10, 2025
41 checks passed
@vitaut
Copy link
Copy Markdown
Contributor

vitaut commented Oct 10, 2025

Thank you!

@rohitsutreja rohitsutreja deleted the fix-malloc-free-namespace branch October 10, 2025 17:38
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Nov 2, 2025
# 12.1.0 - 2025-10-29

- Optimized `buffer::append`, resulting in up to ~16% improvement on spdlog
  benchmarks (fmtlib/fmt#4541). Thanks @fyrsta7.

- Worked around an ABI incompatibility in `std::locale_ref` between clang and
  gcc (fmtlib/fmt#4573).

- Made `std::variant` and `std::expected` formatters work with `format_as`
  (fmtlib/fmt#4574,
  fmtlib/fmt#4575). Thanks @phprus.

- Made `fmt::join<string_view>` work with C++ modules
  (fmtlib/fmt#4379,
  fmtlib/fmt#4577). Thanks @Arghnews.

- Exported `fmt::is_compiled_string` and `operator""_cf` from the module
  (fmtlib/fmt#4544). Thanks @CrackedMatter.

- Fixed a compatibility issue with C++ modules in clang
  (fmtlib/fmt#4548). Thanks @tsarn.

- Added support for cv-qualified types to the `std::optional` formatter
  (fmtlib/fmt#4561,
  fmtlib/fmt#4562). Thanks @OleksandrKvl.

- Added demangling support (used in exception and `std::type_info` formatters)
  for libc++ and clang-cl
  (fmtlib/fmt#4542,
  fmtlib/fmt#4560,
  fmtlib/fmt#4568,
  fmtlib/fmt#4571).
  Thanks @FatihBAKIR and @rohitsutreja.

- Switched to global `malloc`/`free` to enable allocator customization
  (fmtlib/fmt#4569,
  fmtlib/fmt#4570). Thanks @rohitsutreja.

- Made the `FMT_USE_CONSTEVAL` macro configurable by users
  (fmtlib/fmt#4546). Thanks @SnapperTT.

- Fixed compilation with locales disabled in the header-only mode
  (fmtlib/fmt#4550).

- Fixed compilation with clang 21 and `-std=c++20`
  (fmtlib/fmt#4552).

- Fixed a dynamic linking issue with clang-cl
  (fmtlib/fmt#4576,
  fmtlib/fmt#4584). Thanks @FatihBAKIR.

- Fixed a warning suppression leakage on gcc
  (fmtlib/fmt#4588). Thanks @ZedThree.

- Made more internal color APIs `constexpr`
  (fmtlib/fmt#4581). Thanks @ishani.

- Fixed compatibility with clang as a host compiler for NVCC
  (fmtlib/fmt#4564). Thanks @valgur.

- Fixed various warnings and lint issues
  (fmtlib/fmt#4565,
  fmtlib/fmt#4572,
  fmtlib/fmt#4557).
  Thanks @LiangHuDream and @teruyamato0731.

- Improved documentation
  (fmtlib/fmt#4549,
  fmtlib/fmt#4551,
  fmtlib/fmt#4566,
  fmtlib/fmt#4567,
  fmtlib/fmt#4578,).
  Thanks @teruyamato0731, @petersteneteg and @zimmerman-dev.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Usage of std::malloc/free prevents global memory allocator cusomization

2 participants