Commit Graph

2147 Commits

Author SHA1 Message Date
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 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
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 e42a22c9ca fix warnings 2022-11-28 09:59:48 -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
Daan 4295b9cc5f
Merge pull request #651 from vmarkovtsev/dry
Refactor C++ allocators to be DRY and protected
2022-11-27 12:12:11 -08:00
Daan 8098040c23 add pointer validity check on malloc_size when overriding on macOSX; issue #638 2022-11-25 16:38:20 -08:00
Daan 2d79ae7ecf Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2022-11-25 15:44:31 -08:00
Daan 81b261e657 add test for #587 2022-11-25 15:44:24 -08:00
Daan Leijen 604d4b259b fix assertion failure (issue #650) 2022-11-25 14:27:48 -08:00
Daan 78af17e3b3 add extra alignment test 2022-11-25 14:03:00 -08:00
Vadim Markovtsev 4cdfc18888 Refactor C++ allocators to be DRY and protected 2022-11-24 15:13:19 +01:00
Daan Leijen 4b56af178e remove ,not all freed, messag
e from reserved and committed stats (as that is expected at normal process exit)
2022-11-23 10:06:35 -08:00
Daan Leijen a7bd9c08c8 fix decommit of huge pages 2022-11-23 09:58:45 -08:00
Daan Leijen e7dac7c405 prevent retiring pages in the huge queue (which may have a small size but huge alignment) 2022-11-22 21:02:05 -08:00
Daan Leijen db0a69b482 remove comment 2022-11-22 20:57:31 -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 fed883c81f refactor mi_segment_init fix 2022-11-22 18:44:27 -08:00
Daan Leijen 00a42bf379 refactor mi_segment_init 2022-11-22 18:42:05 -08:00
Daan Leijen 78690fbec2 fix proteced status in stl allocator (pr #625)# 2022-11-22 18:41:51 -08:00