1765 Commits

Author SHA1 Message Date
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
09e59e0610 use size_t instead of uintptr_t where appropiate 2021-11-13 15:13:16 -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
959845540d use W4 for msvc compilation 2021-11-13 14:13:03 -08:00
daan
c56be7ac5a show cflags in cmake; fix -fno-builtin-malloc flag 2021-11-13 13:30:03 -08:00
daan
d52b559b57 use eager delay after 2 threads 2021-11-12 19:59:59 -08:00
daan
f9ac60a90f suppres eager commit delay for the first 4 threads 2021-11-12 19:03:20 -08:00
daan
d2de66b8fa do not delay eager commit for the main thread 2021-11-12 18:44:33 -08:00
Daan
f72e5688f5 remove assign in while condition 2021-11-10 11:58:04 -08:00
Daan
fd61997cef improve aligned support on BSD and MAP_ALIGN systems 2021-11-10 11:26:36 -08:00
Daan
89abbe75d8 improve aligned support on BSD and MAP_ALIGN systems 2021-11-10 11:23:11 -08:00
Daan
8c9ccea2f5 fix huge page madvise in case mmap failed 2021-11-10 10:46:06 -08:00
Daan
e96614961f fix printf format type mismatches (issue #486) 2021-11-06 14:19:14 -07:00
daan
f2e3cca213 fix build for missing malloc_good_size 2021-11-04 19:10:15 -07:00
Daan
c47de7eb90 improve macOS overriding 2021-11-04 18:55:12 -07:00
Daan
e853f530a0 add noexcept attributes to improve mi_free codegen 2021-11-04 18:54:57 -07:00
Daan
32ee13f41e improve macOS M1 performance; use interpose in combination with zone's; add -fno-builtin-malloc flag in building with MI_OVERRIDE 2021-11-02 21:54:44 -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
Daan
74efd6ddac use load relaxed in mi_free for better code on M1 2021-11-02 21:50:54 -07:00
Daan
dbf8bafc3a avoid accessing the thread_id after process initialized is set 2021-11-02 21:50:15 -07:00
Daan
d0d47e6489 avoid accessing the thread_id after process initialized is set 2021-11-02 21:49:05 -07:00
dc
5b0e73281f fix spurious build warning with overflow builtins 2021-10-28 22:43:21 +01:00
sblondon
5a5e4e3036
Fix preload path in documentation example
The .so files are usually in `/usr/lib`, not `/usr/bin`. The updated path is the same as below in the text.
2021-10-28 15:01:36 +02:00
Yaroslav Syrytsia
0ead911b6b cmake: removed hardcoded names for top level configuration 2021-10-28 12:04:48 +03:00
Daan Leijen
1b1c9186a4 suppress warning on discard attribute on forwards 2021-10-27 19:06:27 -07:00
Daan
5fd77aa198 refactor os_overcommit detection 2021-10-27 17:39:11 -07:00
Daan
0335d32766 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-27 17:25:09 -07:00
Daan
88d5349d47
Merge pull request #479 from devnexen/overcommit_if_the_system_approves
proposal to not overcommit page unconditionally on Linux and FreeBSD,
2021-10-27 17:24:57 -07:00
Daan
13b30bf2dd
Merge branch 'dev' into overcommit_if_the_system_approves 2021-10-27 17:12:18 -07:00
Daan
f3db35e6b6 Merge commit 'fdcdc4c' into dev 2021-10-27 17:09:30 -07:00
Daan
fdcdc4cf2a only set visibility attribute when compiling for a shared library (issue #475) 2021-10-27 17:08:41 -07:00
Daan
6ccf7e87c0 minor edits 2021-10-27 17:08:00 -07:00
Daan
4d8ba61a2d Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-27 17:03:05 -07:00
Daan
a0c7cf56e6
Merge pull request #477 from devnexen/numa_domains_fbsd
NUMA base detection on FreeBSD.
2021-10-27 17:01:52 -07:00
Daan
f38956568c only set visibility attribute when compiling for a shared library 2021-10-27 17:01:12 -07:00
Daan
8cf618a452
Merge pull request #476 from devnexen/malloc_usable_size_fbsd
fixes malloc_usable_size signature on FreeBSD.
2021-10-27 12:11:43 -07:00
Daan
ca9785d40e fix compilation with MI_DEBUG>3, issue #480 2021-10-27 10:06:34 -07:00
David Carlier
00edd9201b proposal to not overcommit page unconditionally on Linux and FreeBSD,
respecting userland settings.
2021-10-24 20:57:58 +01:00
David Carlier
2d2d9af5c6 while at it, doing dragonflybsd too 2021-10-24 11:37:20 +01:00
David Carlier
fc7777ee8c NUMA base detection on FreeBSD. 2021-10-22 10:11:20 +01:00
David Carlier
898a23ec2b fixes malloc_usable_size signature on FreeBSD. 2021-10-22 08:12:14 +01:00
Daan
02938b7048
Merge pull request #471 from devnexen/haiku_build_update
Haiku build update, since the beta3 few more posix functions are avai…
2021-10-21 15:25:52 -07:00
Daan
2417f6d8a7
Merge pull request #474 from tiran/mi_prefix_os_random
Rename _os_random_weak to _mi_os_random_weak
2021-10-21 15:21:19 -07:00
Daan
1fc83cda05
Merge pull request #472 from Brooooooklyn/patch-1
Fix ARM64 MSVC linker problem
2021-10-21 15:16:43 -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
LongYinan
45321237b5
Fix ARM64 MSVC linker problem
Close https://github.com/microsoft/mimalloc/issues/426
2021-10-21 21:15:08 +08:00
David CARLIER
b5b52b8879 Haiku build update, since the beta3 few more posix functions are available e.g. madvise 2021-10-20 18:33:12 +00:00
Daan
d482555675 Fix warnings on osx with g++ compilation 2021-10-20 09:55:21 -07:00
Daan
e02f88a11c Fix warnings with g++-11 compilation 2021-10-20 09:55:03 -07:00
Daan
4d89176eb4 add MI_USE_LIBATOMIC to link with -latomic on older systems (see also PR #429); rename MI_INTERPOSE to MI_OSX_INTERPOSE 2021-10-20 09:35:58 -07:00
Daan
8dd8db8354
Merge pull request #470 from devnexen/unit_test_clang_build_fix
api test conceal gcc pragma
2021-10-20 08:32:28 -07:00
David CARLIER
5834751ca6 api test conceal gcc pragma 2021-10-20 16:17:13 +01:00
Daan Leijen
10c31f9b41 fix warnings 2021-10-19 15:13:01 -07:00
daan
505ea78cae Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-19 15:07:19 -07:00
Daan
ae5aae7e10 allow decommit in arena separate from initial commit 2021-10-19 14:00:40 -07:00
Daan
bb00a5a32e remove MADV_FREE_REUSABLE from mi_os_reset as it needs MADV_FREE_REUSE to reuse the memory again. 2021-10-19 13:11:11 -07:00
Daan
9a724889ea refine stat output with new SI units 2021-10-19 12:50:16 -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
2adf69859b
Merge pull request #418 from devnexen/haiku_build_fix
haiku biuld fix proposal, warning suppression.
2021-10-19 12:19:44 -07:00
Daan
6068a8bb1b
Merge pull request #420 from hankluo6/typo
Fix typo
2021-10-19 12:17:44 -07:00
Daan
62389f34fa Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-19 10:56:19 -07:00
Daan
2d821003b0 don't add prefix if build type is None (PR #427) 2021-10-19 10:56:13 -07:00
Daan
9769cd4103
Merge pull request #428 from Logarithmus/fix-test-i686
Fix 'malloc-nomem1' test for 32-bit architectures
2021-10-19 10:51:17 -07:00
Daan
adeef8d403 formatting 2021-10-19 10:31:49 -07:00
Daan
4b52ce4095
Merge pull request #450 from bmalrat/FixStatOnWindowsRealloc
Fixed stats in mi_os_mem_alloc_aligned on windows when re-allocate
2021-10-19 10:29:16 -07:00
Daan
b4a5c8459d
Merge pull request #461 from objectx/patch-1
fix: Fix a typo
2021-10-19 10:25:16 -07:00
Daan
20a3eee6f0
Merge pull request #449 from bmalrat/FixTypo
Fixed typo in header
2021-10-19 10:24:54 -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
f0f9aecfe4 add comment on #if ending 2021-10-19 09:52:20 -07:00
Daan
4841bc1721
Merge pull request #465 from thomcc/no-getenv
Add an option to disable environment access inside options.c
2021-10-19 09:49:34 -07:00
Daan
ea46430016
Merge pull request #468 from tiran/default_source
Define _DEFAULT_SOURCE for syscall and realpath
2021-10-19 09:40:21 -07:00
Daan
60937b5bc8 add -Wstrict-prototypes flag during compilation 2021-10-19 09:39:33 -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
Daan
d49b3a95a2
Merge pull request #464 from JJL772/master
Fix `_mi_error_message` printf formatting error
2021-10-19 09:28:20 -07:00
Christian Heimes
afbcf20f24 Define _DEFAULT_SOURCE for syscall and realpath
Define ``_DEFAULT_SOURCE`` in ``random.c`` and ``alloc.c``. The macro
is required for ``syscall()`` and ``realpath()``. Other files like
``os.c`` already define the macro.

Signed-off-by: Christian Heimes <christian@python.org>
2021-10-19 15:07:54 +02: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
22c2fd82cc ensure managed os memory is at least one arena block in size 2021-10-18 20:44:19 -07:00
Daan Leijen
bcce4d52bf fix bug in determination of block size in pre-reserved arena memory 2021-10-18 20:39:39 -07:00
Daan
d6bbc08119 prefer monotonic clock for stats (issue #457) 2021-10-18 18:24:59 -07:00
Daan Leijen
6ef15943cc fix comments 2021-10-18 16:59:19 -07:00
Daan Leijen
bd8e3fd8e1 increase robustness of primitive windows allocation by always using a fallback to VirtualAlloc 2021-10-18 16:46:06 -07:00
Daan Leijen
0fb61c9eaa do not call exit if try handler fails but use abort instead 2021-10-18 16:25:10 -07:00
Thom Chiovoloni
3c058f07a9
Add an option to disable automatic use of getenv inside options.c 2021-10-08 23:59:35 -07:00
Jeremy Lorelli
c21b6df51e Fix missing parameter in mi_free error message 2021-10-05 08:41:03 -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
679aad0659 update wasm support with emscripten compilation; now using sbrk instead of wasm_memory_grow 2021-10-01 15:05:01 -07:00
Masashi Fujita
9ee780894a
fix: Fix a typo 2021-09-16 03:35:56 +09:00
paulip1792
a2c3b0f8af add option to reserve huge os pages at a specific numa node. 2021-08-10 16:30:44 +08:00
bmalrat
ee0b01c84d Fixed stats in mi_os_mem_alloc_aligned on windows when re-allocate
In the last try the previous mi_os_mem_free decrease stat and mi_win_virtual_alloc doesn't increase it
2021-08-04 17:46:58 -04:00
bmalrat
30be78d97a Fixed typo in headers 2021-08-04 17:31:48 -04:00
Daan Leijen
32c5e4774f update tests with static 2021-07-26 19:14:29 -07:00
Daan Leijen
bf19c6b3d6 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-07-26 19:10:27 -07:00
Daan Leijen
a3cf23c19f add test for #445 2021-07-26 19:10:21 -07:00
Daan
46cd125313
Merge pull request #423 from jserv/preprocessor-guard
Eliminate preprocessor warnings due to undefined "__GNUC__" with ClangCL
2021-06-30 20:58:19 -07:00
Artur Sinila
edb0b93c6f
Fix 'malloc-nomem1' test for 32-bit architectures 2021-06-29 22:38:43 +03:00
Jim Huang
c4947c8879 Use secure random generator on macOS
The implementation of arc4random_buf differs from its documentation. It
is documented as "always successful, and no return value is reserved to
indicate an error" for the sake of FreeBSD compatibility [1]. However,
the actual implementation on macOS invokes function "ccrng_generate" [2]
without validating the error cases. It might fail silently[3], which leads
to unexpected source of entropy.

The original arc4random used the RC4 a.k.a. ARC4 algorithm, and ChaCha20
based implementation was introduced in FreeBSD 12.0. Since macOS 10.12,
it was replaced with the NIST-approved AES cipher, and it may be replaced
again in the future as cryptographic techniques advance. Therefore, we
should not assume that arc4random never fails.

On the contrary, CCRandomGenerateBytes(), part of Cryptographic Services [4],
returns cryptographically strong random bits with explicit status code.
This patch properly calls CCRandomGenerateBytes() and checks the status.

[1] https://www.freebsd.org/cgi/man.cgi?query=arc4random_buf
[2] https://opensource.apple.com/source/CommonCrypto/CommonCrypto-60178.40.2/lib/CommonRandom.c.auto.html
[3] https://opensource.apple.com/source/Libc/Libc-1439.40.11/gen/FreeBSD/arc4random.c.auto.html
[4] https://developer.apple.com/documentation/security
2021-06-25 12:37:00 +08:00
Jim Huang
71b2c441bb CI: Update the macOS image to version 10.15 2021-06-25 10:09:19 +08: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