1377 Commits

Author SHA1 Message Date
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
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
David Carlier
a35a7d4f19 haiku biuld fix proposal, warning suppression. 2021-06-19 09:14:43 +00:00
Daan Leijen
076f815cec update readme 2021-06-17 20:19:34 -07:00
Daan Leijen
b0441da766 update readme for 1.7.2/2.0.2 2021-06-17 20:14:23 -07:00
Daan Leijen
752594e764 add test for #414 v1.7.2 2021-06-17 19:47:41 -07:00
Daan Leijen
728be93977 fix for #414 making numa node count atomic 2021-06-17 19:38:51 -07:00
Daan Leijen
a83bca72b3 fixes for M1; disable interpose use zones; fix pedantic warnings 2021-06-17 19:15:09 -07:00
Daan Leijen
c8b5b74500 improve warnings 2021-06-07 17:51:27 -07:00
Daan Leijen
bb957fcd81 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-06-07 17:00:35 -07:00
Daan
cd633b2e2a
Merge pull request #411 from jserv/predict-alloc_size
Add branch hint for _mi_os_good_alloc_size
2021-06-07 16:55:39 -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 1feb6123d90f5557a0fc1bc2afc72401e58f8cb0.
2021-06-07 16:47:57 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Jim Huang
d48c93af2c Add branch hint for _mi_os_good_alloc_size
In _mi_os_good_alloc_size, overflow caused by alignment size is rare,
and this patch added the appropriate branch hint during range checks.
2021-05-31 12:01:35 +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
e2c095fad2 fix installation directories on unix to use /lib, /include, /share; fix issues #399, #223, and #89 2021-05-21 15:15:50 -07:00
Daan Leijen
34172910e5 fix symlink and --prefix option with delayed CMAKE_INSTALL_PREFIX; fix issue #398 2021-05-21 13:01:11 -07:00
Daan
143cf9c3d6
Merge pull request #400 from mkurdej/redirect32
[Windows] Correctly choose 32-bit version of mimalloc-redirect{,32}.dll in CMake.
2021-05-21 12:17:33 -07:00
Daan
a732b762cc
Merge pull request #403 from ArcEarth/master
[CMake] Respect CMAKE_INSTALL_PREFIX at install time
2021-05-21 12:16:17 -07:00
Yupeng Zhang
712e7d3de0 [CMake] Respect CMAKE_INSTALL_PREFIX at install time
The standard way of cmake install to a destination folder is the following pattern:
```shell
cd <BUILD_DIR>
cmake <SRC_DIR>
cmake --build <BUILD_DIR>
cmake --install <BUILD_DIR> --prefix <INSTALL_DIR>
```
Right now, the `<INSTALL_DIR>` folder passed in cmake --install command is ignored,
and always installed into `C:/Program Files(x86)/...`, which is the default
`CMAKE_INSTALL_PREFIX` value passed at the `cmake <SRC_DIR>` call.
Thus, it is not possible to install the binaries into different folders
without rerun the cmake/build process.

The important thing here is, the cmake variable `CMAKE_INSTALL_PREFIX`
is supposed to be passed at `cmake --install` time with the `--prefix` argument.
In cmake file, `install` with relative path will use that prefix automaticlly.
And it is the best practice to not include CMAKE_INSTALL_PREFIX
in the `install(... DESTINATION )` argument:
```
In particular, there is no need to make paths absolute by prepending
CMAKE_INSTALL_PREFIX; this prefix is used by default if the DESTINATION is a relative path.
```
referenced from: https://cmake.org/cmake/help/latest/command/install.html
2021-05-10 12:01:03 -04:00
Marek Kurdej
acba250e60 [Windows] Correctly choose 32-bit version of mimalloc-redirect{,32}.dll. 2021-05-04 11:26:07 +02:00
Daan Leijen
73c339235c collect in debug mode in stress test 2021-04-28 16:12:32 -07:00
Daan
16b3329bd4
Merge pull request #396 from jserv/fix-copyright-date
Bump copyright date
2021-04-28 13:11:11 -07:00
Daan Leijen
29ea7a89ab add braces 2021-04-28 13:08:59 -07:00
Daan
6d1658123c
Merge pull request #391 from jserv/improve-align-down
Rewrite align_down with bitwise operations
2021-04-28 13:07:13 -07:00
Daan Leijen
aca46242ab update comment for aligned_alloc 2021-04-28 12:47:14 -07:00
Daan
45a8dc7f55
Merge pull request #385 from elbaro/fix/aligned-alloc
Fix aligned_alloc
2021-04-28 12:43:32 -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
Daan
00ddc1b8a0
Merge pull request #389 from jserv/macos-predefined-macro
Revise the use of macOS predefined macro
2021-04-22 10:25:27 -07:00
Jim Huang
52943917ad Rewrite align_down with bitwise operations
mi_align_down_ptr was implemented with multiplication and division,
which can be converted to equivalent and deterministic bit operations.
2021-04-21 13:14:53 +00: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
elbaro
ad44f76598 commit 2021-04-11 03:09:23 +09: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
b19da8e362
update readme for 1.7.1 and 2.0.1 2021-04-06 11:05:43 -07:00
Daan Leijen
985f313b35 bump version to 1.7.1 v1.7.1 2021-04-06 10:56:26 -07:00
Daan Leijen
5f596056c9 use 2-6TiB area for hints to accommodate pre-windows8 better 2021-02-24 15:49:43 -08:00
Daan Leijen
e64474e06b add virtiual gaps between hinted allocations in secure mode 2021-02-24 15:30:39 -08:00
Daan Leijen
9317256a4f improved ASLR (issue #372) 2021-02-24 15:14:17 -08:00
Daan Leijen
3228bb685f set errno ENOMEM for limited arena allocation (issue #295) 2021-02-22 14:17:25 -08:00
Daan Leijen
9f3c29c642 remove -march=native flag; see pr #362 for discussion 2021-02-22 13:09:41 -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
7962420697 fix bug in bitmap is_claimed_across; issue #368 2021-02-22 12:37:08 -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
a7c33a3b0e fix getting the unique thread id on the Apple M1, see issue #354. 2021-02-01 15:47:22 -08:00
Daan Leijen
c426ab4ea2 add condition to avoid compilation error on vs2015 (#issue 353) 2021-02-01 15:41:41 -08:00
Daan Leijen
0091a641a7 undo previous commit dcae918 due to wrong logic (issue #289) 2021-02-01 09:55:18 -08:00
Daan Leijen
dcae918b84 always do ASLR in secure mode even in debug mode (issue #289) 2021-02-01 09:49:12 -08:00
Daan
15220c6843
Update readme for v2.0 2021-01-31 14:11:35 -08:00
Daan Leijen
92ead2d880 bump version to 1.7.0 v1.7.0 2021-01-31 13:51:19 -08:00
Daan
599d6327ba
Update readme.md 2021-01-31 12:03:16 -08:00
Daan
89b7955afe
Update readme.md 2021-01-31 11:58:46 -08:00
Daan
706654f41b
Update readme.md 2021-01-31 11:58:22 -08:00
Daan
7f052290da
Update readme.md 2021-01-31 11:57:51 -08:00
Daan
620638cfaf
Update readme.md 2021-01-31 11:49:44 -08:00
Daan
2f04bec5d9
Update readme.md 2021-01-31 11:44:34 -08:00
Daan
9f31b49527
Update readme.md 2021-01-31 11:43:50 -08:00
Daan
9bacaa25c8
Update readme.md 2021-01-31 11:42:16 -08:00
Daan
08bd9d80d7
Update readme.md 2021-01-31 11:36:36 -08:00
Daan
6ccf695dcb
Update readme.md 2021-01-31 11:34:13 -08:00
Daan
bb92ee8520
Update readme.md 2021-01-31 11:32:54 -08:00
Daan Leijen
512cdd5aeb Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-01-31 11:29:32 -08:00
Daan Leijen
a1fb2a4957 add rss figures 2021-01-31 11:28:39 -08:00
Daan
a6bc463652
Update benchmark figures 2021-01-31 11:20:56 -08:00
Daan Leijen
558c8d085e update benchmark references 2021-01-31 10:23:57 -08:00
Daan Leijen
58678ac4eb move bench figures in separate folder 2021-01-31 10:21:17 -08:00
Daan Leijen
645659bb1f add new benchmark results 2021-01-31 10:16:18 -08:00
Daan Leijen
a87a808a8b Merge branch 'master' into dev 2021-01-30 17:14:31 -08:00
Daan
d98ffca987
fix indentation 2021-01-30 17:14:11 -08:00
Daan
b61996184e
Use explicit trigger syntax 2021-01-30 17:11:02 -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
92ec493a5d possible fix for aligment warning (issue #341) 2021-01-29 16:21:50 -08:00
Daan Leijen
0a06884732 ensure memcpy with rep stosb is only used on windows 2021-01-29 16:09:09 -08:00
Daan
9b966c3492
Merge pull request #253 from haneefmubarak/memcpy-rep-movsb-windows-201
resolve #201 with a platform-selective REP MOVSB implementation
2021-01-29 16:00:00 -08:00
Daan Leijen
5291487dac fix cmake typo in merge for #255 2021-01-29 15:52:18 -08:00
Daan
976becd002
Merge pull request #255 from xhochy/patch-1
Add option to install directly in CMAKE_INSTALL_PREFIX
2021-01-29 15:50:21 -08:00
Daan
71d80e914d
Merge branch 'dev' into patch-1 2021-01-29 15:49:57 -08:00
Daan Leijen
a6fa7b083e make current stat the third column instead of first 2021-01-29 14:45:16 -08:00
Daan
fb9c6ce127
Merge pull request #327 from asl/stats-cur
Print current values of stat counters as well.
2021-01-29 14:35:13 -08:00
Daan Leijen
f68c1a74da fix assertion comparison (#353) 2021-01-29 14:34:14 -08:00
Daan Leijen
a8b282091f update formatting of statistics 2021-01-29 13:03:06 -08:00
Daan
b759bcf5c7
Merge pull request #329 from asl/mi_stat_agg
Unify statistics collection
2021-01-29 12:52:29 -08:00
Daan
e9b305b1f4
Merge pull request #352 from tarc/feature/EnableUpdated__cplusplus
Add /Zc:__cplusplus to MSVC compiler flags
2021-01-29 12:41:39 -08:00
Tarcisio Rodrigues
eb5613563b Add /Zc:__cplusplus to MSVC compiler flags
Fix build errors for a clean build on Windows. For details about the
CMake teting code see https://stackoverflow.com/a/60890947/1254880
2021-01-28 23:58:41 -03:00
Daan
6327cf12c2
Merge pull request #349 from tarc/feature/avoid-cmake-matches-operator
Avoid MATCHES operator to check CMake options
2021-01-28 17:54:18 -08:00
Daan Leijen
78ce716e2d add comment on use of tpidrro_el0 on macOS 2021-01-28 17:36:56 -08:00