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 @@
- -