Razen Changelogs

Track the development progress and updates of the Razen Programming Language.

Changelogs

Track Razen's development progress

Here we will add changelogs of each version we launch.

Razen v0.1.75

# Razen v0.1.75 ## Library Call Update & Namespace Notation **Release Date**: June 5, 2025 **Status**: Beta --- > **Notice:** > Razen previously supported only the bracket notation for library calls (e.g., `Lib[func](...)`). This notation is **still valid and will continue to work until the release of beta v0.1.80**. After that, only the modern namespace notation (`lib::function(...)`) will be supported. Please update your code accordingly. ## What's New ### Powerful Library Call System - **Namespace Notation (`lib::function`)**: You can now call library functions using the modern `namespace::function(args...)` syntax, in addition to the classic `Library[function](args...)` bracket notation. - **Full Parity**: Both bracket and namespace notations are fully supported and interchangeable for all standard and custom libraries. - **Improved Parser & Compiler**: The parser and compiler have been enhanced to robustly handle complex library calls, including nested and chained calls, across all supported libraries. ### Modernized Library Experience - **Consistent Metadata Extraction**: All documentation and sidebars now display function difficulty and version badges, auto-updated from library sources. - **Color-coded Difficulty & Version Badges**: Instantly see the complexity and stability of each library function. - **Semantic Sorting**: Changelogs and docs are now sorted by version and difficulty for easier navigation. ### Usability & Error Handling - **Better Error Messages**: Parser errors now include precise line and column info, making debugging easier. - **Graceful Handling of Invalid Calls**: Unhandled or invalid library calls now produce clear, actionable error messages. - **Backward Compatibility**: All previous scripts using bracket notation continue to work without changes. --- ## Technical Improvements - **Namespace Operator Registered**: The `::` operator is now a first-class infix operator in the parser, enabling robust namespaced calls. - **Unified Expression Handling**: Library calls, whether via brackets or namespace, are parsed into a unified AST structure for consistent compilation. - **Test Coverage**: New and extended tests ensure both notations work identically for all libraries. --- ## Migration Guide No migration needed immediately! All previous code using `Library[function](...)` still works. However, **bracket notation will be deprecated after beta v0.1.80**. Please migrate your code to use `lib::function(...)` for future compatibility. --- ## Example ```razen lib arrlib; lib strlib; show arrlib::push([1,2,3], 4); # Namespace notation show ArrLib[push]([1,2,3], 4); # Bracket notation (still supported) show strlib::upper("hello"); # Namespace notation show StrLib[upper]("hello"); # Bracket notation ``` --- ## Documentation & Sidebar Updates - Docs, examples, and changelogs now auto-update from library metadata. - Difficulty and version badges are displayed everywhere for clarity. --- ## Special Thanks Thanks to the Razen community for feedback and bug reports! --- ## Full Changelog - Added: Namespace notation (`lib::function`) for all library calls - Improved: Parser and compiler robustness for all library call forms - Improved: Error reporting for invalid library calls - Improved: Documentation and sidebar metadata extraction - Fixed: Legacy bugs with chained and nested library calls - Fixed: Sorting and badge display in docs and changelogs - Maintained: Full backward compatibility with bracket notation