Skip to content

Releases: oopsio/peel

v1.1.0

30 Mar 15:59

Choose a tag to compare

Changelog - Peel Programming Language

[v1.1.0] - 2026-03-30

Added

  • SQLite Standard Library (sqlite):
    • Integrated rusqlite for high-performance database interactions.
    • sqlite.open(path): Opens a database connection (supports ":memory:").
    • Connection.execute(sql, params): Executes mutation statements.
    • Connection.query(sql, params): Executes queries and returns an Array of Objects.
    • Connection.close(): Manually closes connections.
  • Loop Support:
    • Implemented for .. in .. loop syntax in the parser and interpreter.
    • Implemented while loop syntax for conditional iteration.
  • SQLite Demo: Added examples/sqlite_demo.pel to showcase database usage.

Improved

  • Type System:
    • Added support for Heterogeneous Arrays (e.g., ["Alice", 95.5, true]). The type checker now falls back to Unknown for mixed-type lists instead of erroring out.
    • Robust String Concatenation: The + operator now supports concatenating String with any other type (Int, Float, Bool, Void, etc.) by automatically stringifying the right-hand/left-hand sides.
  • Standard Library Registration: Unified sqlite registration across the runtime interpreter and the type checker.

Fixed

  • Fixed a parser bug where For and While keywords were present in the lexer but caused "Unexpected token" errors during parsing.
  • Resolved type mismatch errors when printing mixed database results.

Peel v1.0.0

29 Mar 17:25

Choose a tag to compare

Changelog

All notable changes to the Peel project will be documented in this file.

[1.0.0] - 2026-03-29

Added

  • Core Language:
    • Full async/await support with native tokio integration.
    • Object-Oriented Programming (OOP) via struct and impl.
    • Advanced pattern matching for enum and literal types.
    • In-place collection mutation using Arc<Mutex> shared state.
  • Standard Library (StdLib):
    • console: Powerful logging with log, time, and level support.
    • Math: Complete toolkit including random, pow, and sqrt.
    • JSON: Native parse and stringify for all Peel values.
    • Prototypes: Instance methods for String, Array, and Map.
  • Tooling:
    • pepm: A new, dedicated package manager with dependency resolution and SHA256 verification.
    • Unified Build: Multi-crate build orchestration via scripts/build.js.
  • Project Foundation:
    • MIT License and comprehensive documentation.

Fixed

  • Improved parser greediness for struct literals and blocks.
  • Optimized thread-safety for global method registries.

Performance

  • Optimized interpreter dispatch for primitive types.
  • Leveraged Rust's release-profile optimizations for runtime binaries.