# Changelog All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. - - - ## v0.4.0 - 2024-07-25 #### Bug Fixes - **(bin)** Put the generated files in the root directory - (0408f41) - Benedikt Peetz - **(cli/flags/{vendor,write_files})** Don't default to true - (5455d05) - Benedikt Peetz - **(enumerations)** Check for an empty enum at the parsing stage - (cb12a4c) - Benedikt Peetz - **(generate/convert/host/attributes)** Split doc comments on newline - (f0c45a0) - Benedikt Peetz - **(macros/generate/convert/host/c)** Don't import the callback function, instead specify by it's full path - (c51fe01) - Benedikt Peetz - **(macros/generate/convert/host/c/function)** Ensure that the `Commands` path is correct - (8f1aa4a) - Benedikt Peetz - **(parsing/checked/enumeration)** Fail, when an enum without states is encountered - (acf796f) - Benedikt Peetz - **(scripts/tests.sh)** Fail when we can't update the generated files - (b560dbc) - Benedikt Peetz - **(scripts/tests.sh)** Don't include vendored files - (2d51ec0) - Benedikt Peetz - **(tests/.template)** Update to new `tests.sh` script - (12baa99) - Benedikt Peetz #### Features - **(bin)** Add support for writing the filetree and precise selection of file tree contents - (0beb143) - Benedikt Peetz - **(parsing/checked/enumeration)** Check that on a error enum all variants have an error display - (c036004) - Benedikt Peetz - **(scripts/tests.sh)** Switch the tests to real code test - (e3a43cd) - Benedikt Peetz #### Tests - **(.template)** Add a dummy `api.rs` file to satisfy rustfmt - (8194a93) - Benedikt Peetz - **(multi_line_doc_comment)** Update to new multi line doc comment formatting - (6a988a5) - Benedikt Peetz - **(multiple)** Ignore, as it is not a high priority - (39136dd) - Benedikt Peetz - **(tests)** Use the correct name for the `callback_function` - (232c96f) - Benedikt Peetz - **(tests)** Migrate to new format - (4d5ae77) - Benedikt Peetz - **(void_input/input.tri)** Add the required variants to the `Err` enumeration - (66513d5) - Benedikt Peetz - - - ## v0.3.4 - 2024-07-23 #### Bug Fixes - **(macros/generate/convert/host/c/function)** Remove leftover fmt statement - (f4a3114) - Benedikt Peetz #### Miscellaneous Chores - **(treewide)** Relicense to the GPL-3.0-or-later license - (7ffc837) - Benedikt Peetz - - - ## v0.3.3 - 2024-07-23 #### Bug Fixes - **(macros/generate/convert/host/c/function)** Improve panic catching - (e5131a4) - Benedikt Peetz - - - ## v0.3.2 - 2024-07-20 #### Bug Fixes - **(example/main)** Update to the latest trixy version - (ae52c0f) - Benedikt Peetz - **(generate/host/c/function)** Catch panics on the rust side - (9be015e) - Benedikt Peetz - - - ## v0.3.1 - 2024-07-07 #### Bug Fixes - **(renew_copyright_headers)** Don't deal with the shebang anymore - (b2be63f) - Benedikt Peetz #### Miscellaneous Chores - **(treewide)** Correct duplicated shebangs - (a6b4c22) - Benedikt Peetz - - - ## v0.3.0 - 2024-07-07 #### Bug Fixes - **(example/main)** Update to use the newly supported types - (2b9c722) - Benedikt Peetz - **(treewide)** Ensure that the `void` type can be used in every situation - (c614f7e) - Benedikt Peetz #### Build system - **(treewide)** Update - (00fb954) - Benedikt Peetz #### Documentation - **(example/main)** Update to include a `void` example - (886cc03) - Benedikt Peetz #### Features - **(src)** Add support for `Option` and `Vec` types - (a6a5c91) - Benedikt Peetz - **(treewide)** Add support for a void type - (4d37f9b) - Benedikt Peetz #### Style - **(treewide)** Format - (7d3558b) - Benedikt Peetz - - - ## v0.2.2 - 2024-05-31 #### Bug Fixes - **(src)** Re-export the `TrixyConfig` structure to avoid the nested path - (c855f25) - Benedikt Peetz #### Miscellaneous Chores - **(treewide)** Migrate to `codeberg.org` - (14898b5) - Benedikt Peetz - - - ## v0.2.1 - 2024-05-20 #### Bug Fixes - **(src/types/traits/convert_trait)** Remove unneeded imports - (5253e59) - Benedikt Peetz - - - ## v0.2.0 - 2024-05-20 #### Bug Fixes - **(example/main)** Update to use the new result type - (1f0b9c6) - Benedikt Peetz - **(example/main)** Ignore generated `api.rs` debugging file - (ed4a113) - *soispha* - **(gitignore)** Don't ignore the `Cargo.lock` file - (c9622c1) - Benedikt Peetz - **(parser/unchecked/attributes)** Correctly enforce an identifier in `derive` - (4f84605) - Benedikt Peetz - **(src/parsing)** Remove the extra `error` attribute keyword - (650d577) - Benedikt Peetz #### Build system - **(NEWS.md)** Restore separator - (243a89b) - Benedikt Peetz - **(cog)** Avoid building the project with nix, as this fails - (5f9ef33) - Benedikt Peetz - **(cog)** Remove wrong toml header - (ecfdb0a) - Benedikt Peetz - **(cog)** Use new `renew_copyright_header` script - (1984217) - Benedikt Peetz - **(flake)** Ignore correct changelog file - (477b9e1) - Benedikt Peetz - **(treewide)** Update - (83ba3b4) - Benedikt Peetz - **(update.sh)** Don't always perform the expensive `upgrade` - (ee8e860) - Benedikt Peetz #### Documentation - **(README)** Mention the binary - (6c64180) - *soispha* - **(README)** Add - (c787aa2) - *soispha* - **(c_test)** Add a poc regarding results in c - (7034cf7) - Benedikt Peetz - **(grammar.pdf)** Regenerate with new landscape ebnf2pdf script - (c6dc9db) - Benedikt Peetz #### Features - **(src)** Add real and working support for results - (9000c1d) - Benedikt Peetz - **(src/macros)** Store allocation location in all stringsThis makes it possible to automatically free the string in the correctway expected by both c and rust.Rust strings can now just be freed by the rust allocator, whilst cstrings are forgotten, so that the c allocator may free them.BREAKING CHANGE: All usage of explicit mentions `std::string::String` in your `handle_cmd` function will need to be replaced by `trixy::types::newtypes::String`. Otherwise these types should provide the same methods. - (2e92028) - Benedikt Peetz #### Miscellaneous Chores - **(Cargo.toml)** Add further required metadata - (4d76282) - Benedikt Peetz - **(Cargo.toml)** Add required metadata - (cc788a9) - Benedikt Peetz - **(c_test)** Remove the POC - (d1f31c2) - Benedikt Peetz - **(treewide)** Add missing license headers - (1677f5c) - Benedikt Peetz - **(treewide)** Renew copyright headers - (447370d) - Benedikt Peetz - **(version)** v0.1.1 - (601d82d) - Benedikt Peetz - **(version)** v0.1.0 - (994b3de) - Benedikt Peetz #### Refactoring - **(example/main/.cargo/config)** Add a `.toml` extension - (9953b50) - Benedikt Peetz - **(src/macros/generate/host)** Merge host generation in one module - (0f131c9) - Benedikt Peetz #### Tests - **(error_derive)** Init - (7e2cbb4) - Benedikt Peetz - **(results)** Add a test for results - (e57bd40) - Benedikt Peetz - **(src/types/newtypes)** Test if a full round-trip works - (7bced94) - Benedikt Peetz - **(tests)** Update to new String wrapper - (1599631) - Benedikt Peetz - **(types)** Update to represent a minimal change in the library - (91adaa2) - *soispha* - - - ## v0.1.0 - 2024-05-04 #### Bug Fixes - **(bin/generate)** Actually only generate what was specified - (08df8e8) - *soispha* - **(binary/parse)** Actually only perform the other steps, if asked for it - (4e3bdf2) - *soispha* - **(docs/generate_docs)** Cd into the correct directory to make ebnf2pdf work - (9a0720e) - *soispha* - **(example/main)** Ignore generated api.rs debugging file - (6bed2a8) - *soispha* - **(generate/convert/host/rust/derive/structure)** Ignore `ptr` arg on todo - (bd0b3c7) - *soispha* - **(gitignore)** Don't ignore the `Cargo.lock` file - (ec11a12) - Benedikt Peetz - **(macros)** Mark the main generate function as must_use - (db5cd1a) - *soispha* - **(macros)** Generate namespacesed types and convertible impls - (8b02d13) - *soispha* - **(macros/c_api)** Add host generation support for structs and enums - (5fe757f) - *soispha* - **(macros/c_api/header)** Format doc comments in a c-like way - (17fd954) - *soispha* - **(macros/config/file_tree/markdown)** Change format to align with mdfmt - (5855d9b) - *soispha* - **(macros/generate)** Correctly generate function types - (9a8ccc9) - *soispha* - **(macros/generate/auxiliary/c/function)** Also add inputs when no output - (3d35d39) - *soispha* - **(macros/generate/convert/auxiliary/c)** Correctly generate function types - (a66c687) - *soispha* - **(macros/generate/convert/auxiliary/c/arguments)** Accept newlines - (bfeb620) - *soispha* - **(macros/generate/host)** Add unified support for conversions - (b5f5ae8) - *soispha* - **(macros/generate/host/c/function)** Actually call the callback function - (645b8d5) - *soispha* - **(macros/generate/host/host/type)** The function type is a c pointer - (a58030c) - *soispha* - **(parser/error)** Remove multiple errors from line number calc - (e512352) - *soispha* - **(parser/lexing/error)** Improve the message of the `NoMatchesTaken` error - (ce1e4d8) - *soispha* - **(parser/lexing/take_until_sucessive_match)** Add utf8 support - (fae3de8) - *soispha* - **(parser/tokenizer)** Remove the tokenizer's death, when exposed to doc comments - (508dc2b) - *soispha* - **(parser/unchecked/parse_structure)** Accept attributes on fields - (7a8dc66) - *soispha* - **(scripts/renew_copyright_header)** Set correct template line lenght - (00a82ac) - *soispha* - **(scripts/renew_copyright_header)** Add support for gitignore files - (9e7e9d7) - *soispha* - **(scripts/renew_copyright_header)** Correctly handle shebangs - (3646e4a) - *soispha* - **(scripts/renew_copyright_header)** Add per filetype handling - (3484ead) - *soispha* - **(trixy)** Add thiserror dependency, as it's used in generated code - (e72c212) - *soispha* - **(trixy)** Use public reexports - (b9e2641) - *soispha* - **(trixy-macros)** Format the generated header with in the GNU style - (7c27cdc) - *soispha* - **(trixy-parser)** Remove the `void` type - (a077ef1) - *soispha* - **(trixy-types)** Conform to the api provided by the headers - (86b946b) - *soispha* - **(trixy-types)** Rework c header files - (f699ca2) - *soispha* - **(trixy/examples/main)** Improve c code - (5ce46a1) - *soispha* - **(types)** Remove top-level support for generic types - (37ba451) - *soispha* - **(types)** Improve support for generic rust types - (c2d21fd) - *soispha* - **(types/error)** Add a pseudo error for infallible conversions - (9e37456) - *soispha* - **(types/types_list)** Add the supported primitive types - (febb2de) - *soispha* #### Build system - **(.envrc)** Add `./target/debug` to PATH - (9233a13) - *soispha* - **(.licensure.yml)** Update to really be usable - (cc50ec2) - *soispha* - **(cog)** Avoid building the project with nix, as this fails - (d57beee) - Benedikt Peetz - **(cog)** Remove wrong toml header - (ddd9255) - Benedikt Peetz - **(cog)** Use new `renew_copyright_header` script - (c7b8fb3) - Benedikt Peetz - **(cog.toml)** Use `nix fmt` (treefmt) instead of only `cargo fmt` - (86d0060) - *soispha* - **(flake)** Update - (596197b) - *soispha* - **(flake)** Update - (9630e10) - *soispha* - **(flake)** Add treefmt - (1b8a33c) - *soispha* - **(flake)** De-duplicate the `flake.lock` file - (3e59d53) - *soispha* - **(licensure)** Add c headers to known files - (6e26bec) - *soispha* - **(licensure)** Update to a better license template - (1a2267b) - *soispha* - **(scripts/renew_copyright_header)** Init - (e9efc23) - *soispha* - **(treewide)** Add relevant configuration for releases - (22904c9) - *soispha* - **(update.sh)** Include the main example in the updates - (2e2028d) - *soispha* - **(update.sh)** Add a shebang - (8104e80) - *soispha* - **(update.sh)** Add an update script - (80c6dd4) - *soispha* #### Documentation - **(README)** Mention the binary - (366efd8) - *soispha* - **(README)** Add - (06c61ad) - *soispha* - **(example)** Update the example c and tri file to latest progress - (f688df1) - *soispha* - **(example/main)** Update to include newly added callbacks - (7f6c76a) - *soispha* - **(grammar.ebnf)** Don't reimplement already specified rules - (838181c) - *soispha* - **(lib)** Add a description to the oneshot-senders - (e205ea4) - *soispha* - **(macros/generate)** Improve error output - (73416da) - *soispha* - **(parser/examples)** Add various examples (also the trinitrix main api) - (0ebbc43) - *soispha* - **(parser/generate_docs)** Move shebang to first line - (1d49bdf) - *soispha* - **(trixy-parser)** Update the railroad diagrams - (88aa3c3) - *soispha* #### Features - **(bin)** Add a binary, that helps in showing the generated code - (ec929da) - *soispha* - **(example/valgrind)** Add a script to test the c example with valgrind - (eb31567) - *soispha* - **(macros/c_api/header)** Add structs and enums to the c header - (6e72b7b) - *soispha* - **(macros/config/file_tree)** Add support for parsing a FileTree from file - (89fd67c) - *soispha* - **(macros/generate/convert/auxiliary)** Merge comments in c - (bb101c1) - *soispha* - **(parser)** Associate a vector of nasps with every struct, enum, nasp - (a50936f) - *soispha* - **(parser)** Add support for parsing function pointer types - (f73d3aa) - *soispha* - **(parser)** Add support for parsing attributes - (add0d17) - *soispha* - **(parser/bin)** Allow `lex` as an alias to `tokenize` - (21b0ce1) - *soispha* - **(parser/lexing)** Desuger doc comments by running a regex on the file - (f1e9087) - *soispha* - **(treewide)** Finalize basic c API - (e52f74b) - *soispha* - **(treewide)** Add broken Vec, Result\ and Option types to c api - (b3c6a4c) - *soispha* - **(treewide)** Provide a c api - (7d1a41a) - *soispha* - **(trixy-macros)** Add rust host code generation - (ed96a50) - *soispha* - **(trixy-parser)** Adapt Trixy to be a complete subset of rust - (b679987) - *soispha* - **(types/try_from_impl)** Add a trixy::String from &str impl - (c69c00e) - *soispha* #### Miscellaneous Chores - **(.licensure.yml)** Remove unnecessary line in header comment - (dc000f2) - *soispha* - **(.licensure.yml)** Add license spdx identifier - (7a95fa7) - *soispha* - **(.licensure.yml)** Also add the license text to markdown files - (2f7be6f) - *soispha* - **(Cargo.toml)** Add further required metadata - (0774ac2) - Benedikt Peetz - **(Cargo.toml)** Add required metadata - (475e7ed) - Benedikt Peetz - **(docs/generate_docs)** Add a `.sh` extension, so scripts recognize the ft - (a653dec) - *soispha* - **(example)** Switch to full trinitrix API - (d2d18d9) - *soispha* - **(parser/docs/grammar.pdf)** Update file - (c898c48) - *soispha* - **(treewide)** Renew copyright headers - (07c3846) - Benedikt Peetz - **(treewide)** Update license header - (5ab2bbb) - *soispha* - **(treewide)** Add or update license header - (2b45995) - *soispha* - **(treewide)** Add the new license header - (5a7bb00) - *soispha* - **(treewide)** Remove old license header - (7ac6edb) - *soispha* - **(treewide)** Move the trixy subcrates under one trixy crate - (21e1b75) - *soispha* - **(treewide)** Add license headers - (0744c84) - *soispha* - **(treewide)** Add license headers - (03f2450) - *soispha* - Initial commit - (233fa3e) - soispha #### Refactoring - **(example/main/c)** Deduplicate error handling function - (cd5b0c9) - *soispha* - **(macros/convertible_derive)** Generate the `Convertible` Trait impl - (18034e2) - *soispha* - **(parser)** Use predictable names for tokens - (a4513e8) - *soispha* - **(src/macros/generate/host)** Merge host generation in one module - (86427b0) - Benedikt Peetz - **(treewide)** Rework file structure in `src/macros` - (eb7a901) - *soispha* - **(types/headers/string)** Don't typedef a string type - (938e038) - *soispha* #### Style - **(flake)** Use yamlfmt instead of prettier - (4110f65) - *soispha* - **(flake)** Add even more formatters - (fa6b046) - *soispha* - **(treewide)** Format - (a766149) - *soispha* - **(treewide)** format - (5ada3cb) - *soispha* - **(treewide)** Reformat with treefmt (`nix fmt`) - (d904a19) - *soispha* - **(treewide)** Reformat - (03f8eda) - *soispha* #### Tests - **(multiple)** Ignore, as it's not a important feature - (b1d47de) - *soispha* - **(parser/checked/test)** Update test case - (0a6159e) - *soispha* - **(scripts)** Add a script, which will help with generating and updating tests - (b85650e) - *soispha* - **(tests)** Update `expected.md` files - (5a9de1a) - *soispha* - **(tests)** Update - (475dde2) - *soispha* - **(tests)** Add the positive tests (and delete the ones in rust) - (d48456d) - *soispha* - **(trixy-parser)** Restore test functionality after nasp -> mod rename - (dc8a7ec) - *soispha* - Add new multiline display for c auxiliary code - (055cf2d) - soispha ______________________________________________________________________ Changelog generated by [cocogitto](https://github.com/cocogitto/cocogitto).