892 Commits

Author SHA1 Message Date
Daan Leijen
4d1e74aadd add comment 2022-12-19 18:01:58 -08:00
Daan Leijen
35997c0384 Merge branch 'dev' into dev-slice 2022-12-19 17:38:53 -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
Daan Leijen
92ffc25d79 merge from dev 2022-12-19 17:08:45 -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
6304bbec6e Merge branch 'dev' into dev-slice 2022-11-28 11:12:52 -08:00
Daan Leijen
ddc9841019 fix parameters for mi_track_free 2022-11-28 11:12:35 -08:00
Daan Leijen
911ea81630 Merge branch 'dev' into dev-slice 2022-11-28 10:55: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
90c8f0516c Merge branch 'dev' into dev-slice 2022-11-28 09:18:04 -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
447c2f18c5 Merge branch 'dev' into dev-slice 2022-11-27 13:00:30 -08: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
ed82aa90ea merge from dev where huge objects are now part of page queues again 2022-11-22 21:54:58 -08:00
Daan Leijen
969d8bc5fe make huge pages part of the regular page queues again 2022-11-22 20:56:35 -08:00
Daan Leijen
85b5fa11bc merge segment_init refactoring from dev 2022-11-22 19:03:26 -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
83c027c4bf fix medium page size to 512k 2022-11-21 18:56:56 -08:00
Daan Leijen
c007747169 back to 64k pages but 32MiB segments and a 1MiB minimal commit size 2022-11-21 15:03:15 -08:00
Daan Leijen
1a7f6f376d move threadid field 2022-11-21 10:22:50 -08:00
Daan Leijen
163afcce75 merge from dev with the destroy_on_exit option 2022-11-21 10:03:52 -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
7ebd1c6daf merge from dev 2022-11-18 10:22:45 -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 Leijen
82a765a255 experiment with 32KiB slices and increased MI_MIN_EXTEND 2022-11-18 09:38:01 -08:00
Daan Leijen
b940543cd5 experiment with smaller segment size (32MiB) and finer minimal commit (1MiB) 2022-11-17 18:57:45 -08:00
daan
89ba6cc2fa merge from dev 2022-11-07 16:48:00 -08:00
daan
2479d168ad decommit unused prefix of large aligned blocks 2022-11-07 16:41:40 -08:00
daan
c26c5da016 Merge branch 'dev' into dev-slice 2022-11-07 14:51:18 -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
5d6b149ea9 bump version to v2.0.8 for further development 2022-11-07 11:37:22 -08:00
daan
312ce6f916 bump version to v1.7.8 for further development 2022-11-07 11:36:44 -08:00
daan
c55cc260ab merge from dev-align 2022-11-07 11:29:03 -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
1632dd73c9 remove superfluous asserts 2022-11-06 21:03:23 -08:00
daan
651a99b35d refine last slice setting for large alignments 2022-11-06 20:57:27 -08:00
daan
562efed54d fix full SEGMENT_SIZE internal alignment by adding one more slice entry 2022-11-06 20:36:51 -08:00
daan
4814a649be merge from dev-align 2022-11-06 16:23: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
f859190cba update to v2.0.7 2022-11-03 17:05:38 -07:00
daan
fe61be80bf update to v1.7.7 2022-11-03 17:03:57 -07:00
daan
6f8e115980 Merge branch 'dev' into dev-slice 2022-11-02 09:51:03 -07:00
daan
5ad06f9997 fix compiler warning on unused parameter (issues #251) 2022-11-02 09:50:49 -07:00
daan
933713292c merge from dev 2022-11-01 16:27:50 -07:00
daan
e6bd41ba3f update arena_id api 2022-11-01 16:26:17 -07:00
daan
9f36808a7f initial api for heaps restricted to a certain arena 2022-11-01 16:22:51 -07:00
daan
e961ef705e merge arena_id from dev 2022-11-01 14:16:49 -07:00
daan
fe2d5aa8ff initial work on heaps restricted to specific arena's 2022-11-01 14:00:20 -07:00
daan
3f122692eb Merge branch 'dev' into dev-slice 2022-10-31 11:01:10 -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
4442fda895 Merge branch 'dev' into dev-slice 2022-10-31 10:35:05 -07:00
daan
7bef5f5f5b reduce contention on the delayed_free lock; see issue #630 2022-10-31 10:34:55 -07:00
daan
c128cf69be fix alignment_max for 32-bit systems (unfortunately, we need to include stdint.h now) 2022-10-30 19:47:54 -07:00
daan
66525ccae3 merge from dev-track 2022-10-30 14:31:21 -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
cacb387a61 Merge branch 'dev' into dev-slice 2022-04-20 17:34:56 -07:00
Daan Leijen
864e4be5ce add is_aligned check 2022-04-20 17:33:31 -07:00
Daan Leijen
83d84b8703 increase max alignment limit to 16MiB (issue #576) 2022-04-20 09:54:24 -07:00
Daan Leijen
413141ae29 merge from dev 2022-04-19 19:55:03 -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
487b401b26 Merge branch 'dev' into dev-slice 2022-04-19 18:43:32 -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
b86bbbff00 merge from dev 2022-04-14 16:07:57 -07:00
Daan Leijen
f87cba9bd8 add max segment reclaim as an option 2022-04-14 16:05:49 -07:00
Daan Leijen
7e492f4420 merge from dev 2022-04-09 15:07:07 -07:00
Daan Leijen
6c91c75b14 remove thread local segment cache 2022-04-09 14:33:20 -07:00
Daan Leijen
774d12f12e merge from dev 2022-04-09 13:26:38 -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 Leijen
2d8f13fb93 Merge branch 'dev-slice' of https://github.com/microsoft/mimalloc into dev-slice 2022-04-08 14:46:33 -07:00
Daan
131b62283b Merge branch 'dev' into dev-slice 2022-04-08 14:10:08 -07:00
Daan
b7677b6f84 fix atomic warnings on clang14 (issue #571) 2022-04-08 14:09:38 -07:00
Daan Leijen
6431176f4e Merge branch 'dev' into dev-slice 2022-04-07 19:09:39 -07:00
Daan Leijen
3c7ce7d3c6 improve mi_realloc codepath 2022-04-07 19:09:31 -07:00
Daan Leijen
332346b685 remove unneeded MI_HUGE_OBJ_SIZE_MAX 2022-04-07 10:38:31 -07:00
Daan
18c1891708 Merge branch 'dev' into dev-slice 2022-02-22 16:46:06 -08: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
10da1af59b merge from dev 2022-02-14 16:48:30 -08:00
Daan
ec2265486e bump version for further development 2022-02-14 16:47:57 -08:00
Daan
19edc880da merge from dev 2022-02-14 16:36:03 -08:00
Daan
817569dfad bump to version x.0.5 2022-02-14 16:34:18 -08:00
daan
8ec83f6945 increase min commit to 2 mib 2022-02-05 11:21:47 -08:00
daan
e11100a137 add minimal commit size for increased efficiency (decommit fine grained, commit coarse grained) 2022-02-05 10:57:15 -08:00
daan
0e2df71829 increase minimal commit size to 8*slice-size and add decommit_extend_delay as option 2022-02-04 16:11:38 -08:00
Daan
cbcee4dce4 merge from dev 2022-02-03 15:49:27 -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
b365623b13 merge from dev 2022-02-02 19:21:15 -08:00
Daan
f515b80093 update documentation on options 2022-02-02 19:19:03 -08:00
Daan
4e65b5018f clean up options 2022-02-02 19:01:41 -08:00
Daan
ccfe005731 decommit in abandoned pages on mi_collect 2022-02-02 17:08:05 -08:00
Daan
bd2ac3c92e collect segment cache on mi_collect 2022-02-02 16:17:21 -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
a74c05c6c0 Merge branch 'dev' into dev-slice 2022-01-10 16:21:15 -08: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
f317225a70 ignore reset_decommits option in the 2.x / dev-slice version 2022-01-10 12:10:18 -08:00
Daan
0842004b61 Merge branch 'dev' into dev-slice 2022-01-10 12:04:47 -08:00
Daan
4fc63358a6 update copyright year 2022-01-10 12:01:26 -08:00
Daan
9f9c77e6b6 Merge branch 'dev' into dev-slice 2022-01-10 11:41:12 -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
3eac4a912c Merge branch 'dev' into dev-slice 2022-01-01 16:24:41 -08: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
72a33c37ef merge from dev 2021-12-18 11:34:02 -08:00
Daan Leijen
78e2e580f8 Merge branch 'dev' into dev-slice 2021-12-18 11:11:54 -08: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
abbff9c030 merge from dev (MI_ALIGNED_MAX) 2021-12-17 13:23:24 -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
2af1db7f3a Merge branch 'dev' into dev-slice 2021-12-15 19:29:04 -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
d15f5fae64 merge from dev 2021-12-14 18:29:58 -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
5f6246b2cb merge from dev 2021-11-23 19:05:19 -08:00
daan
9183b1eec0 remove experiment with unsafe_free_with_threadid 2021-11-23 19:04:41 -08:00
daan
ef6ea7e718 merge from dev 2021-11-23 18:00:12 -08:00
daan
8b60a5ab70 add mi_unsafe_free_with_threadid and mi_get_current_threadid() 2021-11-23 17:59:27 -08:00
daan
f412df7a2b make segment size smaller on 32-bit 2021-11-14 16:52:10 -08:00
daan
5a1c3c8a4a Merge branch 'dev' into dev-slice 2021-11-14 16:48:04 -08:00
daan
85eccf324f Merge branch 'master' into dev 2021-11-14 16:44:54 -08:00
Daan
18fc788201 merge from dev 2021-11-14 15:39:05 -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
70547b5f16 fix slice count 2021-11-14 12:09:20 -08:00
daan
32170897dd make decommit size equal to slice size 2021-11-14 11:45:28 -08:00
daan
c46a6f66c6 Merge branch 'dev-slice' into dev-slice-cmask 2021-11-14 11:26:47 -08:00
daan
a4ea2205ba merge from dev 2021-11-14 11:25:51 -08:00
daan
4b0cda2012 take overcommit into account for eager commit delay 2021-11-14 11:23:11 -08:00
daan
511a8996f3 increase commit mask blocks to 2xslice size 2021-11-13 20:12:03 -08:00
daan
12bfd18ba7 fix commit mask for huge segments 2021-11-13 16:15:03 -08:00
daan
627892852c merge from dev-slice 2021-11-13 15:53:57 -08:00
daan
b72065f04b move commit mask functions to segment.c 2021-11-13 15:50:26 -08:00
daan
f1ce9228a1 use size_t for bitmask 2021-11-13 15:29:57 -08:00
daan
88e6b52b88 fix types to size_t 2021-11-13 15:25:51 -08:00
daan
f9597ba7cb merge from dev-slice 2021-11-13 15:18:56 -08:00
daan
721486c82b merge from dev 2021-11-13 14:52: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
9afc253726 add comments, renaming 2021-11-13 14:03:16 -08:00
daan
6ace2fe4e0 Merge branch 'dev-slice' into dev-slice-cmask 2021-11-12 19:04:35 -08:00
daan
5c08f75d69 merge from dev 2021-11-12 19:04:18 -08:00
daan
f9ac60a90f suppres eager commit delay for the first 4 threads 2021-11-12 19:03:20 -08:00
daan
335d554438 merge from dev-slice 2021-11-12 18:38:14 -08:00
daan
b1aff903f5 fix decommit bug 2021-11-11 17:45:41 -08:00
daan
998c2de633 merge from dev-slice 2021-11-10 16:49:43 -08:00
daan
49d64dbc95 save decommit_mask for segments in the segment cache 2021-11-10 16:30:21 -08:00
daan
8cc7d0c019 increase segment size to 64MiB 2021-11-10 16:29:53 -08:00
daan
49c75a3157 wip: increase commit mask resolution 2021-11-09 20:19:31 -08:00
Daan
464cba833e Merge branch 'dev' into dev-slice 2021-11-04 18:55:34 -07:00
Daan
e853f530a0 add noexcept attributes to improve mi_free codegen 2021-11-04 18:54:57 -07:00
Daan
f3ffa663f1 merge from dev 2021-11-02 22:42:25 -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
db223e4adb merge from dev 2021-10-27 18:09:16 -07:00
Daan
f38956568c only set visibility attribute when compiling for a shared library 2021-10-27 17:01:12 -07:00
Daan
725fe2ac7d Merge branch 'dev' into dev-slice 2021-10-21 16:17:31 -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
Daan
aeb73b0cd4 merge from dev 2021-10-19 12:55:10 -07:00
Daan
75987e4590
Merge pull request #410 from jserv/enforce-binary-prefix
Distinguish SI and Binary Prefixes
2021-10-19 12:28:33 -07:00
Daan
6068a8bb1b
Merge pull request #420 from hankluo6/typo
Fix typo
2021-10-19 12:17:44 -07:00
Daan
20a3eee6f0
Merge pull request #449 from bmalrat/FixTypo
Fixed typo in header
2021-10-19 10:24:54 -07:00
Daan
a4078df9d5 Merge branch 'dev' into dev-slice 2021-10-19 10:17:53 -07:00
Daan
5b9409f4d6 add space after _Atomic to prevent errors on msvc without /TP (see PR #452) 2021-10-19 10:17:30 -07:00
Daan
1917fbd847
Merge pull request #467 from tiran/strict_prototypes
Fix strict function prototype warnings
2021-10-19 09:35:40 -07:00
Christian Heimes
7c73e3996d Fix strict function prototype warnings
Fix warning ``warning: function declaration isn’t a prototype`` when
building mimalloc with ``-Wstrict-prototypes`` flag. In C argumentless
functions should be declared as ``func(void)``.

Reproducer:
```shell
$ cmake ../.. -DCMAKE_C_FLAGS="-Wstrict-prototypes"
$ make VERBOSE=1
```

Co-authored-by: Sam Gross <colesbury@gmail.com>
Co-authored-by: Neil Schemenauer <nas@arctrix.com>
Signed-off-by: Christian Heimes <christian@python.org>
2021-10-19 10:48:26 +02:00
Daan Leijen
54659aec9e merge from dev 2021-10-18 16:28:08 -07:00
Daan Leijen
e6b58052da add start offset to pages to reduce cache/page effects 2021-10-02 11:13:00 -07:00
Daan Leijen
9c5928060e Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-01 15:10:42 -07:00
Daan Leijen
d7ac4478a8 Merge branch 'dev' into dev-slice 2021-10-01 15:05:41 -07:00
Daan Leijen
679aad0659 update wasm support with emscripten compilation; now using sbrk instead of wasm_memory_grow 2021-10-01 15:05:01 -07:00
paulip1792
a2c3b0f8af add option to reserve huge os pages at a specific numa node. 2021-08-10 16:30:44 +08:00
bmalrat
30be78d97a Fixed typo in headers 2021-08-04 17:31:48 -04:00
Jim Huang
4369fe4323 Eliminate preprocessor warnings due to undefined "__GNUC__" with ClangCL
When building some code against mimalloc with C inside Visual Studio
with ClangCL, the compiler complains about __GNUC__ being undefined.

Reported by Mojca Miklavec.

Close #422
2021-06-24 17:29:06 +08:00
hank
1c1571742d fix typo 2021-06-21 22:36:47 +08:00
Daan Leijen
b3b0fb5832 merge from dev 2021-06-17 20:05:40 -07:00
Daan Leijen
728be93977 fix for #414 making numa node count atomic 2021-06-17 19:38:51 -07:00
Daan Leijen
5869c85749 merge from dev 2021-06-17 19:18:57 -07:00
Daan Leijen
a83bca72b3 fixes for M1; disable interpose use zones; fix pedantic warnings 2021-06-17 19:15:09 -07:00
Daan
8af2511e66
Merge pull request #412 from diorszeng/dev-slice
fix typo
2021-06-07 16:55:03 -07:00
Daan Leijen
aeb62c2711 fix double quote includes 2021-06-07 16:50:31 -07:00
Daan Leijen
4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d90f5557a0fc1bc2afc72401e58f8cb0.
2021-06-07 16:47:57 -07:00
Daan Leijen
7b595bd957 Merge branch 'dev' into dev-slice 2021-06-06 20:31:53 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
diorszeng
0611058974
Update mimalloc-types.h
fix typo
2021-05-31 15:02:17 +08:00
Jim Huang
0f57425f80 Distinguish SI and Binary Prefixes
SI prefixes [the decimal prefixes] refer strictly to powers of 10. They
should not be used to indicate powers of 2. e.g., one kilobit
represents 1000 bits instead of 1024 bits. IEC 60027‐2 symbols are
formed adding a "i" to the SI symbol (e.g. G + i = Gi).
2021-05-30 20:13:28 +08:00
Daan Leijen
10ce8839fa merge from dev 2021-04-28 13:23:46 -07:00
Jim Huang
5940d3bcce Bump copyright date
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
Daan
766f1f9345
Merge pull request #388 from nico-abram/patch-2
Fix typo in comment
2021-04-22 10:34:13 -07:00
Daan
f941015928
Merge pull request #384 from kdrag0n/fix-android-thread-id
Fix thread ID getter on Android ARM/AArch64
2021-04-22 10:33:53 -07:00
Jim Huang
3402c6cc3f Revise the use of macOS predefined macro
Quoted from "Porting UNIX/Linux Applications to OS X,"[1]
* macro __MACH__ is defined if Mach system calls are supported;
* macro __APPLE__ is defined in any Apple computer.

__MACH__ is not specific to macOS since GNU/Hurd runs on a Mach-based
microkernel (gnumach) [2]. __MACH__ is defined by the compiler,
leading to potential confusions. The solution is just changing the
checked identifier (i.e. __APPLE__), so it is really used only on
macOS.

[1] https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
[2] https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html
2021-04-21 15:24:02 +08:00
unknown
8311cef0d1 Fix typo in comment
it -> if in mimalloc-types.h
2021-04-17 15:08:25 -03:00
Danny Lin
ad2fa2bf6f
Fix thread ID getter on Android ARM/AArch64
Android's Bionic libc stores the thread ID in TLS slot 1 instead of 0
on 32-bit ARM and AArch64. Slot 0 contains a pointer to the ELF DTV
(Dynamic Thread Vector) instead, which is constant for each loaded DSO.

Because mimalloc uses the thread ID to determine whether operations are
thread-local or cross-thread (atomic), all threads having the same ID
causes internal data structures to get corrupted quickly when multiple
threads are using the allocator:

mimalloc: assertion failed: at "external/mimalloc/src/page.c":563, mi_page_extend_free
  assertion: "page->local_free == NULL"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":100, mi_page_is_valid_init
  assertion: "page->used + free_count == page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"

Add support for Android's alternate TLS layout to fix the crashes in
multi-threaded use cases.

Fixes #376.
2021-04-07 01:59:47 -07:00
Daan Leijen
34ba03951e merge from dev 2021-04-06 11:01:06 -07:00
Daan Leijen
c6f5092287 merge from dev 2021-04-06 11:00:28 -07:00
Daan Leijen
dc6bce256d bump version to v2.0.1 2021-04-06 10:58:12 -07:00
Daan Leijen
985f313b35 bump version to 1.7.1 2021-04-06 10:56:26 -07:00
Daan Leijen
8f69e7095d Merge branch 'dev' into dev-slice 2021-02-22 14:28:22 -08:00
Daan Leijen
71ac98ab08 rename <Windows.h> include to <windows.h> for mingw compatibility (see pr #367) 2021-02-22 13:04:11 -08:00
Daan Leijen
1b22da3c28 Merge branch 'dev' into dev-slice 2021-02-02 10:46:43 -08:00
Daan Leijen
331491e1e8 build fix for Apple M1 (issue #354 and pr #356) 2021-02-02 10:46:30 -08:00
Daan Leijen
ba84aa2783 Merge branch 'dev' into dev-slice 2021-02-01 15:47:37 -08:00
Daan Leijen
a7c33a3b0e fix getting the unique thread id on the Apple M1, see issue #354. 2021-02-01 15:47:22 -08:00
Daan Leijen
bd56782f26 bump version to 2.0.0 2021-01-31 14:02:06 -08:00
Daan Leijen
8bcc60edd9 Merge branch 'dev' into dev-slice 2021-01-31 13:57:35 -08:00
Daan Leijen
92ead2d880 bump version to 1.7.0 2021-01-31 13:51:19 -08:00
Daan Leijen
36b7a3cb03 merge from dev 2021-01-30 16:37:38 -08:00
Daan Leijen
35c1fc2be9 limit memcpy as rep stosb to windows where the cpu supporst FSRM; add mi_memcpy_aligned for machine-word aligned copy. see issue #201 and pr #253 2021-01-30 14:33:46 -08:00
Daan Leijen
b93cba3b05 merge from dev 2021-01-29 16:53:52 -08:00
Daan Leijen
92ec493a5d possible fix for aligment warning (issue #341) 2021-01-29 16:21:50 -08:00
Daan Leijen
0a06884732 ensure memcpy with rep stosb is only used on windows 2021-01-29 16:09:09 -08:00
Daan
9b966c3492
Merge pull request #253 from haneefmubarak/memcpy-rep-movsb-windows-201
resolve #201 with a platform-selective REP MOVSB implementation
2021-01-29 16:00:00 -08:00
Daan Leijen
72559c5c49 merge from dev 2021-01-29 13:08:00 -08:00
Daan
b759bcf5c7
Merge pull request #329 from asl/mi_stat_agg
Unify statistics collection
2021-01-29 12:52:29 -08:00
Daan Leijen
1e9a5c2d78 Merge branch 'dev' into dev-slice 2021-01-28 17:37:13 -08:00