Version History

All notable changes to the Neutron programming language are documented here.

Version 1.1.2-beta

2025-10-29

✨ Added

  • Comprehensive copyright headers to all source files
  • Neutron Public License 1.0 with specific terms for open source and commercial use
  • Required attribution requirements for code usage

🔧 Fixed

  • != operator now correctly returns inverted boolean results instead of identical to == operator
  • Enhanced array bounds error messages with detailed index and range information
  • Optimized equality/inequality comparison performance by using type-specific comparisons
  • Improved garbage collection with better object marking and automatic triggering
  • Implemented && and || symbol operators alongside existing and/or keywords

📝 Changed

  • Version updated from 1.1.1-beta to 1.1.2-beta
  • Updated license from MIT to Neutron Public License 1.0

Version 1.1.1-beta

2025-10-28

✨ Added

  • Enhanced module system architecture with standardized interfaces
    • ComponentInterface for creating pluggable system components
    • Runtime component management in VM with registerComponent() method
    • Improved build system with new helper functions
    • New modular directory structure (src/features/, src/extensions/, src/utils/)
  • Full Exception Handling System
    • try, catch, finally, and throw statements
    • Proper exception propagation and stack unwinding
    • Exception value passing to catch blocks
    • Nested exception handling support
    • Finally blocks that always execute
    • Support for throwing any value type

🔧 Fixed

  • Logical operators (AND/OR) with proper short-circuit evaluation
    • Fixed and operator to properly evaluate a and b as: if a is falsy return a, else return b
    • Fixed or operator to properly evaluate a or b as: if a is truthy return a, else return b
    • Implemented correct short-circuit evaluation
    • Resolved stack underflow issues with complex logical expressions

Version 1.1.0-beta

2025-10-23

✨ Added

  • Arrays Module (Standalone) - Comprehensive array manipulation with 20+ functions including new, length, push, pop, at, set, slice, join, reverse, sort, indexOf, contains, remove, clear, clone, flat, fill, range, and shuffle
  • Dynamic Type Conversion Module (fmt) - New module with to_int, to_str, to_bin, to_float, and type functions for runtime type detection and conversion
  • Enhanced Type Safety - Strict compile-time type checking with detailed error messages

Version 1.0.4-alpha

2025-10-08

✨ Added

  • Centralized Version Management - New Version class for unified version control across the project
  • Box Package Manager MINGW64 Support - Full MSYS2/MINGW64 toolchain support for Windows native module development
  • Shared Runtime Library - libneutron_runtime for third-party module development

🔧 Fixed

  • REPL no longer crashes on syntax errors - errors are caught and displayed gracefully
  • Fixed unused parameter warnings in compiler and VM
  • Windows MSYS/MinGW build support - made dlfcn-win32 optional with compatibility shim

Version 1.0.3-alpha

2025-10-07

🔧 Fixed

  • Windows MSYS/MinGW Build Support - Fixed dlfcn-win32 dependency issue with internal Windows compatibility shim
  • Windows Runtime DLL Dependencies - MinGW runtime DLLs now automatically copied to build directory
  • Test Runner Cross-Platform Support - Updated run_tests.ps1 to detect executable in multiple locations

Version 1.0.2-alpha

2025-10-06

✨ Added

  • Match Statement - Pattern matching for cleaner conditional logic with support for numbers, strings, booleans, and expressions
  • Lambda Functions - Anonymous function expressions with inline definitions
  • Try-Catch Infrastructure - Foundation for exception handling with tokens and AST structures
  • New Bytecode Operations - OP_DUP and OP_CLOSURE for advanced operations

Full Changelog

For complete version history and detailed technical information, see the full changelog on GitHub:

View Full Changelog