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 1feb6123d9
.
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