All notable changes to the ProXPL programming language will be documented in this file.
- Channels & Structured Concurrency: First-class asynchronous communication channels with
task.group,task.spawn, and cooperative cancellation. - Actor Model: Lightweight message-passing actor concurrency model with
actor,receive,!, and?operators. - Database Connectivity (
std.db): Universal database driver interface with connection pooling and support for SQLite, PostgreSQL, MySQL, and Redis. - Serialization (
std.encoding): Standardized serialization modules for JSON, TOML, CSV, and Base64. - LSP v2: Semantic highlighting, find references, rename symbol, inlay hints, and code actions in the Language Server.
- Compile-Time Evaluation (
comptime): Compile-time constant expressions and compile-time function execution.
- Project version bumped to 1.6.4 ("Concurrency Core") across all build configurations and manifests.
- Keywords
actor,receive, andcomptimeare now reserved.
- WebAssembly Target: Full WebAssembly (.wasm) compiler backend with JS glue code generation and
prm serve --wasm. - Standard Web Libraries: Added
std.web.dom,std.web.event,std.web.http, andstd.web.canvas. - String Templates: Backtick-delimited template literals (
`Hello, ${name}!`) with expression interpolation, multiline templates, and\${escaping. - Operator Overloading: Support for
+ - * / % @ == != < > <= >= [] []= () - !methods in user classes with inheritance. - Closures v2 & Escape Analysis: Detection of non-escaping closures for zero-heap stack execution, upvalue deduplication, and loop variable capture safety.
- Code Formatter (
prox fmt): Official syntax-aware code formatter supporting.proxfmt.pxcfconfigurations and--checkmode. - Enhanced Diagnostics: Structured error codes (
E0412,E0308), caret pointers, snippets, and Levenshtein typo suggestions (Did you mean 'name'?).
- Backtick (
`) is now reserved for string template literals. operatoris now a reserved keyword.- Project version bumped to 1.6.3 ("Wasm World") across all build configurations and manifests.
- IR optimization and backend improvements to remove unnecessary object generation.
- Reduced language binary size.
- Intent-Oriented Programming: Full bytecode generation and VM opcode dispatch for
intentandresolverparadigms. - Context-Aware Polymorphism: Static type validation and dynamic VM scoping for
context,layer, andactivatemechanisms. - Autonomic Self-Healing (ASR): Operational
resilientexception handling mapped natively onto the VM'ssetjmp/longjmpinfrastructure. - Added extensive performance benchmarks for intents, context switches, and ASR recovery.
- Added comprehensive testing scripts for validation of these core pillars.
activatestatement now requires a scoped block.intentdeclarations now require a trailing semicolon.- Project version bumped to 1.6.0 across all relevant compiler configurations.
- Added parsing for generic parameters and trait constraints in functions and classes.
- Implemented trait resolution in the Type Checker.
- The Type Checker now enforces that classes implement all required methods for the traits they adopt.
- The compiler now verifies that generic trait bounds reference valid, known traits.
- Integration of
mimallocmemory allocator for optimized runtime performance. - SwissTable dictionary optimizations using
ctrlbytes for linear probing. - Zero-cost stack unwinding for Autonomous Self-Healing (ASR) resilient blocks using
ExceptionHandlerTable. - LLVM PassManager configured for O3 (Vectorization and Inlining) and Tail-Call Optimization (TCO).
- Project versions bumped to 1.4.0 across CLI, extensions, CMake, and installers.
For older releases, see the releases/ directory.