libisoalloc-sys 0.3.0

Security oriented allocator
Documentation
# Contributing

If you're looking to contribute to IsoAlloc then you will want to start with this guide. It contains some steps you will want to follow before making a pull request, and a basic style guide.

## Testing Your Changes

Contributing to IsoAlloc is a pretty standard process of forking the repo, making a pull request, and optionally linking it to an existing issue. Before you make your pull request please run the following commands on both Linux and MacOS:

`make tests` - Make sure all tests still pass

`make malloc_cmp_test` - Check for major performance regressions

`make cpp_tests` - Make sure all C++ tests still pass

`make library` - Build a release version of the library

`make cpp_library` - Build a release version of the library with C++ support

Repeat the steps above using gcc/g++ as your compiler. e.g. `make tests CC=gcc CXX=g++`

Compile a debug version of the library with `make cpp_library_debug` and then run a basic test using `LD_PRELOAD` and another binary.

If you're making changes that are handled differently between Clang and GCC then please run the tests above but also set the `CC` and `CXX` environment variables approriately.

## Style Guide

Before you make a PR please run the following:

`make format` - Run the clang formatter to ensure your changes conform to the rest of the project style

The clang-format Makefile target should cleanup a lot of your commit but please ensure you conform to the following style guide:

- Open braces on same line as if/function start
- No space between if conditional and parantheses
- Use a define for any int or string constants
- Comments should be C style unless its a .cpp file
- Declare counter local types within for loop declarations if possible

```
    /* Check the value of some flag */
    if(flag == SOME_VALUE) {
        ...
    }

    for(uint64_t i = 0; i < canary_count; i++) {
        ...
    }
```