commit d9a5d38e5cd1c5d50c77d6bcff707d040c43e4de
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:   Fri Aug 15 13:32:29 2025 -0400

    bump version to 2.17.2

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 1b4eb9fb1180b2e20254b764e9da03a0bd0f47e7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 13:33:26 2025 -0400

    add BUILD.bazel to automake's EXTRA_DIST

M	Makefile.am

commit 86f938ab093a949d5a683905d706cb26a1a9c849
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 14 18:26:09 2025 -0400

    proc_maps_iterator: unbreak reading /proc/self/maps

    I recently added wrong code that attempted to detect and handle too
    long lines. But this code was never actually tested.

    On NetBSD PATH_MAX is relatively short, just 1k bytes and we're
    actually able to hit that (wrong) check. So we failed
    proc_maps_iterator_test there.

    This commit extracts ForEachLine logic into separate header, adds
    tests, exercises all cases and actually fixes the "line is too long"
    case.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
A	src/base/for_each_line.h
M	src/base/proc_maps_iterator.cc
A	src/tests/for_each_line_test.cc

commit 377e15e62598eb36c7068cb7f5476c4ab582de2d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 13:03:44 2025 -0400

    bazel: rename BUILD -> BUILD.bazel

    Some filesystems are case-insensitive and people commonly prefer
    build/ as a directory for out-of-tree builds (e.g. with cmake).

R100	BUILD	BUILD.bazel

commit a726aebea95f473e0e8008922c78acd424af9dbb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 12:55:14 2025 -0400

    proc_maps_iterator_test: put variable to .data, not .bss

    On FreeBSDs we used PHDRs to synthesize mappings, but PHDRs don't
    cover .bss. I am not sure how the test passed previously, but I see it
    fail at least now on FreeBSD 13. Putting variable into .data section,
    by initializing it, should make test more robust.

M	src/tests/proc_maps_iterator_test.cc

commit c80a9a6b7d678e11be5df5113aa73f687ea381a9
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 14 15:48:10 2025 -0400

    tcmalloc_unittest: un-flake the large allocs release test

    FreeBSD mmap sys-allocator is behaving "randomly" enough that old
    logic wasn't triggering the right sequences of addresses.

    So I had to rework the test a bit to actually ensure that we're
    allocating used/free addressess one exactly after the other.

    I also previously added stupid duplicate release rate reset, which was
    already there, but I was somehow blind enough not to spot it just 1
    line below! So this is removed.

    And this entire test is now separate function with hopefully helpful
    comments about what we're trying to achieve.

    Updates github #1604 and #1574

M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc

commit 94fb7079614bcefff23be52b4988c2381a9c31bc
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Aug 13 15:37:07 2025 -0400

    bump version to 2.17.1

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 2d277134c4b5c56d1c2912330aa44160af52aadf
Author: graysky <therealgraysky AT proton DOT me>
Date:	Thu Aug 7 02:35:01 2025 -0400

    stacktrace_libgcc-inl.h: fix build for some ARM toolchains

    On OpenWrt when bulding for arm_cortex-a15_neon-vpfv4 or
    arm_cortex-a9_vfpv3-d16, the build errors out due to an undefined
    symbol
    _URC_NORMAL_STOP. This usually happens when the required header
    (typically <unwind.h>) is not included, or the toolchain's unwind
    implementation does not provide this definition.

    Error:
    src/stacktrace_libgcc-inl.h: In function '_Unwind_Reason_Code
    libgcc_backtrace_helper(_Unwind_Context*, void*)':
    src/stacktrace_libgcc-inl.h:69:12: error: '_URC_NORMAL_STOP' was
    not declared in this scope
       69 |	return _URC_NORMAL_STOP;
	  |

    A work-around is to use URC_END_OF_STACK.

    Signed-off-by: graysky <therealgraysky AT proton DOT me>

M	src/stacktrace_libgcc-inl.h

commit 742e4e29c497a2780a4e7d02516b8c5e80978abd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Aug 4 20:25:44 2025 +0100

    bump version to 2.17

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 32f11cb4b777880f7ecff3edcb5bc04fd6f1dff1
Author: Jackie Cui <cui_jc@163.com>
Date:	Sat Jul 26 17:41:42 2025 +0800

    preferring normal spans to returned spans in PageHeap::AllocLarge

    Signed-off-by: Aliaksei Kandratsenka <alkondratenko@gmail.com>
    [alkondratenko@gmail.com: unflaked the test change]

M	src/page_heap.cc
M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc

commit 6b63d71bf5b7bf4023f2361c1a6a7346db466b1e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 3 20:00:02 2025 +0100

    tcmalloc_unittest: disable "normal" release in ReleaseToSystem test

    It could potentially flake the test.

M	src/tests/tcmalloc_unittest.cc

commit 940be25e1c5d12d776654670c38a994b2053da0c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Aug 2 14:14:27 2025 -0400

    bazel:mark gtest dependency as development

M	MODULE.bazel

commit 338e906eaec5cd136f392fe81d533935aafb0777
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 20:48:21 2025 -0400

    proc_maps_iterator: refactor and fix

    There was really annoying clang warning (and IMHO bogus too) about
    unused StringToInteger specialization. We also got github issue #1600
    about slightly incorrect proc maps-like line formatting. Somehow I
    also left some TODOs and diagnostic codes. So this code needed some
    cleanup.

    I also noticed that Linux kernel actually uses unsigned numbers for
    inodes, so there is really no need to do parsing of int64_t-s.

M	src/base/proc_maps_iterator.cc
M	src/base/proc_maps_iterator.h

commit 25234ef72d914c1ad43cde7726cccbf8f39c9169
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 20:04:44 2025 -0400

    Revert "[proc_maps_iterator]: fix annoying clang warning"

    I don't really understand how, but some apple's clang thing fails on
    this code.

    This reverts commit a798cd37e26587f7bff72ecf1a4ea0bef1e3bae4.

M	src/base/proc_maps_iterator.cc

commit a798cd37e26587f7bff72ecf1a4ea0bef1e3bae4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 19:02:13 2025 -0400

    [proc_maps_iterator]: fix annoying clang warning

    Looks like clang has some kind of heuristic detects unused template
    specialications defined in .cc file (not .h, because unused
    specializations are common). So lets avoid this warning by using
    C++-17 if-constexpr feature.

M	src/base/proc_maps_iterator.cc

commit 2b001ca54536a5272e12debc73ea5b901e65861c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 18:45:49 2025 -0400

    ppc: drop unused stacktrace_powerpc-inl.h header

    When we merged 75b65f96b0bb44d70e0a461a03a3f8c928390283 which split
    original frame-poiner-ful PPC backtracer, we somehow failed to delete
    the original. All those years it was lying there unused.

D	src/stacktrace_powerpc-inl.h

commit a0c62293af4de2ecdeaa5e2d3ec4d8dd9da43dd6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 18:41:03 2025 -0400

    ppc: implement a way to disable compilation of ppc backtracer

    Looks like at least on musl there are some issues with some ucontext
    defines. So lets at least make it possible to build stuff.

    See github issue #1602

M	src/stacktrace.cc

commit 15d5e70ca74c77b688871f8a79ea72a057547879
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jun 5 12:32:00 2025 -0400

    osx:heap-profiler_unittest: workaround failure to hide _tc_newarray

    Recent pprof update fixed another issue in leading underscore handling
    on OSX, but that somehow broke built-in filtering out of tcmalloc
    symbols. So for now lets manually hide tc_newarray there while
    investigating proper fix upstream.

    pprof reference: https://github.com/google/pprof/pull/939

M	src/tests/heap-profiler_unittest.sh

commit 6e09b8446e69dcbb205274681298058372651f1a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Apr 30 17:07:05 2025 -0400

    [stacktrace-libgcc] stop backtracing when reaching limit

    Sometimes we deal with very deeply recursive functions. In this case
    capturing backtraces via "libgcc" method was very slow as we
    "unwinded" every stack frame, much beyond what depth we're willing to
    actually capture. So lets fix it and stop when at the limit.

M	src/stacktrace_libgcc-inl.h

commit b2231683cc01ffbf090555f0e532c638b341e63c
Author: Salvatore Dipietro <dipiets@amazon.com>
Date:	Tue May 13 16:47:47 2025 -0700

    Adding 'sb' instruction to spin_delay() for ARM v8.5 onward

M	src/base/spinlock.cc

commit 83edb60836d87cf1b406e8846b9059c03031e8f5
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 16 19:38:45 2025 -0500

    bump version to 2.17rc

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 23268e84bc6e7c9af96e5cba7ef9a0b2e7f3a6e2
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 6 16:57:00 2025 -0500

    tcmalloc_unittest: fix exit status propagation for sub-process tests

M	src/tests/tcmalloc_unittest.cc

commit 5591bfd83ce77d7da0c74860e0f4a7f8ee8519db
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 5 21:13:20 2025 -0500

    ensure that heap-profiler_debug_unittest runs matching binary

M	src/tests/heap-profiler_unittest.sh

commit a81b2ebbc2cec046aed5d571cdc783c49b48843a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 11:49:39 2025 -0500

    put ATTRIBUTE_NOINLINE before function to unbreak MSVC

M	src/tcmalloc.cc

commit 9d40fae04162f993d8be6b8955074b7097f8dd32
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 10:16:35 2025 -0500

    amputate all the ATTRIBUTE_SECTION stuff

    It was used to implement GetCallerStackTrace feature where it would
    skip frames up to and including first call to tcmalloc functions. But
    it was ~always ELF-specific and required gcc extensions. For some time
    we also supported OSX with this feature but, Apple broke it
    semi-recently.

    Having to be careful around ATTRIBUTE_SECTION stuff caused
    complexities and corner cases across code base (i.e. such as being
    careful with effects of various optimization/debugging switches). And
    so we'll now be able to remove those complications.

    This special ".text.google_malloc" section also could interfere
    with some
    optimizations. So not anymore.

    Now that we don't have heap checker anymore, we don't need this
    feature. We keep GetCallerStackTrace API for ABI compatibility, but it
    will now simply do regular backraces. pprof has always been able to
    filter out "tcmalloc" symbols by looking at tcmalloc:: namespace and
    few known tcmalloc symbols (tc_new etc). And for example our "heap
    profiler" and malloc sampling facilities never used this API
    anyways (and relied on pprof filtering out tcmalloc stack frames).

M	src/base/basictypes.h
M	src/base/logging.h
M	src/libc_override_osx.h
M	src/malloc_hook.cc
M	src/tcmalloc.cc

commit e5e040e20bebf65da03a299bbb7dcdccaaa720eb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 10:08:41 2025 -0500

    tcmalloc_unittest: unbreak waitpid headers on !Linux

M	src/tests/tcmalloc_unittest.cc

commit 492ede8654946be96f68a142d4e65220e10489c4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 09:54:35 2025 -0500

    stacktrace_unittest: ensure we always use right leaf_capture_fn

    We had silly mistake of subsequent test runs "inheriting" old value of
    leaf_capture_fn. And it caused failures on FreeBSD (issue #1581)
    because libunwind run that was supposed to test regular stack trace
    capturing was instead using CaptureLeafUContext function that is known
    to fail on that OS.

M	src/tests/stacktrace_unittest.cc

commit caedecb5169b28415cbf4f8334e943254e696f2c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Feb 14 18:04:11 2025 -0500

    implement C23 free{_aligned}_sized functions

    As far as I can see, no libc-s ship those yet, however.

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit f3c9bd56d85fc81b7309c1585b95e2a9aba9e4e0
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 13 13:12:33 2025 -0500

    de-duplicate 2 forms for hidden visibility attribute

    Somehow, I managed to define both ATTRIBUTE_HIDDEN and
    ATTRIBUTE_VISIBILITY_HIDDEN and they're identical. Lets de-dup them at
    last.

M	src/base/basictypes.h
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/emergency_malloc.h
M	src/malloc_backtrace.cc
M	src/static_vars.h
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tcmalloc_internal.h
M	src/testing_portal.h

commit 1b2fef16b795303f8c87594e8991711b37e4b885
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 13 13:30:25 2025 -0500

    pacify "nullptr memcpy arg" condition in generic_writer.cc

M	src/base/generic_writer.cc

commit 1b9e9e0a2548a0e8d1d92d1ba269d3828a799dcc
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 12 18:37:23 2025 -0500

    ci: add github-page workflow to publish asciidoc docs

A	.github/workflows/github-pages.yml

commit f87a119557890eaac6d5c959fb6d61cc229d5621
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 18:57:09 2024 -0500

    entirely amputate perl pprof implementation

M	.gitignore
D	src/pprof

commit f235d15e0115d6ddf4cd29aad6e631215b768286
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 19:23:59 2025 -0500

    update README and INSTALL docs

M	INSTALL
M	README

commit f5c1af1632b3b5117a3f51b94493caf3de445393
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 18:54:47 2024 -0500

    update main README for recent-ish heap checker removal

M	README

commit 023376d651713f0e0a7aac5f8f86b42d0f5ef0de
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Dec 6 15:39:28 2024 -0500

    re-organize docs and convert htmls to asciidoc

M	.gitignore
M	Makefile.am
M	configure.ac
A	docs/cpuprofile-fileformat.adoc
D	docs/cpuprofile-fileformat.html
A	docs/cpuprofile.adoc
D	docs/cpuprofile.html
D	docs/designstyle.css
A	docs/dots/README
R100	docs/overview.dot	docs/dots/overview.dot
R100	docs/pageheap.dot	docs/dots/pageheap.dot
R100	docs/spanmap.dot	docs/dots/spanmap.dot
R100	docs/threadheap.dot	docs/dots/threadheap.dot
A	docs/heapprofile.adoc
D	docs/heapprofile.html
M	docs/index.html
D	docs/pprof.1
D	docs/pprof.see_also
A	docs/pprof_integration.adoc
D	docs/pprof_remote_servers.html
D	docs/t-test1.times.txt
D	docs/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.128.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.256.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.512.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.64.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
D	docs/tcmalloc-opspersec.vs.size.1.threads.png
D	docs/tcmalloc-opspersec.vs.size.12.threads.png
D	docs/tcmalloc-opspersec.vs.size.16.threads.png
D	docs/tcmalloc-opspersec.vs.size.2.threads.png
D	docs/tcmalloc-opspersec.vs.size.20.threads.png
D	docs/tcmalloc-opspersec.vs.size.3.threads.png
D	docs/tcmalloc-opspersec.vs.size.4.threads.png
D	docs/tcmalloc-opspersec.vs.size.5.threads.png
D	docs/tcmalloc-opspersec.vs.size.8.threads.png
A	docs/tcmalloc.adoc
D	docs/tcmalloc.html

commit ddfa828b3f860ac3462781ae84786513a74aa79d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 15:01:53 2025 -0500

    ci: apt update before running apt install

    So that slightly out-of-date package versions don't fail to be
    installed.

M	.github/workflows/ci.yml

commit 2553bbb57c9d3fb48d3df9491ba97ddae2921cfd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 13:06:44 2025 -0500

    correctly depend on libunwind in our pkg-config files

    I.e. so that pkg-config --static thingy has chance of working.

M	Makefile.am
M	configure.ac

commit b577c2aa79c7f413529b148e047a09fa62eaae20
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 6 10:44:29 2025 -0500

    generic-config: enable use of _Unwind_Backtrace in more configs

    I.e. clang's libunwind and such seems okay-ish.

M	generic-config/config.h

commit f86bf0b0e68a72aec8961a71cc23269fd0c0c697
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 5 14:48:23 2025 -0500

    allow getting/setting sample parameter via {Get,Set}NumericProperty

M	src/tcmalloc.cc

commit 457ed6f6e68bfdcd6b440faefbe4fdbfa3c29a0a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:16:44 2025 -0500

    disable memory allocation API overrides under sanitizers

M	src/libc_override.h

commit 4f8769d300f0019736b50472886b09a3f6ae059e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:08:26 2025 -0500

    generic-config: fetch __GLIBC__ define from features.h header

    Turns out __GLIBC__ define isn't some sort of pre-defined thing, but
    is defined in features.h. So lets get it.

M	generic-config/config.h

commit 00056433394e526cd15b42b09c1c763e3bf66ec6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:21:19 2025 -0500

    stop detecting cfree at configure time

    There is simply no need anymore.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	generic-config/config.h
M	src/tcmalloc_internal.h
M	vsprojects/include/config.h

commit 8978c60c8a2bb8c82b8fdc893818eccdaf0486a4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 17:19:24 2025 -0500

    don't test cfree

    cfree is ancient compat thing. It is missing in modern glibcs too. We
    still provide it (to keep ABI compat), but there is no need to
    exercise it in tests.

M	src/tests/tcmalloc_unittest.cc

commit 5b9a7b359ba340dd1d90323362ca942f5d81282b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 1 14:18:27 2025 -0500

    tcmalloc_unittest: unbreak sub-process spawning on windows

    Turns out spawnve (which is part of ucrt) has a bug. They have some
    sort of seemingly undocumented thing where current working
    directory (or maybe history of working directories) is preserved in
    special format inside environment block. And spawnve tries to copy it
    and fails to account for possibility of not having this
    stuff.

    https://github.com/huangqinjin/ucrt/blob/d6e817a4cc90f6f1fe54f8a0aa4af4fff0bb647d/exec/cenvarg.cpp#L136

    Apparently when bazel runs tests it clears environment so there is
    nothing to be found and so their naive loop does past-malloced-block
    access and crashes.

    We avoid the it by using somewhat more direct CreateProcessA API.

M	src/tests/tcmalloc_unittest.cc

commit d3743e698d46949c00e515bb8376b0eee13463b5
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 17:56:55 2025 -0500

    bazel: make it 'work' on windows and osx

    Finally I figured out how to use @platforms thingy and so we're able
    to mark a bunch of non-windows targets as such. So that
    bazel test :all works on windows (by skipping incompatible targets).

    Building and testing on OSX was also fixed. For some reason bazel
    passes compiler flags to target very old OSX version that lacks even
    basic C++17 features. Thankfully, there is a semi-sensible way to fix
    it too.

A	.bazelrc
M	BUILD
M	MODULE.bazel
M	Makefile.am

commit f1450529893eaa43e9ac990b9e60304765f76b50
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 1 13:57:19 2025 -0500

    tcmalloc_unittest: explicitly spawn+wait for sub-variant processes

    We had somewhat "simpler" approach of each variant running all tests,
    then exec-ing into next variant. But windows doesn't have exec. So we
    simulated by spawn+wait. But somehow under bazel it didn't
    work (perhaps hitting some sandbox limits). So lets unify everything
    and have top-level process do a loop of spawn+waits.

M	src/tests/tcmalloc_unittest.cc

commit 17b772bd9f3e954fedbf1ea354d5ee87f8443b1b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 16:35:04 2025 -0500

    ci: upload right cmake test logs

M	.github/workflows/ci.yml

commit 73e38d7a617182eadc2e74191e1258b85225c635
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 24 12:43:12 2025 -0500

    add basic experiment bazel support

A	BUILD
A	MODULE.bazel
M	Makefile.am
M	src/base/basictypes.h

commit 477be4dd4ff447c93fa786dd52c7024f63297038
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 26 10:05:34 2025 -0500

    introduce "generic" config.h header

    This contains roughly same defines as autotools-produced config.h, but
    it checks headers with GCC-specific tests and it checks some features
    by inspecting known platform defines (i.e. like __GLIBC__). So by
    definition it supports fewer platforms, but it is "good enough" for
    commonly used ones. It is to be used in our bazel support (and maybe
    more later).

M	Makefile.am
A	generic-config/config.h

commit aefaa35d7b190957b81b9d004d5cdccb2eeca68b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 10:30:49 2025 -0500

    ci: manage build directory separately from source checkout

    I don't quite understand what I am doing and why. But cmake builders
    all started failing couple days ago, failing to create something under
    build directory (which we assumed cmake would create under source
    checkout directory).

    I found that other guys do this runner.workspace thingy, which is
    apparently distinct from checkout. And I made it work somehow.

M	.github/workflows/ci.yml

commit fba0796aff2822fe224b4f7037377d166c8fabe0
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 27 21:10:31 2025 -0500

    made run_benchmark and malloc_bench work on windows

M	Makefile.am
M	benchmark/malloc_bench.cc
M	benchmark/run_benchmark.cc

commit 23da38622dc6302206579f1c42afa1145724aa4c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 27 21:09:45 2025 -0500

    mass replace WIN32 -> _WIN32

    Apparently, "plain" WIN32 has been wrong for a while. _WIN32 is the
    right one.

M	cmake/config.h.in
M	configure.ac
M	src/memmap.h

commit c7d2d7045fb930aef704ec673251bc38042324d6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 24 18:26:52 2025 -0500

    simplify away writing of tcmalloc.h from tcmalloc.h.in

    We had some degree of mess caused by need to duplicate tcmalloc.h for
    windows and non-windows and caused by duplication of rewriting logic
    between cmake stuff and autotools stuff.

    We only need it to handle availability of mallinfo stuff, which we're
    able to mostly detect by looking at various libc defines.

    And we need it for the version defines. Which we were already
    partially hardcoding for each version bump anyways. So we simply add a
    test that version hardcoded in tcmalloc.h header is the same as in our
    autoconf bits.

M	.github/workflows/ci.yml
M	CMakeLists.txt
M	Makefile.am
D	cmake/tcmalloc.h.in
M	configure.ac
R088	vsprojects/include/gperftools/tcmalloc.h
src/gperftools/tcmalloc.h
D	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit e9b3d4a5ae51d8322edb48e777d6067818b3148d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 25 15:20:12 2025 -0500

    Reapply "detect pprof at configure time and skip relevant tests"

    This reverts commit 49ee3cebdc8dd4eea1140df56c0f192e684f12cb.

M	Makefile.am
M	configure.ac

commit ae742a58cbaf692b046afaf1d5ef01fb47df326a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 25 15:20:10 2025 -0500

    Reapply "use system's pprof"

    This reverts commit b5fe0ed7bfaaa9544a56a8b5b31a5dbf4cb8e560.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 1dcf290ca3bfb998cea0e1fff472111ff307ce7b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 19 10:48:22 2025 -0500

    wip: request stable go version

M	.github/workflows/ci.yml

commit 75f0af7b79ffc3118fbee9cc91b9b6dee3956b1f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 19 10:44:50 2025 -0500

    wip: enable pprof on CI workers

M	.github/workflows/ci.yml

commit 0576523a6028626a7760dabf591c6713d6f69d73
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 12:05:04 2025 -0500

    disable "broken" cmake install target by default

M	CMakeLists.txt

commit 5a6539130dc240091461222e56e9a6896942f82e
Author: Alex Faxa <alexanderfaxa@google.com>
Date:	Thu Jan 16 13:21:29 2025 +0000

    Add CMake install TARGETS support.

M	CMakeLists.txt

commit b5fe0ed7bfaaa9544a56a8b5b31a5dbf4cb8e560
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 11:30:32 2025 -0500

    Revert "use system's pprof"

    This reverts commit 606059d9185a7f4c061f6889afa2a9d0ee4e99d3.

    Currenly "mainline" pprof fails at demangling on OSX, so lets revert
    temporarily.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 49ee3cebdc8dd4eea1140df56c0f192e684f12cb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 11:32:03 2025 -0500

    Revert "detect pprof at configure time and skip relevant tests"

    This reverts commit 3219749e766714af1e4e6d7bf284cee65cc777c1.

    Currenly "mainline" pprof fails at demangling on OSX, so lets revert
    temporarily.

M	Makefile.am
M	configure.ac

commit e43f3d258767b85f93b48ff927bb9f375856fdee
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 18 13:27:41 2025 -0500

    [windows] handle patching functions that start with endbr{32,64}

    This unbreaks gperftools on mingw ucrt as shipped by debian sid.

M	src/windows/preamble_patcher_with_stub.cc

commit 3219749e766714af1e4e6d7bf284cee65cc777c1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 17:52:53 2024 -0500

    detect pprof at configure time and skip relevant tests

M	Makefile.am
M	configure.ac

commit 606059d9185a7f4c061f6889afa2a9d0ee4e99d3
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 17:06:10 2024 -0500

    use system's pprof

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 6eea08bc2a8dd9e419ba91fd6911a5049f3c6afd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 15:13:25 2024 -0500

    stop installing perl pprof

M	Makefile.am
M	configure.ac

commit caf3517aa21307e10169f19e34a5ec3f289661bb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 14:59:56 2024 -0500

    made shell script profiling tests compatible with go pprof

M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh

commit 84063ad286ae338f3b77e5abc9dec296b13d7304
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 00:21:35 2024 -0500

    [libbacktrace-integration] handle xcoff format for AIX

M	vendor/libbacktrace-integration/file-format.c

commit 733e4e0341d14ac0f730ce4b15084b6665642c77
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 30 23:47:21 2024 -0500

    update README about removal of heap checker

M	README

commit 48cd242aadc544b2c8086247cf8ca8c4528e52a7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 12 17:05:28 2025 -0500

    don't patch libtool anymore

    The fix is now upstream and shipping with Debian Sid.

M	autogen.sh
D	m4/libtool.patch

commit ab499855dc9477834ca88cae585befb8fa15fe95
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 13:57:57 2024 -0500

    bump vendor/libbacktrace to d48f84034ce3e53e5

    Which is latest as of Nov 24 2024

M	vendor/libbacktrace/README.md
M	vendor/libbacktrace/dwarf.c
M	vendor/libbacktrace/macho.c

commit c4120da88e9efdec7c9cd89c8642b07b8a7d6f5f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Nov 23 13:36:47 2024 -0500

    modernize and fix SpanSet iterator handling

    In addition to just being more readable, we fix github issue #1573
    "Unable to build gperftools with _GLIBCXX_DEBUG flag".

M	src/page_heap.cc
M	src/span.h

commit e9fbbf94508cd71bb023802af1c3c3ec5b05fb2f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:58:26 2024 -0400

    update comment for fixed fork testing of ManyThreads

M	src/tests/tcmalloc_unittest.cc

commit 8f74e39c00f2a85b04b75378164490309397b310
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:50:46 2024 -0400

    have fork torturing print total number of forks made

M	src/tests/tcmalloc_unittest.cc

commit 6f7f81b6993d26f1df2d970b258dc8e46becc7a7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:39:34 2024 -0400

    [tcmalloc_unittest] don't disable threaded test for fork torturing

    We now detect "SIGTRAP is blocked" case and handle it properly. This
    enables us to run pthread_create. So there is no more need to disable
    ManyThreads test.

    Note, we're not propagating single-stepping mode into child threads,
    so we're still only fork-testing main thread, but that should be
    plenty good for now. I.e. merely not crashing on pthread_create
    anymore when fork torturing is enabled.

M	src/tests/tcmalloc_unittest.cc

commit 2e6061d07a542c2afd59a8983597fbf2bafd5f08
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 8 18:39:32 2024 -0400

    function_ref: enable construction from pair of function and data

M	src/base/function_ref.h

commit 3f04893eeec41ad2887799b7f79aa5b5a4e9b611
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 8 18:33:37 2024 -0400

    unbreak tcmalloc::FunctionRefFirstDataArg

M	src/base/function_ref.h
M	src/tests/function_ref_test.cc

commit 8560276997c61ee44af9493feebf6946509f79a6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 17:47:45 2024 -0400

    have atfork handler also handle SlowTLS and SysAllocator locks

    Referenced github issue #1570 and github issue #1425

    This enables "minimal" allocator to pass fork torture testing.

M	src/static_vars.cc
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/thread_cache_ptr.cc
M	src/thread_cache_ptr.h
