Skip to content

Latest commit

 

History

History
48 lines (30 loc) · 1.86 KB

CONTRIBUTE.md

File metadata and controls

48 lines (30 loc) · 1.86 KB

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++) {
        ...
    }