494 Commits

Author SHA1 Message Date
Daan Leijen
4cebb48062 bump version to v1.7.9 2022-12-23 13:29:06 -08:00
Daan Leijen
4d1e74aadd add comment 2022-12-19 18:01:58 -08:00
Daan Leijen
8c89a77064 add default constructors to stl heap allocators 2022-12-19 17:25:49 -08:00
Daan
51e2be6647
Merge branch 'dev' into fix-const 2022-12-19 17:10:54 -08:00
Johannes Schindelin
745a34f475 Fix whitespace
This mostly deletes trailing spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:20 +01:00
Daan Leijen
ddc9841019 fix parameters for mi_track_free 2022-11-28 11:12:35 -08:00
Daan Leijen
10981ab122 add initial support for using mimalloc with address sanitizer support; use -DMI_ASAN=ON 2022-11-28 10:55:19 -08:00
Daan Leijen
76db72814c fix unused parameter warning in clang 2022-11-28 10:54:45 -08:00
Daan Leijen
be2bc9e7ca better attributes on new/delete overrides for Microsoft visual C++ 2022-11-28 09:15:16 -08:00
Vadim Markovtsev
7da4a34dc1 Make "destroy" a compile-time constant + fix const allocator comparisons 2022-11-28 12:04:12 +01:00
Daan Leijen
c1299484de refactor C++ STL allocator definitions (pr #651) 2022-11-27 13:00:15 -08:00
Vadim Markovtsev
4cdfc18888 Refactor C++ allocators to be DRY and protected 2022-11-24 15:13:19 +01:00
Daan Leijen
969d8bc5fe make huge pages part of the regular page queues again 2022-11-22 20:56:35 -08:00
Daan Leijen
78690fbec2 fix proteced status in stl allocator (pr #625)# 2022-11-22 18:41:51 -08:00
Daan Leijen
9617f16df9 add STL allocators that use a specific heap and can destroy at the end; see original PR #625 by @vmarkovtsev 2022-11-22 16:58:32 -08:00
Daan Leijen
6e2b077b35 rename to heap_alloc_new and heap_alloc_new_n 2022-11-22 14:48:26 -08:00
Daan Leijen
34910664f1 add mi_heap_new_ and mi_heap_new_n 2022-11-22 14:46:23 -08:00
Daan Leijen
35d332141d experimental destroy_on_exit option for statically linked mimalloc in a dynamically unloaded DLL 2022-11-18 11:00:23 -08:00
Daan Leijen
18cf94dff6 move keys field in the page struct to keep offsets in the fast path the same for different build variants 2022-11-18 10:14:37 -08:00
Daan Leijen
8834e128e8 improve mi_free codegen 2022-11-18 10:13:51 -08:00
daan
2479d168ad decommit unused prefix of large aligned blocks 2022-11-07 16:41:40 -08:00
daan
3e1d800e9b potential fix for windows static linking with thread creation in dll's 2022-11-07 14:47:53 -08:00
daan
312ce6f916 bump version to v1.7.8 for further development 2022-11-07 11:36:44 -08:00
daan
2daec6c72f add more comments 2022-11-07 11:23:04 -08:00
daan
1f12c3dd12 remove MI_ALIGNMENT_MAX and add comments 2022-11-07 11:13:42 -08:00
Daan
d3715132d1 move null ptr check 2022-11-06 09:52:54 -08:00
daan
4b91ff760d initial working large alignment 2022-11-05 16:40:42 -07:00
daan
6a80fa3ac1 initial progress on removing alignment limit 2022-11-05 14:46:52 -07:00
daan
fe61be80bf update to v1.7.7 2022-11-03 17:03:57 -07:00
daan
5ad06f9997 fix compiler warning on unused parameter (issues #251) 2022-11-02 09:50:49 -07:00
daan
e6bd41ba3f update arena_id api 2022-11-01 16:26:17 -07:00
daan
fe2d5aa8ff initial work on heaps restricted to specific arena's 2022-11-01 14:00:20 -07:00
daan
698bb2cae7 split out _mi_page_try_use_delayed_free for contention reduction (issue #630) 2022-10-31 11:01:01 -07:00
daan
7bef5f5f5b reduce contention on the delayed_free lock; see issue #630 2022-10-31 10:34:55 -07:00
daan
886fd7d1b8 add cmakefile MI_VALGRIND option 2022-10-30 12:49:29 -07:00
daan
b48040e20a set pages to noaccess explicitly for valgrind precision 2022-10-30 12:23:11 -07:00
daan
84c706508c fix false positives from valgrind in rptest 2022-10-30 10:45:51 -07:00
daan
a1f5a5d962 fix various false positives in test-stress from valgrind 2022-10-29 14:37:55 -07:00
daan
eee7c40da5 updates to run valgrind on test-api 2022-10-29 11:43:09 -07:00
daan
bc8f23aa0d rename track macros to lowercase 2022-10-29 10:44:10 -07:00
daan
6eeb81ee05 initial progress on valgrind integration 2022-10-28 19:54:56 -07:00
Daan Leijen
864e4be5ce add is_aligned check 2022-04-20 17:33:31 -07:00
Daan Leijen
7bc602ebb4 redefine mi_likely/mi_unlikely to work with C++ 20 [[likely]] attributes 2022-04-19 19:50:06 -07:00
Daan Leijen
d69d4c861f add zero parameter to primitive allocation to improve codegen for calloc etc 2022-04-19 18:32:35 -07:00
Daan Leijen
f4744bd192 fix further annotation warnings for vs2022 2022-04-19 17:35:07 -07:00
Daan Leijen
ca0bac743d maintain backward compatible option order 2022-04-14 16:10:36 -07:00
Daan Leijen
f87cba9bd8 add max segment reclaim as an option 2022-04-14 16:05:49 -07:00
Daan Leijen
6c91c75b14 remove thread local segment cache 2022-04-09 14:33:20 -07:00
Daan Leijen
e18a8cd72e add heap walk test 2022-04-08 16:58:32 -07:00
Daan Leijen
5c7ada4b20 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2022-04-08 16:37:08 -07:00
Daan
b7677b6f84 fix atomic warnings on clang14 (issue #571) 2022-04-08 14:09:38 -07:00
Daan Leijen
3c7ce7d3c6 improve mi_realloc codepath 2022-04-07 19:09:31 -07:00
Daan
db87d6a99c add delete nothrow variants for aligned deletion as well (see #551) 2022-02-22 13:49:39 -08:00
Daan
3c669a70f3
Merge pull request #551 from sicherha/override-nothrow-delete
Fix compatibility with GNU libstdc++ < 9
2022-02-22 13:44:01 -08:00
Christoph Erhardt
096b9015dc Fix compatibility with GNU libstdc++ < 9
So far, mimalloc does not override the `nothrow` variants of the
`delete` operator because it assumes that their implementation in the
C++ standard library redirects to the default `delete` operators. This
is not the case for GNU libstdc++ < 9, where `std::free()` is called
directly.

This issue might be the cause for the crashes reported in #261.

Upstream bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68210

This commit ensures that the `nothrow` `delete` operators are properly
overridden by mimalloc.
2022-02-22 21:30:23 +01:00
Daan
ec2265486e bump version for further development 2022-02-14 16:47:57 -08:00
Daan
817569dfad bump to version x.0.5 2022-02-14 16:34:18 -08:00
Daan
c6f32c9533
Merge pull request #528 from michaeljclark/mimalloc-fixes
mimalloc-types: amend comment adding medium to list of page kinds
2022-02-02 19:57:50 -08:00
Daan
32da74e032
Merge pull request #539 from devnexen/obsd_asm_fix
tls revives inline asm for openbsd
2022-02-02 19:45:39 -08:00
Daan
f515b80093 update documentation on options 2022-02-02 19:19:03 -08:00
David Carlier
b1e1b0573c tls revives inline asm for openbsd 2022-01-27 07:01:32 +00:00
Michael Clark
9da8788dae
mimalloc-types: amend comment adding medium to list of page kinds 2022-01-19 10:14:08 +13:00
Daan
55b4d5e2b1
Merge pull request #517 from tiran/debug-uninit
Allow overrides of MI_DEBUG memory constants
2022-01-10 16:12:10 -08:00
Daan
4fc63358a6 update copyright year 2022-01-10 12:01:26 -08:00
Daan
4b63c76861 avoid conditional load on macos 2022-01-10 11:40:36 -08:00
Christian Heimes
0353fc38dd Allow overrides of MI_DEBUG memory constants
CPython and Windows CRT debug builds use different values for uninit,
freed, and padding bytes. Make ``MI_DEBUG_*`` constants conditional to
allow embedders to override the constants.

Windows dbgheap:

```
_bNoMansLandFill = 0xFD
_bDeadLandFill   = 0xDD
_bCleanLandFill  = 0xCD
```

Python memory debug

```
PYMEM_CLEANBYTE      0xCD
PYMEM_DEADBYTE       0xDD
PYMEM_FORBIDDENBYTE  0xFD
```

Signed-off-by: Christian Heimes <christian@python.org>
2022-01-05 13:22:47 +01:00
daan
43e5cd2671 revise assembly test for the _mi_threadid(); fix issue #495 with musl libc on arm; test specifically for bionic libc on Android 2022-01-01 15:54:06 -08:00
Daan
6ead2840ec
Merge pull request #504 from res2k/tweak-stats-doc
Tweak documentation for mi_heap_area_t::used.
2021-12-20 17:44:52 -08:00
Frank Richter
ff3bb5ce7b Tweak documentation for mi_heap_area_t::used.
For microsoft/mimalloc#503.
2021-12-19 14:51:15 +01:00
Daan Leijen
89090510bd update alignment tests 2021-12-18 11:11:44 -08:00
daan
30a99e2c51 default to portable C for the thread id on arm 32-bit, issue #495 2021-12-17 13:48:39 -08:00
daan
89f583a69b improve aligned allocation performance 2021-12-17 13:18:05 -08:00
daan
684c2c82a7 restrict max aligment boundary to prevent bug with segment determination (found by Matthew Parkinson). 2021-12-17 11:40:46 -08:00
daan
55ccc94707 wip: fix zero init for sbrk; add lock around sbrk 2021-12-15 19:28:34 -08:00
daan
82a0e56f35 fix warning on mi_reallocarr 2021-12-15 18:54:57 -08:00
Daan
4a586808f7 merge 2021-12-15 16:52:36 -08:00
Daan
317093d78b fix Android overriding (issue #381 and PR #487) 2021-12-15 16:48:57 -08:00
Daan
17456f18d1
Merge pull request #489 from devnexen/remove_dfbsd_warning
removes dragonflybsd warning since the api and library overriding wor…
2021-12-15 16:37:56 -08:00
Daan
1b09877bc4
Merge branch 'dev' into netbsd_reallocarr 2021-12-15 16:27:26 -08:00
Daan
523e6d5c9b fix thread slot on arm32 (issue #495) 2021-12-15 16:05:07 -08:00
Daan
69b6b24688 further improvements to installation directories 2021-12-14 18:29:14 -08:00
Daan
c858690dea Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-12-12 10:35:19 -08:00
Daan
3a212d1895 fix assembly for mi_tls_slot_set on x32 and x64. Issue #488 2021-12-12 10:35:13 -08:00
David Carlier
d6a56dd99d introduces netbsd's reallocarr overriding.
and couple of tests.
2021-12-01 22:43:13 +00:00
DC
20e37bf7c1 removes dragonflybsd warning since the api and library overriding works, also
for the os doc report purpose.
2021-11-28 08:14:21 +00:00
daan
9183b1eec0 remove experiment with unsafe_free_with_threadid 2021-11-23 19:04:41 -08:00
daan
8b60a5ab70 add mi_unsafe_free_with_threadid and mi_get_current_threadid() 2021-11-23 17:59:27 -08:00
daan
85eccf324f Merge branch 'master' into dev 2021-11-14 16:44:54 -08:00
Daan
4a590b1447 bump version number to 1.7.3 2021-11-14 15:33:56 -08:00
Daan
d67ff1ca9f add include cstdef for std::size_t in C++ 2021-11-14 15:32:43 -08:00
Daan
9c9c3a0311
Merge pull request #485 from devnexen/builtin_overflow_sig_fix
fix spurious build warning with overflow builtins
2021-11-14 14:47:38 -08:00
daan
4b0cda2012 take overcommit into account for eager commit delay 2021-11-14 11:23:11 -08:00
daan
28896e5b19 prefix UNUSED,KiB,MiB,GiB; add mi_threadid_t type; add mi_ssize_t 2021-11-13 14:46:03 -08:00
daan
f9ac60a90f suppres eager commit delay for the first 4 threads 2021-11-12 19:03:20 -08:00
Daan
e853f530a0 add noexcept attributes to improve mi_free codegen 2021-11-04 18:54:57 -07:00
Daan
751a2249c8 add mi_decl_externc, nice layout 2021-11-02 21:53:20 -07:00
Daan
5360639748 add mi_malloc_good_size 2021-11-02 21:52:00 -07:00
dc
5b0e73281f fix spurious build warning with overflow builtins 2021-10-28 22:43:21 +01:00
Daan
f38956568c only set visibility attribute when compiling for a shared library 2021-10-27 17:01:12 -07:00
Christian Heimes
13de1920ae Rename _os_random_weak to _mi_os_random_weak
The ``_os_random_weak`` function is the only non-static function
besides ``_ZSt15get_new_handlerv`` that is not prefixed with ``mi`` or
``_mi``.

The discrepancy was discovered by CPython's smelly script. The checker
looks for exported symbols that don't have well-defined prefixes.

Signed-off-by: Christian Heimes <christian@python.org>
2021-10-21 21:40:45 +02:00