daanx
e03f26b035
fix atomic signature
2023-04-17 11:39:55 -07:00
daanx
a8c581059b
Merge branch 'dev' into dev-reset
2023-04-17 09:48:58 -07:00
daanx
43be9c2909
possible fix for warnings on armv6 (issue #719 )
2023-04-17 09:25:41 -07:00
daanx
a52ba65f65
further fix for atomic build error suggested by Davide Di Gennaro (issue #729 , pr #724 )
2023-04-17 09:13:08 -07:00
daanx
a655c28b66
cleanup
2023-04-16 12:29:21 -07:00
daanx
d48b988c40
clean up os api
2023-04-16 11:21:45 -07:00
daanx
0fc4de1440
use rich memid's to simplify the internal API's and invariants
2023-04-15 21:31:17 -07:00
daanx
0174d19af3
increase thread data cache to 16
2023-04-15 19:49:14 -07:00
daanx
8027fcfecd
Merge branch 'dev' into dev-reset
2023-04-15 17:59:01 -07:00
Sergey Fedorov
cd915900a2
atomic.h: unbreak build on Darwin PPC
2023-04-15 07:06:47 +08:00
Daan
5a866ca7e1
fix build error on Android/Linux for an atomic signature (pr #724 , issue #729 )
2023-04-14 09:44:36 -07:00
daanx
48d0d0da9b
fix thread data cache to use pure os alloc
2023-04-13 15:27:20 -07:00
daanx
0ba79d01f6
allow static allocation in arenas for internal metadata
2023-04-13 13:19:39 -07:00
daanx
c90a2bbd0a
make memid's abstract for safety
2023-04-13 12:17:52 -07:00
daanx
eb62caeda0
allow per page purging instead of reset
2023-04-08 17:37:58 -07:00
daanx
cdefd5b69c
fix stats for purging
2023-04-05 11:11:03 -07:00
daanx
96e9e6f570
clean up option naming
2023-04-05 10:11:54 -07:00
daanx
55df1f3a54
more detailed stats, including purges
2023-04-05 09:48:22 -07:00
daanx
cb0369452d
use exponetially sized arenas
2023-04-04 17:54:33 -07:00
daanx
d01017ffda
extend primitive api with is_zero parameters
2023-04-04 16:32:39 -07:00
daanx
a2e1d2b893
add segment map to track valid pointers
2023-04-04 16:00:17 -07:00
daanx
461df1e878
implement arena exclusive heap allocation for dev
2023-04-04 15:40:43 -07:00
daanx
77766e20a6
use only arena's instead of regions
2023-04-04 14:58:06 -07:00
daanx
1d231be758
clarify needs_recommit
2023-04-04 13:05:48 -07:00
daanx
5c39fe7246
decommit returns whether re-commit is needed
2023-04-04 12:57:18 -07:00
daanx
449aad0635
wip: purgeable arenas; update option names and improve arena reservation
2023-04-04 12:15:57 -07:00
daanx
a5b47fe17b
Merge branch 'dev' into dev-reset
2023-04-03 12:46:00 -07:00
daanx
92556e0e62
bump version for further development
2023-04-03 12:45:04 -07:00
Daan Leijen
595add5e3d
wip: initial work on purgable arenas
2023-03-31 20:51:35 -07:00
Daan Leijen
7cf60deb12
wip: initial delayed purging of arenas
2023-03-31 14:07:59 -07:00
Daan Leijen
1a57a53b75
Merge branch 'dev' into dev-reset
2023-03-31 10:31:43 -07:00
Daan Leijen
d3ec7f378e
fix compile on ppc64IE and s390x arches (issue #717 )
2023-03-31 10:25:32 -07:00
Daan Leijen
6eee9e4be2
add option eager_reserve
2023-03-30 16:20:11 -07:00
Daan Leijen
f08d9d489c
bump version for further development
2023-03-30 09:19:35 -07:00
Daan Leijen
176b6e6aa0
add mi_arena_is_os_allocated
2023-03-28 09:59:41 -07:00
Daan Leijen
9792b6364d
move more prototypes in internal.h for safety
2023-03-28 09:25:32 -07:00
Daan Leijen
c92e9e7bf7
add comment that thread id's should not be zero, issue #698
2023-03-20 14:01:09 -07:00
Daan Leijen
0b4c3da2e9
make process init race free (issue #701 )
2023-03-20 13:55:39 -07:00
Daan Leijen
65402836ae
comments
2023-03-20 11:30:52 -07:00
Daan Leijen
e24e1125ee
bump version to 1.8.0
2023-03-20 11:03:50 -07:00
Daan Leijen
0509d11ac5
more comments
2023-03-20 11:02:16 -07:00
Daan Leijen
ec5f4904b0
more comments
2023-03-20 11:01:40 -07:00
Daan Leijen
f58357548c
restructure header files
2023-03-20 10:37:39 -07:00
Daan Leijen
17a20f280b
dont track ETW by default
2023-03-16 20:16:31 -07:00
Daan Leijen
1a99efc671
integrate ETW windows event tracing into mimalloc as another track tool
2023-03-16 20:08:43 -07:00
Xinglong He
072316bd33
add etw support
2023-03-16 17:47:20 -07:00
Daan Leijen
c4c96d2f8d
update older vs ide projects
2023-03-15 20:38:10 -07:00
Daan Leijen
e937070cf1
Merge branch 'dev' into dev-platform
2023-03-15 20:33:35 -07:00
Daan Leijen
824fd8a7b1
fix issue #707 ; rename a local template parameter (destroy) to work around two-phase template resolve in msvc 2019
2023-03-15 20:31:52 -07:00
Daan Leijen
9a2dbf373e
move thread init to primitives
2023-03-15 13:35:23 -07:00
Daan Leijen
9b110090b2
move threadid and mi_get_default_heap to primitives
2023-03-14 20:35:00 -07:00
Daan Leijen
3579d3b861
move mi_thread_id to primitives
2023-03-14 19:38:45 -07:00
Daan Leijen
10f62eb5a1
add c primitives, move getenv into primitives
2023-03-14 18:10:00 -07:00
Daan Leijen
08a01d26dc
initial commit of new primitive layer
2023-03-14 16:54:46 -07:00
Daan Leijen
2e6ab0f230
add documentation for tracking tools; rename with prefix MI_TRACK_tool
2023-03-06 09:02:38 -08:00
Daan Leijen
465eb81d30
track free blocks in valgrind for heap_destroy as well
2023-03-05 18:18:41 -08:00
Daan
056c2ce45b
match track free size to tracked malloc size
2023-03-05 11:01:51 -08:00
Daan
3c906bde8b
better track_free_size
2023-03-04 15:17:13 -08:00
Daan
6dcebdc303
fix sizes in memory tracking and padding for huge alignments
2023-03-04 14:49:02 -08:00
Daan Leijen
6a230f8329
fix compilation of heap specific STL allocators for vs2017
2023-02-07 11:07:52 -08:00
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