Commit Graph

239 Commits

Author SHA1 Message Date
Matthew Parkinson
bb6b8e45c2 Merge pull request #61 from ricleite/readme_fix
Minor typo fixes in README
2019-06-27 17:49:15 +01:00
Ricardo Leite
ace91c7b2a Minor typo fixes in README 2019-06-27 16:45:06 +01:00
Matthew Parkinson
b033587ce8 Merge pull request #60 from microsoft/detect_cooruption
A few checks for easy corruptions
2019-06-12 16:14:43 +01:00
Matthew Parkinson
cc6a9775d6 Made checks on client have own macro. 2019-06-12 15:29:25 +01:00
Matthew Parkinson
7153f2169c Reverting separate compilation of new.cc. 2019-06-12 15:04:25 +01:00
Matthew Parkinson
be1898c4e8 Fixed warning. 2019-06-12 14:12:47 +01:00
Matthew Parkinson
d23a1ccbdf Make clangformat a macro to allow sharing. 2019-06-12 14:06:20 +01:00
Matthew Parkinson
5817978388 Make new.cc only compile once
Each test was compiling new.cc for every go.  This optimises that to
just compile it once.
2019-06-12 14:05:02 +01:00
Matthew Parkinson
88d9534453 CR Feedback + clangformat 2019-06-12 13:54:14 +01:00
Matthew Parkinson
a8dd065fd7 A few checks for easy corruptions
Will detect corruption caused by either
* Use-after-free
* Double-free
Neither is comprehensive.  Full temporal safety is not possible.
This just aids with debugging.
2019-06-06 13:31:25 +01:00
Matthew Parkinson
9ca436c951 Merge pull request #59 from plietar/paper
Add paper.
2019-05-23 19:24:58 +01:00
Paul Liétar
37d8fcf47b Add link to difference.md from README 2019-05-23 18:49:19 +01:00
Paul Liétar
d7bac272fd Fix spelling 2019-05-23 15:16:16 +01:00
Paul Liétar
0d110e93af Add paper. 2019-05-23 15:13:47 +01:00
Matthew Parkinson
2ee752527d Merge pull request #53 from microsoft/new_link
Used start of a slab for link.
2019-05-21 17:32:24 +01:00
Matthew Parkinson
ef18d7d8d5 Made initialization of slab clearer. 2019-05-21 15:25:33 +01:00
Matthew Parkinson
7de46182a8 Used start of a slab for link. 2019-05-21 09:47:23 +01:00
Matthew Parkinson
17bbab4fe4 Merge pull request #57 from Theodus/ci
Reduce duplication in Azure Pipelines CI script
2019-05-18 19:04:18 +01:00
Theo Butler
fd4d88ecc1 fix Windows build type 2019-05-18 13:00:25 +02:00
Theo Butler
070e0700a8 use clangformat cmake target 2019-05-18 12:54:35 +02:00
Theo Butler
f9b9523d0c add ld preload build to linux matrix 2019-05-18 11:07:50 +02:00
Theo Butler
f5000c087f merge clang and gcc build into one matrix 2019-05-18 10:38:41 +02:00
Matthew Parkinson
bcfc60f3e6 Merge pull request #48 from ashamis/add_to_readme
Add instructions on how to use the header-only library
2019-05-17 16:03:10 +01:00
Alex Shamis
e326d84e05 Add instructions on how to use the read-only library 2019-05-17 13:39:03 +01:00
Matthew Parkinson
a2dea6cf1d Merge pull request #55 from Theodus/ci
Install g++7 for Linux-gcc CI
2019-05-16 21:35:00 +01:00
Theo Butler
54f219c902 Install g++7 for Linux-gcc CI 2019-05-16 20:35:04 +02:00
Matthew Parkinson
6be7e0d842 Merge pull request #54 from microsoft/stats_atexit
Made the statistics print atexit
2019-05-16 14:51:30 +01:00
Matthew Parkinson
b8bcfc0798 Made the statistics print atexit
Fixed some statistics and made them automatically print atexit.
2019-05-16 11:43:44 +01:00
Matthew Parkinson
48416e3241 CR Feedback 2019-05-14 21:16:11 +01:00
Matthew Parkinson
b484619f20 Added branch predictor hint. 2019-05-14 21:16:11 +01:00
Matthew Parkinson
5d711a2e65 Made checking debug only 2019-05-14 21:16:11 +01:00
Matthew Parkinson
e5d617c5fb Improve TLS performance
Refactor fast and slow paths to improve inlining
and codegen.
2019-05-14 21:16:11 +01:00
Matthew Parkinson
3c7582f717 Remove two unused functions. 2019-05-10 15:12:26 +01:00
Matthew Parkinson
1e4eb3dea3 CMake Header-Only Target (#46)
Make header only library target. 

Use the CMake INTERFACE target type to include the build settings for
snmalloc in other projects using headers only.

Made warnings setting a macro for reuse.
2019-05-09 12:32:32 +01:00
Matthew Parkinson
b38c36b40f Added a fflush to the error message. 2019-05-08 17:56:48 +01:00
Matthew Parkinson
3c9fe1041a Added error message to Windows Pal using VirtualAlloc. (#44) 2019-05-08 17:10:53 +01:00
Matthew Parkinson
8d5432c559 Expensive test property. (#43)
Make expensive tests run sequentially to prevent possible out-of-memory issues.
2019-05-08 15:51:41 +01:00
Matthew Parkinson
8fcedfc290 Fix the GCC build (#40)
* Make it compile with GCC.  
* Add GCC to CI.
* Add warning to documentation about using GCC.
2019-05-05 19:58:37 +01:00
David Chisnall
0b64536be4 Merge pull request #39 from Microsoft/clang-tidy-ci
Add clang-tidy to CI.
2019-04-30 10:22:13 -04:00
David Chisnall
d978b7a68f Apply clang-tidy checks to the Linux build. 2019-04-30 15:06:45 +01:00
David Chisnall
d259a87d03 Make clang-tidy fail when it ought to.
clang-tidy exits with an error code of 0 if the code compiles, even if
there are warnings.  Make it generate a file with the errors and fail
the test if this file exists.

Also remove the -fix flag - we don't want clang-tidy to fix things in CI
(yet?).
2019-04-30 15:02:55 +01:00
David Chisnall
4f8c7ba258 Add clang-tidy to CI. 2019-04-30 14:52:19 +01:00
David Chisnall
747063db87 Merge pull request #38 from Microsoft/clang-tidy
Clang tidy
2019-04-30 09:41:12 -04:00
David Chisnall
8f082c6a9c Fix incorrect edit in earlier commit. 2019-04-30 14:11:15 +01:00
David Chisnall
840e00b430 Fix sign warning. 2019-04-30 14:08:41 +01:00
David Chisnall
8bd136c224 Remove all instances of static_cast<size_t>(1).
In preparation for removing magic numbers, simplify code that is
computing masks with a single bit set.
2019-04-30 11:50:32 +01:00
David Chisnall
95c23b1a00 Add the const parameter checker.
This complains if a non-const parameter is not modified. In the PALs,
the size parameter is modified only by some implementations, so we can
make it const in the ones where it isn't.
2019-04-30 09:46:10 +01:00
David Chisnall
91f2310215 More checks.
Use using instead of typedef.
2019-04-30 09:46:01 +01:00
David Chisnall
5c197e4ae4 [NFC] More checks, comments on end of namespace braces. 2019-04-30 09:46:01 +01:00
David Chisnall
49ece8f4e1 Enable the static analyser from clang-tidy.
Fix a false positive.  The loops in the pagemap accessor are too
complicated for the static analyser to check, so it doesn't spot that a
non-null return is impossible.
2019-04-30 09:46:01 +01:00