Repository navigation
Releases: akarifur/barkml
Releases · akarifur/barkml
Release list
v0.10.0
Features
- [breaking] Add explicit f-string interpolation and coherent string model
- [breaking] Restrict boolean/null literals to canonical spellings
- [breaking] Remove $ control statements and BMLS schema surface
- [breaking] Reject duplicate declarations before insertion
- [breaking] Reject unterminated blocks, tables, and arrays
- [breaking] Detect reference cycles with structured dependency traces
Bug Fixes
- (ast) Enforce configured resolution-depth limit by reference edge
- (load) Make module merges transactional via staged copy
- (load) Preserve structured parse errors through loading
- Resolve review findings across parser, lexer, loader, and serde
Documentation
- Pin domain-neutral grammar and embedding contract
Misc.
- (ci) Fix changelog for releasing
- (ci) Fix non created 0.9
- Synchronize changelog config to release-plz
- Remove unreleased so release-plz works
- Fix changelog
v0.8.5
New Features
-
Add serde serialization module
Add comprehensive serde serialization support for BarkML AST nodes:- Add ValueSerializer for serializing to BarkML Value types
- Add StatementSerializer for serializing to BarkML Statement types
- Support all Rust primitive types, collections, structs, and enums
- Provide to_statement() and to_value() convenience functions
- Include error handling with descriptive error messages
- Add extensive test coverage for serialization scenarios
This enables programmatic generation of BarkML AST from Rust data structures.
-
add serde deserializer module for Statement and Value types
Implement comprehensive serde deserialization support for BarkML AST nodes:- Add ValueDeserializer for deserializing from BarkML Value types
- Add StatementDeserializer for deserializing from BarkML Statement types
- Support all BarkML data types including primitives, arrays, tables, and enums
- Provide from_statement() and from_value() convenience functions
- Include comprehensive error handling with descriptive error messages
- Add extensive test coverage for various deserialization scenarios
This enables direct deserialization of Rust structs from parsed BarkML AST,
making it easier to work with BarkML configuration data in Rust applications.
Commit Statistics
- 2 commits contributed to the release.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
v0.8.4
New Features
- comprehensive improvements to load module
- Enhanced StandardLoader with builder pattern and configuration management
- Added LoaderConfig for centralized configuration options
- Implemented LoadStats for performance monitoring and statistics collection
- Added comprehensive utility functions for file handling and validation
- Enhanced Walk API with path navigation and dot notation support
- Improved error handling with detailed context and validation
- Added file caching system to avoid re-parsing identical files
- Enhanced merge logic with better conflict resolution
- Added security-focused path validation and sanitization
- Implemented comprehensive field inspection and navigation capabilities
- Builder pattern for fluent loader configuration
- Statistics collection with processing time and memory usage tracking
- Path-based navigation (e.g., walker.get('config.database.host'))
- Enhanced debugging and introspection tools
- Validation framework with early error detection
- Module management with advanced manipulation capabilities
- Intelligent file caching system
- Better memory allocation strategies
- Optimized data structures for common operations
- Lazy loading where possible
- Some method signatures enhanced for better error handling
- Configuration now handled through LoaderConfig objects
- Enhanced error types with additional context
- Enhanced type system with TypeCategory enum and better compatibility checking
- Added memory tracking and performance monitoring capabilities
- Improved tree navigation with path-based lookup and recursive search
- Enhanced macro resolution with recursion protection and better error handling
- Added comprehensive validation methods for statement structure
- Improved error messages with source code context and location information
- Added utility functions for AST analysis, memory profiling, and pretty printing
- Enhanced Display formatting with proper indentation across all types
- Added const methods for compile-time evaluation where possible
- Comprehensive test coverage for all new functionality
- Some method signatures changed for better type safety
- Enhanced error types with additional context fields
- Reorganized internal data structures for better performance
- Add MAX_RECURSION_DEPTH constant (64 levels) to limit parser nesting
- Add recursion_depth field to Parser struct for depth tracking
- Add enter_recursion() and exit_recursion() guard methods
- Wrap recursive methods (value, value_type, statement, module) with guards
- Add RecursionLimit error type with location tracking
- Add comprehensive tests for recursion limit enforcement
- Maintain backward compatibility for legitimate use cases
Bug Fixes
- boolean values having lower priority than identifiers
Style
- Apply cargo fmt formatting
Commit Statistics
- 6 commits contributed to the release over the course of 3 calendar days.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
v0.8.3
Chore
- update dependencies and Cargo.lock
This commit updates several Rust dependencies to their latest versions, including:- Bump hashbrown to 0.15.4
- Update snafu to 0.8.6
- Upgrade uuid to 1.17.0
- Add new dependencies like bumpalo and js-sys
- Refresh Cargo.lock to reflect dependency changes
- improve error message clarity and formatting in error handling
New Features
- enhance BarkML loader documentation and improve code comments
This commit improves the documentation for the BarkML loader modules by:- Adding comprehensive module and struct-level documentation
- Clarifying the purpose and behavior of loader methods
- Improving inline comments to explain complex logic
- Using more precise language in docstrings
- Enhancing code readability and understanding of the loading process
- enhance AST module with improved documentation and structure
This commit improves the Abstract Syntax Tree (AST) module by:- Adding comprehensive module-level documentation
- Introducing a new
preludemodule for easy imports - Expanding docstrings for key structs and enums
- Improving code organization and readability
- Adding a constructor method for the
Statementstruct
- enhance Location struct with more context and error reporting details
This commit improves the Location struct by:- Adding source text and length tracking
- Implementing new constructors for more flexible location creation
- Improving display and context methods
- Updating error handling to include source context
- Enhancing lexer location generation with more detailed information
- enhance parser comment and token handling
- Improve comment processing to support multiple comments
- Add support for more token types in type parsing
- Optimize array parsing with pre-allocated vectors
- Refactor token extraction and error handling
- Expand supported type tokens for more flexible parsing
Bug Fixes
- multiline strings were not lexing correctly
Other
- print out line numbers and column numbers instead of character count
- fix missing null and some labels
Commit Statistics
- 40 commits contributed to the release over the course of 445 calendar days.
- 9 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Update dependencies and Cargo.lock (
5c3f080) - Enhance BarkML loader documentation and improve code comments (
9f4c382) - Enhance AST module with improved documentation and structure (
00589d2) - Improve error message clarity and formatting in error handling (
07393ea) - Enhance Location struct with more context and error reporting details (
14e38e0) - Enhance parser comment and token handling (
e8a24d6) - Simple update of dependencies to keep up to date (
a4b59e7) - Fix statement grouped logic (
b8140ff) - 0.8.1 bugfixes (
c1c2b78) - 0.8.0 Symbols (
a0b4972) - Bump version and sync README and Changelog (
296455c) - Fix testing with label change and missed float type bug (
3c659bd) - Fix injection ids and load operations (
9c0d8e9) - Consolidate error types now that we have a set (
ddccbb3) - Restructuring, track location on files through ast (
56bd2a8) - Migrate to new AST objects (
6108479) - Print out line numbers and column numbers instead of character count (
61a51e1) - Multiline strings were not lexing correctly (
b7a9d20) - Fix missing null and some labels (
be6b9fc) - Release 0.6.5 (
13d69b6) - New recursive descent parser (
2266eb7) - Migration to logos+chumsky complete (
0893eeb) - Finish typing system (
aa54b93) - Change block id to always include labels to distinguish them (
b37dd5b) - Finish typing system (
c715c05) - Scope based macro resolution (
a38bd86) - Fix standard loader map ordering (
99f8161) - Fix issue with inconsistent ordering with read_dir (
7d5c780) - Support for versions and version req (
9a291fb) - Introduce modules and standardize loader trait (
f492f53) - Fix import and unimplemented feature (
296f846) - Configuration loader implementation (
d6beb64) - Loader feature to allow multiple configuration files to be loaded at once (
4ff4c8d) - Support for precision integers and floats (
5fa8c8b) - Consolidate statement and value (
094f82f) - Create rust.yml (
5773da7) - Add binary encoding support through messagepack (
4f341f3) - Update description (
9c3db02) - Initial release of BarkML (
9460e17) - Initial commit (
7999de1)
- Update dependencies and Cargo.lock (