Skip to content

Releases: theMackabu/loft

0.0.1-alpha.22

27 Feb 21:57
d3b3286
Compare
Choose a tag to compare
0.0.1-alpha.22 Pre-release
Pre-release

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

27 Feb 02:54
8aa91ec
Compare
Choose a tag to compare
0.0.1-alpha.21 Pre-release
Pre-release

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

26 Feb 10:20
0f553d8
Compare
Choose a tag to compare
0.0.1-alpha.20 Pre-release
Pre-release

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

25 Feb 07:07
d4b2d3d
Compare
Choose a tag to compare
0.0.1-alpha.19 Pre-release
Pre-release

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
  • Control Flow:
    • Implemented loop, while, and for control flow statements
    • Added break and continue statement validation
  • Prelude: Added utility methods for Result and Option 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.