Releases: theMackabu/loft
Releases · theMackabu/loft
0.0.1-alpha.22
New Features
- Interpreter:
- Implemented const expressions and added function validation.
- Implemented tail call optimization (TCO).
- Added detection for self-recursive calls in tail position.
- Parser:
- Added support for const functions and generic trait bounds.
- Runtime:
- Added tail call optimization support with a new ValueType variant.
Refactoring & Improvements
- Interpreter:
- Optimized using the trampoline pattern.
- Improved control flow handling and scope management.
- Scope:
- Optimized variable resolution with an iterative approach.
- Runtime:
- Implemented a proper call stack for function execution.
Bug Fixes
- Interpreter:
- Fixed propagation of break labels and resolved work queue enqueuing issues.
Caution
This is an alpha release and is not recommended for production use.
0.0.1-alpha.21
New Features:
- Added support for closures and function values with variable capture
- Implemented function pointers as first-class values and callbacks
Major Improvements:
Refactoring:
- Split complex pattern matching logic into dedicated modules
- Enhanced memory management for reference types
- Overhauled interpreter architecture with proper program execution flow
- Added prelude initialization with Once pattern for better performance
Bug Fixes:
- Resolved issues with variable mutability tracking
- Fixed string representation in value displays
- Improved token handling in the lexer
Caution
This is an alpha release and is not recommended for production use.
0.0.1-alpha.20
New Features
- Added separate test task and labels for FizzBuzz implementations
- Implemented struct pattern matching and destructuring support
- Added binding pattern support with @ operator for pattern matching
- Added variable initialization tracking to enforce mutability rules
- Implemented iterator support for arrays, slices and ranges
Refactoring & Improvements
- Migrated from io::print to core::write with improved test output
- Changed string representation from String to Vec for better memory management
- Enhanced pattern matching and binding resolution in scope management
- Improved control flow handling and format string parsing
- Improved error handling and formatting across multiple components
- Implemented Display trait for Token to improve error message formatting
- Introduced Method struct to encapsulate method call parameters
- Used set_variable_raw for direct value assignment in pattern matching
Caution
This is an alpha release and is not recommended for production use.
0.0.1-alpha.19
New Features
Language Features
- Shebang Support: Run Loft scripts directly with
#!/usr/bin/env loft
syntax - Comparison System: Comprehensive value comparison for all primitive types
- Type Casting: Expanded casting functionality between various types
- Range Improvements:
- Added support for unbounded ranges in
for
loops - Implemented inclusive range operator (
..=
) - Enhanced range type handling overall
- Added support for unbounded ranges in
- Control Flow:
- Implemented
loop
,while
, andfor
control flow statements - Added break and continue statement validation
- Implemented
- Prelude: Added utility methods for
Result
andOption
types
Structural Enhancements
- Added support for tuple structs
- Improved enum variant handling
- Added visibility support for enum struct variant fields
- Enhanced struct initialization and path handling
Macro System
- Improved macro expansion and token handling
- Enhanced binary operations with bitwise ops and remainder support
- Significantly improved macro argument parsing and pattern matching logic
- Added support for additional delimiters and
@
token in macro parsing
Performance Improvements
- Optimized build configuration for better runtime performance
- Improved type system and method handling for better code organization
- Enhanced variable assignment in nested function scopes
- Streamlined macro expansion and error handling
Bug Fixes
- Fixed string token formatting with escape sequence for double quotes
- Corrected macro parameter substitution and argument parsing logic
- Resolved issues with macro argument handling and empty invocation patterns
- Fixed macro handling for branch-specific parameters
Testing Infrastructure
- Added test automation
- Improved test output format
- Enhanced test cases, particularly for macros
- Added FizzBuzz examples to demonstrate language features
- Created more comprehensive range syntax tests
Development Environment
- Cleaned up unused code
- Simplified pattern matching
- Modernized syntax throughout the codebase
Caution
This is an alpha release and is not recommended for production use.