diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-27 10:58:19 +0200 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-27 11:03:00 +0200 |
commit | 8f6a6d4ed92dbce9f484d41bb05c55dc42c10559 (patch) | |
tree | f338407bedaf7bc449ad7cb83445e905b52d1e30 /DEVELOPMENT.md | |
parent | sanitize linked libraries (diff) | |
download | cimple-8f6a6d4ed92dbce9f484d41bb05c55dc42c10559.tar.gz cimple-8f6a6d4ed92dbce9f484d41bb05c55dc42c10559.zip |
add DEVELOPMENT.md
Diffstat (limited to 'DEVELOPMENT.md')
-rw-r--r-- | DEVELOPMENT.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..07c65a7 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,48 @@ +There's a Makefile with useful shortcuts to build the project in the "build/" +directory: + + make build + +This command makes a CMake build directory in build/cmake/ and executes `make` +there. + +The default is to build using clang in `Debug` configuration. +You can choose a different compiler and configuration like so: + + make build COMPILER=gcc CONFIGURATION=Release + +### Testing + +After building, you can run the "test suite" (depends on Pytest). + + make test + +### Code coverage + +You can generate a code coverage report (depends on `gcovr`) in +build/coverage/: + + make coverage + +The latest code coverage report for the `master` branch can be found at +https://egor-tensin.github.io/cimple/coverage/. + +### Flame graphs + +Some performance analysis can be done by looking at flame graphs. +Generate them after building the project (depends on `perf` & [FlameGraph]): + + make test/perf + +[FlameGraph]: https://github.com/brendangregg/FlameGraph + +This will generate two flame graphs in build/flame_graphs/; they stress +slightly different parts of the system: + +* [flame_graph_output_simple.svg] for a CI script with short output, +* [flame_graph_output_long.svg] for a CI script with long output. + +[flame_graph_output_simple.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_simple.svg +[flame_graph_output_long.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_long.svg + +Follow the links above to view the latest flame graphs for the `master` branch. |