Daan Leijen
efb7a159d5
Merge branch 'dev' into dev-slice
2023-02-01 11:23:37 -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
a6f092a6f5
Merge branch 'dev' into dev-slice
2023-01-31 21:08:55 -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
1e4b6b734e
fix assertion that was too strict (issue #691 )
2023-01-31 16:02:35 -08:00
Daan Leijen
7bb34e056c
fix readme
2022-12-23 13:35:50 -08:00
Daan Leijen
28cf67e5b6
bump version to 2.0.9
v2.0.9
2022-12-23 13:31:56 -08:00
Daan Leijen
4cebb48062
bump version to v1.7.9
v1.7.9
2022-12-23 13:29:06 -08:00
Daan Leijen
e87badaa1b
Merge branch 'dev' into dev-slice
2022-12-23 13:05:05 -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
d1fff1119a
reorganize span free code
2022-12-21 12:19:09 -08:00
Daan Leijen
a873ddc4fa
merge from dev
2022-12-21 12:10:46 -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
0f796a56a9
fix bug where eager committed memory would be immediatedy decommitted; possible fix for issue #669
2022-12-20 18:59:55 -08:00
Daan Leijen
11ddba7a06
Merge branch 'dev' into dev-slice
2022-12-19 18:59:45 -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
9b2dd0d757
Merge branch 'dev' into dev-slice
2022-12-19 18:02:13 -08:00
Daan Leijen
4d1e74aadd
add comment
2022-12-19 18:01:58 -08:00
Daan Leijen
d862c8a3eb
Merge branch 'dev' into dev-slice
2022-12-19 17:53:51 -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
35997c0384
Merge branch 'dev' into dev-slice
2022-12-19 17:38:53 -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
92ffc25d79
merge from dev
2022-12-19 17:08:45 -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
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
e42a22c9ca
fix warnings
2022-11-28 09:59:48 -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
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 Leijen
6988bbcca0
fix duplicate definition (issue #652
2022-11-27 12:03:16 -08:00
Daan
afb5468ded
Merge branch 'dev' into dev-slice
2022-11-25 16:38:46 -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
55dac20805
Merge branch 'dev' into dev-slice
2022-11-25 14:28:06 -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
58d12723d6
make mi_collect(true) actually free the segment caches
2022-11-23 10:34:19 -08:00
Daan Leijen
c613c1de94
merge from dev
2022-11-23 10:10:55 -08: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
9e56567d23
fix decommit for huge objects
2022-11-23 09:50:29 -08:00
Daan Leijen
20880807ce
remove comment
2022-11-22 22:05:18 -08: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
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
85b5fa11bc
merge segment_init refactoring from dev
2022-11-22 19:03:26 -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
Daan Leijen
7dce31f743
reenable decommitting of a huge aligned prefix
2022-11-22 18:13:27 -08:00
Daan Leijen
061bbe25b0
update readme
2022-11-22 17:17:14 -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
d01ecc272b
Merge branch 'dev' into dev-slice
2022-11-22 10:58:40 -08:00
Daan
fe300ca141
fix extern inline definition (issue #643 )
2022-11-22 10:58:02 -08:00
Daan
631f22fbda
change library linkage to PRIVATE (issue #646 )
2022-11-22 10:54:40 -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
3ccf849c1a
more refined decommit extend delay
2022-11-21 15:02:41 -08:00
Daan Leijen
961778f0a7
Merge branch 'dev' into dev-slice
2022-11-21 10:25:36 -08:00
Daan Leijen
e6ab602ca1
add comment
2022-11-21 10:24:02 -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
ba8c0f8903
avoid warning for large aligned blocks on linux
2022-11-07 17:21:03 -08:00
daan
67439bb4e5
add NULL check in _mi_segment_of
2022-11-07 17:12:14 -08:00
daan
89ba6cc2fa
merge from dev
2022-11-07 16:48:00 -08:00