cpython/Tools/build
Dino Viehland 05f2f0ac92
gh-90815: Add mimalloc memory allocator (#109914)
* Add mimalloc v2.12

Modified src/alloc.c to remove include of alloc-override.c and not
compile new handler.

Did not include the following files:

 - include/mimalloc-new-delete.h
 - include/mimalloc-override.h
 - src/alloc-override-osx.c
 - src/alloc-override.c
 - src/static.c
 - src/region.c

mimalloc is thread safe and shares a single heap across all runtimes,
therefore finalization and getting global allocated blocks across all
runtimes is different.

* mimalloc: minimal changes for use in Python:

 - remove debug spam for freeing large allocations
 - use same bytes (0xDD) for freed allocations in CPython and mimalloc
   This is important for the test_capi debug memory tests

* Don't export mimalloc symbol in libpython.
* Enable mimalloc as Python allocator option.
* Add mimalloc MIT license.
* Log mimalloc in Lib/test/pythoninfo.py.
* Document new mimalloc support.
* Use macro defs for exports as done in:
  https://github.com/python/cpython/pull/31164/

Co-authored-by: Sam Gross <colesbury@gmail.com>
Co-authored-by: Christian Heimes <christian@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
2023-10-30 15:43:11 +00:00
..
check_extension_modules.py gh-104773: Remove the msilib package (GH-104911) 2023-05-24 20:06:00 -05:00
deepfreeze.py gh-109256: allocate opcode IDs for internal opcodes in their own range (#109269) 2023-09-12 10:36:17 +00:00
freeze_modules.py GH-108716: Turn off deep-freezing of code objects. (GH-108722) 2023-09-08 10:34:40 +01:00
generate_global_objects.py gh-102500: Implement PEP 688 (#102521) 2023-05-04 07:59:46 -07:00
generate_levenshtein_examples.py gh-99016: Make build scripts compatible with Python 3.8 (GH-99017) 2022-11-02 20:30:09 +02:00
generate_re_casefix.py gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
generate_sre_constants.py gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
generate_stdlib_module_names.py gh-108494: Argument Clinic partial supports of Limited C API (#108495) 2023-08-25 23:22:08 +02:00
generate_token.py gh-107211: No longer export internal functions (7) (#108425) 2023-08-24 17:40:56 +02:00
parse_html5_entities.py gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
smelly.py gh-90815: Add mimalloc memory allocator (#109914) 2023-10-30 15:43:11 +00:00
stable_abi.py gh-106316: Remove pytime.h header file (#106317) 2023-07-01 22:27:18 +00:00
umarshal.py Fix a typo in umarshal.py (#108803) 2023-09-06 09:06:41 +00:00
update_file.py gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
verify_ensurepip_wheels.py gh-109002: Ensure only one wheel for each vendored package (#109003) 2023-09-06 16:49:44 +02:00