1770 Commits

Author SHA1 Message Date
Daan Leijen
0ca31d2db1 fix pipeline for tsan 2023-03-29 12:20:29 -07:00
Daan Leijen
8e6a475386 add ubsan and tsan to pipeline 2023-03-29 12:13:59 -07:00
Daan Leijen
651ff2c68b fix cmake for windows 2023-03-29 11:55:00 -07:00
Daan Leijen
e1e1e25d21 add ASAN to pipeline 2023-03-29 11:52:46 -07:00
Daan Leijen
2440e60d95 copy static.o to the cmake directory (issue #706) 2023-03-29 11:48:01 -07:00
Daan Leijen
8ecbc29a02 prepare readme for release 2023-03-29 11:46:56 -07:00
Daan Leijen
79f31b0e8f use syscalls for open/close etc when initializing to avoid recursion when these are intercepted (issue #713) 2023-03-28 16:44: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
560e32b2e1 update comments 2023-03-28 09:14:17 -07:00
Daan Leijen
a21ddd03fe add verbose message if thread sanitizer is enabled 2023-03-23 11:21:45 -07:00
Daan Leijen
c9dcca6a64 update comments 2023-03-22 10:31:04 -07:00
Daan
d976fbe08b remove spurious include 2023-03-22 09:56:40 -07:00
Daan
96b55bd0bb potential fix for macOS issue #697 2023-03-22 09:48:40 -07:00
Daan Leijen
70fefec837 fix huge OS page count when a timeout happens (issue #711) 2023-03-21 19:42:25 -07:00
Daan Leijen
1ded6e2dec increase env limit to 10000 entries (issue #685) 2023-03-20 14:30:38 -07:00
Daan
06f0ba232e prevent reentrancy on thread_done (issue #699) 2023-03-20 14:23:52 -07:00
Daan
b893311365 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2023-03-20 14:23:00 -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
01b460fedb add std::string test for macos 2023-03-20 13:24:11 -07:00
Daan Leijen
30df80b05a proper prototype 2023-03-20 11:50:05 -07:00
Daan Leijen
54ad5e76fd fix warnings for issues #709 2023-03-20 11:43:31 -07:00
Daan Leijen
65402836ae comments 2023-03-20 11:30:52 -07:00
Daan Leijen
287010578d update ide project files 2023-03-20 11:20:30 -07:00
Daan Leijen
2f9b2f51b9 update 2022 ide 2023-03-20 11:11:01 -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
c0c762611c add prim/osx directory 2023-03-20 10:49:56 -07:00
Daan Leijen
f58357548c restructure header files 2023-03-20 10:37:39 -07:00
Daan Leijen
6ae6c42700 simplify primitives API 2023-03-20 10:23:00 -07:00
Daan Leijen
85a2bb5c60 update process info primitive api 2023-03-20 10:22:45 -07:00
Daan Leijen
17a20f280b dont track ETW by default 2023-03-16 20:16:31 -07:00
Daan Leijen
3ebcc0bac4 fix syntax in cmakelists 2023-03-16 20:13:21 -07:00
Daan Leijen
63f88cb43d rename 2023-03-16 20:10:46 -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
8a1f6c82b2 move prim files in subdirectories 2023-03-16 17:47:00 -07:00
Daan Leijen
2e85af5bb2 Merge branch 'dev' into dev-platform 2023-03-16 17:42:11 -07:00
Daan Leijen
134b23b921 fix asan/valgrind api fill test 2023-03-16 17:42:00 -07:00
Daan
7d834864bb fix macOSX compilation 2023-03-16 11:35:11 -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
9fb4f2a501 update vs2019 ide 2023-03-15 19:25:18 -07:00
Daan Leijen
cfe3d04299 cleanup 2023-03-15 19:15:53 -07:00
Daan Leijen
479ef4bf4c fix precise free size in aligned allocation 2023-03-15 19:07:35 -07:00
Daan Leijen
84ef963a47 remove conioinclude 2023-03-15 14:43:35 -07:00
Daan Leijen
9a2dbf373e move thread init to primitives 2023-03-15 13:35:23 -07:00
Daan Leijen
973268bf1e move random initialization to primitives 2023-03-15 12:40:18 -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
4348a05d0f small fixes 2023-03-14 18:24:38 -07:00
Daan Leijen
10f62eb5a1 add c primitives, move getenv into primitives 2023-03-14 18:10:00 -07:00
Daan Leijen
69cb30a874 move process info into primitives 2023-03-14 17:15:52 -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
64fb009695 fix warning with zero padding 2023-03-05 22:27:45 -08:00
Daan Leijen
e912697d90 fix warning with zero padding 2023-03-05 22:26:05 -08:00
Daan Leijen
b3f3a0de3b include psapi.h instead of defining PROCESS_MEMORY_COUNTERS on windows 2023-03-05 22:22:36 -08:00
Daan Leijen
465eb81d30 track free blocks in valgrind for heap_destroy as well 2023-03-05 18:18:41 -08:00
Daan Leijen
82c85d1a13 fix valgrind mem for large alignment 2023-03-05 18:03:04 -08:00
Daan
056c2ce45b match track free size to tracked malloc size 2023-03-05 11:01:51 -08:00
Daan
20ae35a1d4 remove accidental -fsanitize 2023-03-04 16:03:14 -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
e24c7c9de6 fix asan compilation on macOSX 2023-03-04 09:58:17 -08:00
Daan
6cc0ad72fc match declaration of mi_malloc_size_checked on macOS 2023-03-04 09:58:02 -08:00
Daan
0d9e7ab61e remove extern inline from alloc_new functions to avoid link warnings 2023-03-04 09:27:04 -08:00
Daan
cb4fc2c792 reset stats for stress test when using mimalloc 2023-03-04 09:17:35 -08:00
Daan Leijen
6a230f8329 fix compilation of heap specific STL allocators for vs2017 2023-02-07 11:07:52 -08:00
Daan Leijen
507f75b56c update vs2017 project files 2023-02-07 11:07:08 -08:00
Daan Leijen
389b004cd0 update mimalloc-redirect for win11; potential fix for issue #657, attempt 3 2023-02-01 11:28:01 -08:00
Daan Leijen
23868f0801 update mimalloc-redirect for win11; potential fix for issue #657, attempt 2 2023-02-01 11:23:20 -08:00
Daan Leijen
fca492aacc update mimalloc-redirect for win11; potential fix for issue #657 2023-01-31 21:08:43 -08:00
Daan Leijen
4cebb48062 bump version to v1.7.9 v1.7.9 2022-12-23 13:29:06 -08:00
Daan Leijen
9adb032e9c test non-default heap 2022-12-23 13:04:53 -08:00
Daan Leijen
e68f2c1479 fix recursion issue on exit on windows, #672 2022-12-23 13:02:16 -08:00
Daan Leijen
37d5ce9498 comment out include 2022-12-21 12:09:52 -08:00
Daan Leijen
aa2d00fde8 make heap_new inline again 2022-12-21 10:28:58 -08:00
Daan Leijen
ef3f651f3f change implementation of mi_realpath to be more robust; see issue #660 2022-12-19 18:59:33 -08:00
Daan Leijen
94b8cb870e quote path in post-build event (issue #666 2022-12-19 18:40:12 -08:00
Daan Leijen
b701d4cbfa bump cmake minimal version to 3.13 to support CMAKE_INTERPROCEDURAL_OPTIMIZATION -- see PR 656. 2022-12-19 18:39:52 -08:00
Daan Leijen
ab99eb5830 quote path in post-build event (issue #666 2022-12-19 18:12:27 -08:00
Daan Leijen
4d1e74aadd add comment 2022-12-19 18:01:58 -08:00
Daan Leijen
95b61b8c3d forward libc interface used by wasi-libc; originally by @anuraaga in PR #667 but rebased to the dev branch 2022-12-19 17:45:15 -08:00
Daan Leijen
2b0421a25c fix -Wunused-function for mi_strn-cmp; originally by @rui314 in PR #662 but rebased to dev branch 2022-12-19 17:38:39 -08:00
Daan Leijen
8c89a77064 add default constructors to stl heap allocators 2022-12-19 17:25:49 -08:00
Daan
95e88a699e
Merge pull request #653 from vmarkovtsev/fix-const
Make "destroy" a compile-time constant + fix const allocator comparisons
2022-12-19 17:11:16 -08:00
Daan
51e2be6647
Merge branch 'dev' into fix-const 2022-12-19 17:10:54 -08:00
Daan Leijen
4f2fdf76a0 add braces 2022-12-19 16:59:24 -08:00
Daan Leijen
dfc95f34c4 first try WriteFile for a redirected stderr 2022-12-19 16:57:50 -08:00
Daan Leijen
505a14bbd8 cleanup on-demand loading of psapi and bcrypt on windows 2022-12-19 16:50:13 -08:00
Daan
59ea84cadc
Merge pull request #654 from dscho/git-for-windows-assorted-fixes
Assorted fixes from the Git for Windows project
2022-12-19 16:40:48 -08:00
Johannes Schindelin
089e85b113 Make MIMALLOC_SHOW_STATS work with redirected stderr
Setting `MIMALLOC_SHOW_STATS` to ask mimalloc to print out something
after the process is done is the easiest way to verify that a
mimalloc-enabled Git is running.

So it better work and not try to write to a Win32 Console when it got a
regular file handle instead or, as is the case in Git for Windows'
regular Git Bash window, an emulated pseudo terminal.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 01:13:00 +01:00
Johannes Schindelin
edb181c377 Lazy-link to bcrypt
Let's not make `bcrypt.dl` a link-time bound library. Instead, load the
`BCryptGenRandom()` function dynamically. When needed. If needed.

This helps reduce the start-up cost of any mimalloc user because the
time spent on loading dynamic libraries is non-negligible.

Note: In contrast to how `os.c` loads libraries and obtains function
addresses, we cannot call `FreeLibrary(hDll)` here because that would
unload the `bcrypt` library before we want to use it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 01:13:00 +01:00
Johannes Schindelin
948a0c44df Lazy-load psapi.dll
Let's load the `GetProcessMemoryInfo()` function dynamically. When
needed. If needed.

This is necessary because the start-up cost spent on loading dynamic
libraries is non-negligible.

Note: In contrast to how `os.c` loads libraries and obtains function
addresses, we cannot call `FreeLibrary(hDll)` here because that would
unload the `bcrypt` library before we want to use it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 01:12:59 +01:00
Johannes Schindelin
11cab6a0c0 Avoid %z format
This format is not supported by MSVC runtimes targeted by the mingw-64
toolchain.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:43 +01:00
Johannes Schindelin
2c40e0d02f Allow running in Windows Nano Server containers
The `GetNumaProcessorNode()` symbol is not defined in Nano Server's DLLs
(because that function is long deprecated). This causes problems with
any executable that uses mimalloc when trying to run on Nano Server.

Instead of importing this function statically, try to import it
dynamically, and fall back gracefully if it cannot be loaded.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:43 +01:00