From feb5dab0ce51ae2732709bb7d325648a4dfb7668 Mon Sep 17 00:00:00 2001 From: Leonardo Vencovsky Date: Wed, 22 Feb 2023 16:06:58 +0100 Subject: [PATCH] v0.26.0 --- CHANGELOG | 3 + Makefile | 10 + README.md | 25 +- TODO | 7 +- docs/.gitignore | 1 - docs/.nojekyll | 2 +- docs/404.html | 187 ++++++ docs/Examples/examples.html | 168 ++--- docs/Introduction/how_to_install.html | 133 ++-- docs/Introduction/how_to_use_the_library.html | 133 ++-- docs/Introduction/introduction.html | 140 ++-- docs/Introduction/library_structure.html | 143 ++-- .../understanding_the_library.html | 143 ++-- docs/Introduction/why_this_library.html | 133 ++-- docs/Overview/collections_overview.html | 167 ++--- docs/Overview/features_overview.html | 137 ++-- docs/Overview/files_overview.html | 190 +++--- docs/Overview/index.html | 133 ++-- docs/ayu-highlight.css | 5 +- docs/book.js | 229 +++++-- docs/cmc/bitset.h/index.html | 167 ++--- docs/cmc/deque.h/functions.html | 150 ++--- docs/cmc/deque.h/index.html | 167 ++--- docs/cmc/index.html | 135 ++-- docs/cor/callbacks/index.html | 140 ++-- docs/cor/custom_allocation/index.html | 139 ++-- docs/cor/error_codes/index.html | 139 ++-- docs/cor/functions_table/index.html | 193 +++--- docs/cor/index.html | 133 ++-- docs/cor/iterators/index.html | 133 ++-- docs/css/chrome.css | 119 +++- docs/css/general.css | 72 +- docs/css/variables.css | 24 +- docs/dev/index.html | 133 ++-- docs/favicon.svg | 22 + docs/fonts/OPEN-SANS-LICENSE.txt | 202 ++++++ docs/fonts/SOURCE-CODE-PRO-LICENSE.txt | 93 +++ docs/fonts/fonts.css | 100 +++ .../open-sans-v17-all-charsets-300.woff2 | Bin 0 -> 44352 bytes ...open-sans-v17-all-charsets-300italic.woff2 | Bin 0 -> 40656 bytes .../open-sans-v17-all-charsets-600.woff2 | Bin 0 -> 44936 bytes ...open-sans-v17-all-charsets-600italic.woff2 | Bin 0 -> 42120 bytes .../open-sans-v17-all-charsets-700.woff2 | Bin 0 -> 44988 bytes ...open-sans-v17-all-charsets-700italic.woff2 | Bin 0 -> 40800 bytes .../open-sans-v17-all-charsets-800.woff2 | Bin 0 -> 44536 bytes ...open-sans-v17-all-charsets-800italic.woff2 | Bin 0 -> 40812 bytes .../open-sans-v17-all-charsets-italic.woff2 | Bin 0 -> 41076 bytes .../open-sans-v17-all-charsets-regular.woff2 | Bin 0 -> 43236 bytes ...source-code-pro-v11-all-charsets-500.woff2 | Bin 0 -> 59140 bytes docs/highlight.css | 39 +- docs/highlight.js | 8 +- docs/index.html | 140 ++-- docs/print.html | 632 +++++++++--------- docs/sac/index.html | 135 ++-- docs/searcher.js | 10 +- docs/searchindex.js | 2 +- docs/searchindex.json | 2 +- docs/tomorrow-night.css | 2 - docs/utl/assert.h/generic_assertions.html | 143 ++-- docs/utl/assert.h/index.html | 139 ++-- docs/utl/assert.h/overview.html | 137 ++-- docs/utl/assert.h/valued_assertions.html | 153 ++--- docs/utl/foreach.h/index.html | 139 ++-- docs/utl/futils.h/index.html | 157 ++--- docs/utl/index.html | 135 ++-- docs/utl/log.h/configuration.html | 137 ++-- docs/utl/log.h/index.html | 137 ++-- docs/utl/log.h/log_functions.html | 145 ++-- docs/utl/log.h/meanings.html | 133 ++-- docs/utl/test.h/index.html | 145 ++-- docs/utl/timer.h/index.html | 141 ++-- documentation/.gitignore | 2 +- documentation/Overview/files_overview.md | 32 - documentation/book.toml | 6 + documentation/{ => src}/Examples/examples.md | 0 .../{ => src}/Introduction/how_to_install.md | 0 .../Introduction/how_to_use_the_library.md | 0 .../{ => src}/Introduction/img/logo.png | Bin .../{ => src}/Introduction/introduction.md | 12 +- .../Introduction/library_structure.md | 0 .../Introduction/understanding_the_library.md | 0 .../Introduction/why_this_library.md | 0 .../Overview/collections_overview.md | 0 .../{ => src}/Overview/features_overview.md | 0 documentation/src/Overview/files_overview.md | 30 + documentation/{ => src}/Overview/index.md | 0 documentation/{ => src}/SUMMARY.md | 0 documentation/src/chapter_1.md | 1 + documentation/{ => src}/cmc/bidimap.md | 0 documentation/{ => src}/cmc/bitset.h/index.md | 0 .../{ => src}/cmc/deque.h/functions.md | 0 documentation/{ => src}/cmc/deque.h/index.md | 0 documentation/{ => src}/cmc/deque.md | 0 documentation/{ => src}/cmc/hashmap.md | 0 documentation/{ => src}/cmc/hashset.md | 0 documentation/{ => src}/cmc/heap.md | 0 documentation/{ => src}/cmc/index.md | 0 documentation/{ => src}/cmc/intervalheap.md | 0 documentation/{ => src}/cmc/linkedlist.md | 0 documentation/{ => src}/cmc/list.md | 0 documentation/{ => src}/cmc/multimap.md | 0 documentation/{ => src}/cmc/multiset.md | 0 documentation/{ => src}/cmc/queue.md | 0 documentation/{ => src}/cmc/sortedlist.md | 0 documentation/{ => src}/cmc/stack.md | 0 documentation/{ => src}/cmc/treemap.md | 0 documentation/{ => src}/cmc/treeset.md | 0 .../{ => src}/cor/callbacks/index.md | 0 .../{ => src}/cor/custom_allocation/index.md | 0 .../{ => src}/cor/error_codes/index.md | 0 .../{ => src}/cor/functions_table/index.md | 0 documentation/{ => src}/cor/index.md | 0 .../{ => src}/cor/iterators/index.md | 0 documentation/{ => src}/dev/index.md | 0 documentation/{ => src}/img/logo.png | Bin documentation/{ => src}/sac/index.md | 0 .../utl/assert.h/generic_assertions.md | 0 documentation/{ => src}/utl/assert.h/index.md | 0 .../{ => src}/utl/assert.h/overview.md | 0 .../utl/assert.h/valued_assertions.md | 0 .../{ => src}/utl/foreach.h/index.md | 0 documentation/{ => src}/utl/futils.h/index.md | 0 documentation/{ => src}/utl/index.md | 0 .../{ => src}/utl/log.h/configuration.md | 0 documentation/{ => src}/utl/log.h/index.md | 0 .../{ => src}/utl/log.h/log_functions.md | 0 documentation/{ => src}/utl/log.h/meanings.md | 0 documentation/{ => src}/utl/test.h/index.md | 0 documentation/{ => src}/utl/timer.h/index.md | 0 129 files changed, 3608 insertions(+), 3636 deletions(-) delete mode 100644 docs/.gitignore create mode 100644 docs/404.html create mode 100644 docs/favicon.svg create mode 100644 docs/fonts/OPEN-SANS-LICENSE.txt create mode 100644 docs/fonts/SOURCE-CODE-PRO-LICENSE.txt create mode 100644 docs/fonts/fonts.css create mode 100644 docs/fonts/open-sans-v17-all-charsets-300.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-300italic.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-600.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-600italic.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-700.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-700italic.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-800.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-800italic.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-italic.woff2 create mode 100644 docs/fonts/open-sans-v17-all-charsets-regular.woff2 create mode 100644 docs/fonts/source-code-pro-v11-all-charsets-500.woff2 delete mode 100644 documentation/Overview/files_overview.md create mode 100644 documentation/book.toml rename documentation/{ => src}/Examples/examples.md (100%) rename documentation/{ => src}/Introduction/how_to_install.md (100%) rename documentation/{ => src}/Introduction/how_to_use_the_library.md (100%) rename documentation/{ => src}/Introduction/img/logo.png (100%) rename documentation/{ => src}/Introduction/introduction.md (71%) rename documentation/{ => src}/Introduction/library_structure.md (100%) rename documentation/{ => src}/Introduction/understanding_the_library.md (100%) rename documentation/{ => src}/Introduction/why_this_library.md (100%) rename documentation/{ => src}/Overview/collections_overview.md (100%) rename documentation/{ => src}/Overview/features_overview.md (100%) create mode 100644 documentation/src/Overview/files_overview.md rename documentation/{ => src}/Overview/index.md (100%) rename documentation/{ => src}/SUMMARY.md (100%) create mode 100644 documentation/src/chapter_1.md rename documentation/{ => src}/cmc/bidimap.md (100%) rename documentation/{ => src}/cmc/bitset.h/index.md (100%) rename documentation/{ => src}/cmc/deque.h/functions.md (100%) rename documentation/{ => src}/cmc/deque.h/index.md (100%) rename documentation/{ => src}/cmc/deque.md (100%) rename documentation/{ => src}/cmc/hashmap.md (100%) rename documentation/{ => src}/cmc/hashset.md (100%) rename documentation/{ => src}/cmc/heap.md (100%) rename documentation/{ => src}/cmc/index.md (100%) rename documentation/{ => src}/cmc/intervalheap.md (100%) rename documentation/{ => src}/cmc/linkedlist.md (100%) rename documentation/{ => src}/cmc/list.md (100%) rename documentation/{ => src}/cmc/multimap.md (100%) rename documentation/{ => src}/cmc/multiset.md (100%) rename documentation/{ => src}/cmc/queue.md (100%) rename documentation/{ => src}/cmc/sortedlist.md (100%) rename documentation/{ => src}/cmc/stack.md (100%) rename documentation/{ => src}/cmc/treemap.md (100%) rename documentation/{ => src}/cmc/treeset.md (100%) rename documentation/{ => src}/cor/callbacks/index.md (100%) rename documentation/{ => src}/cor/custom_allocation/index.md (100%) rename documentation/{ => src}/cor/error_codes/index.md (100%) rename documentation/{ => src}/cor/functions_table/index.md (100%) rename documentation/{ => src}/cor/index.md (100%) rename documentation/{ => src}/cor/iterators/index.md (100%) rename documentation/{ => src}/dev/index.md (100%) rename documentation/{ => src}/img/logo.png (100%) rename documentation/{ => src}/sac/index.md (100%) rename documentation/{ => src}/utl/assert.h/generic_assertions.md (100%) rename documentation/{ => src}/utl/assert.h/index.md (100%) rename documentation/{ => src}/utl/assert.h/overview.md (100%) rename documentation/{ => src}/utl/assert.h/valued_assertions.md (100%) rename documentation/{ => src}/utl/foreach.h/index.md (100%) rename documentation/{ => src}/utl/futils.h/index.md (100%) rename documentation/{ => src}/utl/index.md (100%) rename documentation/{ => src}/utl/log.h/configuration.md (100%) rename documentation/{ => src}/utl/log.h/index.md (100%) rename documentation/{ => src}/utl/log.h/log_functions.md (100%) rename documentation/{ => src}/utl/log.h/meanings.md (100%) rename documentation/{ => src}/utl/test.h/index.md (100%) rename documentation/{ => src}/utl/timer.h/index.md (100%) diff --git a/CHANGELOG b/CHANGELOG index 35b0c76..fad62b7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ # RELEASE.MAJOR.MINOR +0.26.0 + Complete refactor of the library, using a different approach to code generation + 0.25.0 New Project Architecture - Files are no longer separated in folders, but rather prefixed by their sub-library Added sac_list.h diff --git a/Makefile b/Makefile index e186b52..0538ea0 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,11 @@ help: @echo Welcome to the C Macro Collections Library. Targets: @echo @echo - tests: run tests + @echo - tests_dev: run tests for dev @echo - format: formats the entire project + @echo - bench: runs benchmarks + @echo - docbuild: builds documentation to ./docs + @echo - docserve: serves mdbook docs tests: make -C ./tests @@ -16,3 +20,9 @@ format: bench: make -C ./benchmarks benchmark + +docbuild: + mdbook build -d ../docs documentation + +docserve: + mdbook serve documentation diff --git a/README.md b/README.md index b7d93d4..8d1456d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ C Macro Collections Logo

-

Easy to use, modular, header only, macro based, generic and type-safe Data Structures in C.

+

Easy to use, modular, header only, macro based, generic and type-safe Data Structures in C

LinkToRepo @@ -13,7 +13,7 @@

License - Version + Version travis-ci codecov test_suit @@ -21,8 +21,8 @@

Stars - loc - loc + loc + loc

## Table of Contents @@ -130,27 +130,10 @@ The C Macro Collections library is organized into many other sub-libraries. The | CMC | Macro Collections | The main library with dynamically-sized collections | | COR | Core | Core functionalities used by more than one collection, usually from different sub-libraries | | EXT | Extensions | Extension to collections | -| INT | Integrations | Macros that facilitate the creation of code that involves more than one type of collection | | SAC | Statically Allocated Collections | Collections with a fixed sized array that don't use any heap allocation | | TSC | Thread-Safe Collections | Collections that allow multiple operations from multiple threads | | UTL | Utilities | General utilities | -Every macro that generates code for a certain collection can be found with the following template. Some exceptions exist as certain collections don't have or can't have some features. One big example is the `UTL` library, which does not follow this pattern. - -``` -macro_name := CMC_[ lib ]_[ collection ]_[ part ]_[ access ]_[ file ] - -lib := CMC | COR | DEV | EXT | INT | SAC | TSC -collection := BITSET | DEQUE | HASHBIDIMAP | ... | TREEMULTISET | TREESET -part := CORE | ITER | INIT | ... | SETF | NODE -access := PUBLIC | PRIVATE -file := HEADER | SOURCE -``` - -__Some `collection`s might not be present in a certain `lib`. Check the documentation.__ - -Every macro is suffixed by `CMC` and each section is separated by an underscore (`_`). The first section is the library (`lib`). The second is the collection name in all uppercase. Then the `part` (or which module) that you wish to generate. And last, if it is code that should belong to a header file or code that should belong to a source file. - ## Project Structure * __benchmarks__ - Where all benchmarks are hosted diff --git a/TODO b/TODO index 14aad19..834d726 100644 --- a/TODO +++ b/TODO @@ -13,14 +13,11 @@ Check out CHANGELOG #!! Next Patch ----------------------------------------------------------------- -[ ] Fix BitSet, using capacity vs. counter -[ ] #12 - Fix the collections that depend on ITER #!! Major ---------------------------------------------------------------------- [ ] Stabilize the library -[ ] Add INT library [ ] Add SAC library [ ] Add TSC library [ ] Separate inner Data Structure implementation from the Collection's one @@ -31,8 +28,8 @@ Check out CHANGELOG #!! Minor ---------------------------------------------------------------------- +[ ] Fix BitSet, using capacity vs. counter [ ] #13 - Properly implement HashBidiMap iterator -[ ] #10 - Fix Benchmarks and Examples [ ] More SortedList functions [ ] BidiMap's _is_mapping() to check if a mapping K <=> V exists [ ] New asserts - _array_int(), _array_not_in() and str @@ -103,3 +100,5 @@ Check out CHANGELOG [X] Replace IntervalHeap node by a simple buffer of two pointers (V (*buffer)[2]) [X] PUBLIC and PRIVATE is back (opaque data structures) [X] Add EXT library +[X] #12 - Fix the collections that depend on ITER +[X] #10 - Fix Benchmarks and Examples diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index e9c0728..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -book \ No newline at end of file diff --git a/docs/.nojekyll b/docs/.nojekyll index 8631215..f173110 100644 --- a/docs/.nojekyll +++ b/docs/.nojekyll @@ -1 +1 @@ -This file makes sure that Github Pages doesn't process mdBook's output. \ No newline at end of file +This file makes sure that Github Pages doesn't process mdBook's output. diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..d292a60 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,187 @@ + + + + + + Page not found - CMC Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Document not found (404)

+

This URL is invalid, sorry. Please use the navigation bar or search to continue.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + diff --git a/docs/Examples/examples.html b/docs/Examples/examples.html index 7c2266e..64cef95 100644 --- a/docs/Examples/examples.html +++ b/docs/Examples/examples.html @@ -3,14 +3,16 @@ - Examples - C Macro Collections - + Examples - CMC Docs - + + + + @@ -19,8 +21,7 @@ - - + @@ -28,19 +29,18 @@ - - +
- - - - @@ -89,45 +89,40 @@
- -