Commit Graph

469 Commits

Author SHA1 Message Date
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 6068a8bb1b Merge pull request #420 from hankluo6/typo
Fix typo
2021-10-19 12:17:44 -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 1917fbd847 Merge pull request #467 from tiran/strict_prototypes
Fix strict function prototype warnings
2021-10-19 09:35:40 -07: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 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
paulip1792 a2c3b0f8af add option to reserve huge os pages at a specific numa node. 2021-08-10 16:30:44 +08:00
bmalrat 30be78d97a Fixed typo in headers 2021-08-04 17:31:48 -04: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
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 aeb62c2711 fix double quote includes 2021-06-07 16:50:31 -07:00
Daan Leijen 4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
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 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
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
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
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 Leijen 985f313b35 bump version to 1.7.1 2021-04-06 10:56:26 -07:00