401 Commits

Author SHA1 Message Date
daan
d6901558cd enable large OS page support on Windows 2019-06-28 22:35:57 -07:00
daan
6eaf387891 Add support for aligned allocation on Windows using VirtualAlloc2 2019-06-28 19:48:30 -07:00
Daan
38eb0a9449
Update readme.md
Add Azure pipelines badge
2019-06-27 13:43:23 -07:00
daan
ae47a2b13e Add initial testing file, test target, and readme about testing, issue #10, pr #57 2019-06-27 13:36:19 -07:00
daan
4c87643c29 add check to see if we truly override the system malloc 2019-06-27 13:34:50 -07:00
daan
d2a2508af3 fix overly restrictive assertion 2019-06-27 13:34:14 -07:00
daan
1e636c45da add check for overflowing size allocation 2019-06-27 13:33:28 -07:00
daan
12d756e7b2 fix page count of heap when absorbing 2019-06-27 13:32:44 -07:00
daan
36826a96c9 add power-of-two check to posix_memalign, pr #56 2019-06-27 13:29:00 -07:00
daan
ec2a8f387b strengthen alignment check to be void* aligned 2019-06-27 13:27:53 -07:00
Daan
5dfced26c2
Merge pull request #49 from Benzodia/master
Remove underscore prefixes to match c lanuguage standard
2019-06-26 08:44:25 -07:00
Daan
fcb338a21b
Merge pull request #51 from Qix-/patch-1
is it -> as it
2019-06-26 08:43:02 -07:00
Qix
45b254f08d
is it -> as it 2019-06-26 12:53:46 +02:00
Julian Fang
c19d3a27a8 Remove underscore prefixes to match c lanuguage standard 2019-06-26 12:57:13 +08:00
daan
fac0d4b409 fix passing void as argument 2019-06-25 20:06:34 -07:00
daan
b3ce61c408 fix atomic statistics counter increase 2019-06-25 20:05:43 -07:00
daan
654bcd7049 Merge branch 'master' into dev 2019-06-25 19:57:45 -07:00
daan
9ba53d3e2b fix missing prototype for heap_alloc_small 2019-06-25 19:57:21 -07:00
Daan
1713c37f9d
Merge pull request #28 from jserv/gcc-visibility
Avoid unnecessary symbol exposure with ELF-based systems
2019-06-25 19:54:28 -07:00
daan
cae02b4676 Merge branch 'master' into dev 2019-06-25 19:45:59 -07:00
Daan
4c1d848d88
Merge pull request #38 from dscho/azure-pipelines
Set up CI (Azure Pipelines)
2019-06-25 19:43:36 -07:00
Daan
f5d1170ae7
Merge pull request #41 from jedisct1/c-prototypes
fn() is not a valid C prototype
2019-06-25 19:38:44 -07:00
Daan
901413fadd
Merge pull request #44 from jserv/fix-conditional-build
Correct the use of MI_DEBUG by conditional build
2019-06-25 19:35:26 -07:00
Jim Huang
47e822c70f Correct the use of MI_DEBUG by conditional build
MI_DEBUG is a macro rather than a variable.
2019-06-25 21:59:20 +08:00
Frank Denis
59a714725b Read-only strings should be const char * 2019-06-25 12:19:36 +02:00
Frank Denis
236cd2e65c fn() is not a valid C prototype 2019-06-25 12:16:36 +02:00
Johannes Schindelin
b2706a05bb Set up CI with Azure Pipelines
This sets up an Azure Pipeline to build the library, publishing
the artifacts for convenience.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-06-25 10:24:44 +02:00
Jim Huang
256eb97849 Avoid unnecessary symbol exposure with ELF-based systems
GCC's default visibility is "public" but can be changed to
"hidden" with the argument "-fvisibility=hidden".

Tested with x86_64 / Ubuntu Linux 18.04 LTS:

[before]
$ nm -g -C libmimalloc.so | grep "T " | wc -l
142

[after]
$ nm -g -C libmimalloc.so | grep "T " | wc -l
93

This patch does not change the build on macOS.
2019-06-25 10:00:22 +08:00
daan
c6c1d5fffd update docs to new MI_ prefixed build options 2019-06-24 19:00:16 -07:00
daan
4ea0e2b4ba Merge branch 'master' into dev 2019-06-24 18:54:27 -07:00
daan
91cb4cee8a use MI_ prefix for all options to better support subdirectory cmake, issue #3 2019-06-24 18:54:03 -07:00
Daan
30b8624d6e
Merge pull request #22 from myd7349/win32-cmake-patch
Fix CMake configuration on Windows
2019-06-24 18:19:49 -07:00
daan
c1226611c6 Merge branch 'master' into dev 2019-06-24 18:13:04 -07:00
Daan
8bb8852d4f
Merge pull request #17 from jserv/macos-rebranding
Apple rebrands "OS X" as "macOS"
2019-06-24 18:12:06 -07:00
Daan
e86935e108
Merge pull request #18 from jserv/fix-typo
Fix typo
2019-06-24 18:09:26 -07:00
daan
cc951affac fix compilation on older mac systems without CLOCK_MONOTONIC 2019-06-24 18:06:46 -07:00
daan
a16d95375f remove lock code from atomics (as it is unused) 2019-06-24 17:54:41 -07:00
Daan
8e244f6616
Merge pull request #33 from dscho/fix-prototypes
Use `void` in the signatures of parameter-less functions
2019-06-24 17:49:50 -07:00
Daan
460ac23307
Merge pull request #34 from jserv/use-clock_gettime
Use clock_gettime() instead of timespec_get()
2019-06-24 17:48:46 -07:00
myd7349
b7c8d8f007 Fix CMake configuration on Windows
- Do not define MI_MALLOC_OVERRIDE when built as a static library
- Use different output names for shared lib and static lib
2019-06-25 08:02:17 +08:00
daan
f36149a9ac fix format specifiers 2019-06-24 12:20:32 -07:00
Jim Huang
855e2f0d89 Use clock_gettime() instead of timespec_get()
clock_gettime(CLOCK_REALTIME, &ts) is equivalent to timespec_get(&ts,
TIME_UTC) in C11.

It has the advantage that avoids the following building error when building
with macOS:

  warning: 'timespec_get' is only available on macOS 10.15 or newer
   [-Wunguarded-availability-new]
2019-06-24 23:56:19 +08:00
daan
cbbd57322a Merge branch 'master' into dev 2019-06-24 08:12:25 -07:00
Johannes Schindelin
464efa80b0 Fix prototypes of parameter-less functions
GCC does want to complain about parameter-less functions declared
without the recommended `void` as parameter list.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-06-24 17:03:33 +02:00
daan
91222691cb fix more warnings on mingw build 2019-06-24 00:42:45 -07:00
daan
c1c848516c fix warnings on mingw build 2019-06-24 00:37:15 -07:00
daan
faadceadf5 Merge branch 'master' into dev 2019-06-24 00:21:07 -07:00
daan
443fa0fbb5 fix assertions for the new huge page cache 2019-06-24 00:06:22 -07:00
daan
f0731862d6 fix compilation on mingw, issue #25 2019-06-23 23:17:44 -07:00
daan
cd7aa0ce83 improve handling of huge pages in the cache 2019-06-23 23:15:42 -07:00
daan
43568fa422 ensure huge pages are part of the segment cache to avoid mmap calls 2019-06-23 21:37:43 -07:00
daan
e5e2b789ba fix pool commit for windows 2019-06-23 20:41:34 -07:00
Jim Huang
a667971cbf Apple rebrands "OS X" as "macOS"
In 2012, with the release of OS X 10.8 Mountain Lion, the name of the
system was shortened from Mac OS X to OS X. In 2016, with the release
of macOS 10.12 Sierra, the name was changed from OS X to macOS to
streamline it with the branding of Apple's other primary operating
systems: iOS, watchOS, and tvOS.

Reference: https://en.wikipedia.org/wiki/MacOS
2019-06-24 10:15:50 +08:00
Jim Huang
243636b6a1 Fix typo in comment 2019-06-24 10:13:43 +08:00
daan
3526b09903 fix gcc warning 2019-06-23 18:37:54 -07:00
Daan Leijen
ef02104fd3 fix posix_memalign according to issue #27 2019-06-23 10:59:47 -07:00
Daan
fab7329c7a
Merge pull request #24 from jserv/clarify-license
Clarify top-level license file
2019-06-23 10:47:38 -07:00
Daan
902b8ba639
Merge pull request #31 from jserv/fix-typo-again
Fix typo in comments
2019-06-23 10:46:00 -07:00
Jim Huang
78c7a1f349 Fix typo in comments 2019-06-24 01:40:28 +08:00
Daan
f3cea2c22a
Merge pull request #19 from jserv/arm-aarch64-tls-register
Support ARM/Aarch64 TLS register fastpath
2019-06-23 10:39:28 -07:00
Daan
38d1aad9f7
Merge pull request #20 from jserv/arm-aarch64-atomic-yield
Implement ARM/Aarch64 atomic_yield fastpath
2019-06-23 10:25:36 -07:00
Jim Huang
b1d299b35b Clarify top-level license file
To be consistent with other Microsoft open source projects, each source
file points to the file "LICENSE" in top-level directory.
2019-06-23 19:53:34 +08:00
Jim Huang
77991fccee Implement ARM/Aarch64 atomic_yield fastpath 2019-06-23 16:53:49 +08:00
Jim Huang
3841b32f9d Support ARM/Aarch64 TLS register fastpath
Tested with Ubuntu Linux 18.04 LTS running on Marvell/Cavium ThunderX,
which consists of Armv8 based processors.
2019-06-23 16:30:20 +08:00
Daan
06f8da4218
Merge pull request #15 from krytarowski/netbsd-1
Fix build on NetBSD
2019-06-22 21:04:15 -07:00
Daan
52ba2d69a0
Merge pull request #13 from tmcclintock/master
Fixed a small typo in the readme.
2019-06-22 21:03:47 -07:00
Daan
f704d56a62
Merge pull request #12 from jedisct1/fix-mi_process_info-placeholder
Fix mi_process_info placeholder prototype
2019-06-22 21:03:29 -07:00
Kamil Rytarowski
b0b1b43dba Fix build on NetBSD
Add missing argument in mi_mmap()
2019-06-23 00:06:41 +02:00
Tom McClintock
aad7a9b083 Fixed a small typo in the readme. 2019-06-22 17:16:54 -04:00
Frank Denis
4d67e58e0f Fix mi_process_info placeholder prototype 2019-06-22 22:43:14 +02:00
Daan
8a81a6c68a
Update readme.md
Fix links to citeseer
2019-06-22 12:00:18 -07:00
Daan
7d1d449e89
Update readme.md
Fixed link to Crundal's presentation
2019-06-22 11:57:43 -07:00
Daan Leijen
65e29fa5d9 Merge branch 'master' of https://github.com/microsoft/mimalloc 2019-06-22 11:50:19 -07:00
Daan Leijen
79bfe52255 fix accidental delete 2019-06-22 11:50:03 -07:00
Daan
cf21592182
Update readme.md
Remove invisible spaces breaking urls
2019-06-22 11:41:18 -07:00
Daan Leijen
e52ca3bfa9 possible fix for ARM linux compilation 2019-06-22 11:33:18 -07:00
Daan
9d55a356ba
Add link to the API documentation 2019-06-22 10:40:24 -07:00
Daan
6e6dd1a20e
Update index.html 2019-06-22 10:37:28 -07:00
Daan Leijen
a94521e9e1 Add full documentation 2019-06-22 10:30:09 -07:00
Daan Leijen
9d272c064c start on github documentation 2019-06-22 10:28:41 -07:00
Daan
8ba50d63f2
Merge pull request #1 from chosungmann/fix-spelling-errors
Fix spelling errors
2019-06-22 08:20:07 -07:00
Sungmann Cho
def97b0fd1 Fix spelling errors
aligment -> alignment
purgable -> purgeable
thead -> thread
2019-06-23 00:09:11 +09:00
Daan
6208e51415
Update readme.md 2019-06-21 09:02:42 -07:00
Daan
69efa50a0d
add reference to the technical report 2019-06-21 08:46:03 -07:00
daan
644f59fad7 Update documentation generation 2019-06-20 09:29:44 -07:00
Daan
c91bed99e1
Update readme.md 2019-06-20 09:12:51 -07:00
daan
e33c1521a6 update readme 2019-06-20 08:01:39 -07:00
daan
77be9df1d8 update readme 2019-06-20 07:58:34 -07:00
daan
5cc8ae4f43 update readme to be more short 2019-06-20 07:49:55 -07:00
daan
5b6e04774a update readme 2019-06-19 18:22:11 -07:00
daan
d549ba9c2d update readme 2019-06-19 18:18:21 -07:00
daan
ad19dfe062 update readme with references 2019-06-19 18:07:56 -07:00
daan
b30d17d250 add security to readme 2019-06-19 17:00:31 -07:00
daan
1df1d51333 update readme 2019-06-19 16:52:58 -07:00
daan
b3212eef72 add cmake file 2019-06-19 16:52:36 -07:00
Daan
d4167b38e1
Update readme.md
Add new benchmark figures
2019-06-19 16:46:12 -07:00
daan
d143bb05bb more benchmark figures 2019-06-19 16:41:08 -07:00
daan
eebdb6166d benchmark figure 2019-06-19 16:39:31 -07:00
daan
26a874eb3f initial checkin 2019-06-19 16:26:12 -07:00
daan
23b4e65faa Add license 2019-06-19 14:19:45 -07:00