All notable changes to the ProXPL project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Memory Management: Resolved a critical memory leak in the Type Checker where symbol names and parameter types were not being deallocated during scope exit.
- VM Stability: Unified the VM dispatch loop (GNUC Computed Goto and Fallback Switch-Case) to eliminate logic divergence and fix missing opcodes (
OP_INTERFACE,OP_IMPLEMENT). - GC Rooting: Fixed a race condition in
OP_MAKE_TENSORwhere newly allocated tensors were rooted after stack pops, preventing premature collection. - Error Handling: Refactored VM stack overflow handling to report recoverable runtime errors instead of calling
exit(1).
- AI-Native Primitives:
- Introduced
tensorprimitive type with multidimensional support (e.g.,tensor<float, 2x2>). - Added AST and Parser support for Tensor declarations and
@matrix multiplication operator. - Implemented
OP_MAT_MULandOP_MAKE_TENSORopcodes for native execution. - Optimized 2D matrix multiplication using cache-friendly loop ordering.
- Support for 1D vector dot products using the same
@operator.
- Introduced
- Context-Oriented Programming (COP):
- Implemented
contextandlayerdeclarations for behavioral grouping. - Added
activateblocks for dynamic behavioral shifts in the runtime. - Developed a LIFO active context stack in the VM for hierarchical method dispatch.
- Implemented
resolveContextualMethodfor dynamic interception of global function calls. - Added new opcodes:
OP_CONTEXT,OP_LAYER,OP_ACTIVATE, andOP_END_ACTIVATE.
- Implemented
- The 10 Operational Pillars: Implemented the full frontend stack (Lexer, Parser, AST, Type Checker) for all 10 revolutionary language pillars.
- Intent-Oriented Programming:
intent,resolverkeywords. - Context-Aware Polymorphism:
@contextdecorators and context-conditional functions. - Autonomic Self-Healing (ASR):
resilient,recovery,restart,rollbackblocks. - Intrinsic Security:
tainted,puretypes,sanitize()expression,policyblocks. - Chrono-Native Logic:
temporalvariables withdecay afterclauses. - Event-Driven Concurrency: (Integrated with ASR/Distributed logic).
- AI-Native Integration:
model,train,predict,datasetkeywords. - Quantum-Ready Syntax:
quantum,qubit,superpose,entangleblocks. - Hardware-Accelerated Math:
gpu,kernel,tensor,matrixtypes. - Zero-Trust Security:
verify,identity,encrypt,decryptprimitives.
- Intent-Oriented Programming:
- Security: Fixed "Security Violation" errors in benchmarks by ensuring tainted values are correctly tracked and sanitized (
type_checker.c). - CI/CD: Fixed dependency synchronization issues between
package.jsonandpackage-lock.jsoncausing build failures. - Build: Resolved multiple build errors including path resolution,
esbuildconfiguration, and parser compilation issues.
- Compiler Frontend: Significantly expanded Lexer, AST, Parser, and Type Checker to support complex new syntax.
- Version: Bumped codebase version to 1.2.0.
- Access Control: Implemented
pub/privvisibility enforcement for class members and modules. - Constructors: Added
initconstructor method support for object initialization. - Exception Handling: Introduced
try/catchblocks for robust error management and runtime safety.
- Versioning: Synchronized project version to 1.1.0 across the core VM, CLI, VS Code extension, and installer scripts.
- Roadmap: Marked v1.1.0 features as completed and released in the main documentation.
- Object-Oriented Programming: First-class support for Classes, Objects, Single Inheritance (
extends), and Interfaces. - Keywords:
class,new,this,extends,interface,static. - Runtime:
ObjClass,ObjInstance,ObjBoundMethodstructures.- Opcodes:
OP_CLASS,OP_METHOD,OP_INHERIT,OP_GET_PROPERTY,OP_SET_PROPERTY,OP_GET_SUPER.
- Stability: Finalized v1.0.0 release.
- Build: Resolved CMake configuration issues and compilation errors.
- VM: Fixed object instantiation and method binding logic.
- Diagnostics: Enhanced error reporting with column tracking and visual caret pointers (
^). - Standard Library:
std.fs: Addedcopy,is_file,is_dir.std.sys: Addedexecfor command execution.
- Tooling:
- LSP: Added "Go to Definition" support and basic keyword completion.
- Extension: Enabled Snippets and Hover support.
- PRM: Enabled remote package installation from GitHub (
prm install User/Repo).
- FFI System: Initial implementation of the Foreign Function Interface using
libffi. - Extension:
- Added icon support for
.iss(Inno Setup) files. - Added icon support for
.internal_ingoreand.internal_ignore.
- Added icon support for
- Runtime:
ffi_bridge.cfor handling native function calls.
- Official release build configuration for version 0.7.0.
- Updated version strings across the codebase.
- Build: Resolved linker errors on Ubuntu and macOS where
libffiwas not being linked to test executables (ir_gen_test,llvm_gen_test). - Stability: Fixed runtime crashes related to stack management and
inputfunction usage.
- Pre-release build configuration.
- Updated version strings to 0.5.0-pre.
- Language: Introduced
usekeyword to replaceimportfor module loading, standardizing the syntax. - Extension:
- Added material icons support with
vscode-material-icon-themeintegration. - Fixed VSIX packaging errors.
- Added material icons support with
- Runtime:
- Implemented
OP_USEopcode for dynamic module loading. - Added
std.ioand standard library module resolution fixes.
- Implemented
- Comprehensive documentation suite (400+ pages)
- Professional README with architecture diagrams
- Complete ARCHITECTURE.md with compiler pipeline details
- BUILD_GUIDE.md with platform-specific instructions
- PYTHON_TO_C.md migration blueprint
- Tutorial series (4 comprehensive tutorials)
- API reference documentation
- Bytecode format specification
- Code of Conduct for community standards
- Enhanced CONTRIBUTING.md with coding standards
- GitHub Actions CI/CD workflows
- Automated build on push/PR
- Automated testing
- Automated linting
- Test framework structure
- Unit test templates
- Integration test templates
- Test fixture organization
- Development scripts
- Cross-platform build scripts
- Formatting automation
- Linting automation
- Professional .gitignore for C/Python hybrid
- Refactor report documenting all changes
- CLI: Updated CLI version to match project version.
- Build: Fixed CMake finding LLVM and compiler paths on Windows.
- Reorganized repository structure for clarity and scalability
- Upgraded CMakeLists.txt to modern best practices
- Improved Makefile with multiple build targets
- Removed internal clutter (staff-notes, housekeeping files)
- Consolidated documentation (single source of truth)
- Enhanced code style guidelines with examples
- .gitignore now properly covers C, Python, and IDE artifacts
- CMake configuration now supports all major compilers
- Build instructions now platform-specific and accurate
docs/staff-notes/(internal development notes).internal_ignore(housekeeping file)- Redundant documentation files
- Incomplete security documentation
-
Complete Lexer (src/lexer/scanner.c)
- Tokenization of all language constructs
- 45 keywords support
- 42 operators support
- String and number parsing
- Position tracking (line, column)
-
Complete Parser (src/parser/parser.c)
- Recursive descent parsing
- All statement types
- All expression types
- Operator precedence
- Error recovery
-
Type Checker (src/parser/type_checker.c)
- Type inference algorithm
- Scope management
- Symbol resolution
- Type compatibility checking
-
Bytecode Compiler (src/runtime/compiler.c)
- AST to bytecode translation
- 42+ bytecode instructions
- Constant pooling
- Jump instruction handling
- Optimization passes (constant folding, dead code elimination)
-
Stack-Based Virtual Machine (src/runtime/vm.c)
- Bytecode execution engine
- Function call handling
- Native function dispatch
- Error handling
- REPL support
-
Runtime System
- Value type system (value.c)
- Object system (object.c)
- Memory management (memory.c)
- Debug utilities (debug.c)
- String interning
-
Standard Library (44 functions)
- I/O: print, input, open, read, write (5 functions)
- Math: sqrt, sin, cos, tan, floor, ceil, abs, min, max, pow, log, exp, etc. (15 functions)
- String: len, substring, toUpper, toLower, split, trim, contains, etc. (9 functions)
- Conversion: toInt, toFloat, toString, toBool, typeof, etc. (8 functions)
- System: exit, system, getEnv, setEnv, etc. (7 functions)
-
Language Features
- Variables (let, const)
- Functions (parameters, return, closures)
- Classes and objects
- Control flow (if/else, while, for, switch)
- Error handling (try/catch/finally)
- Collections (lists, dictionaries, sets)
- First-class functions
- Type annotations (optional)
-
Build System
- CMake (3.10+) support
- Makefile for Unix/Linux/macOS
- Cross-compiler support (GCC, Clang, MSVC)
- Debug and Release builds
-
Documentation
- Language specification
- Project architecture overview
- Example programs
-
Example Programs
- hello.prox
- fibonacci.prox
- calculator.prox
- classes_demo.prox
- stdlib_usage.prox
- Constant propagation
- Dead code elimination
- Tail call optimization
- Jump optimization
- Peephole optimization
- Performance profiler
- Async/await implementation
- Pattern matching
- Generic types
- Module system (Initial support in v0.5.0)
- Debugger integration
- Package manager (ProXPL PM)
- Standard library expansion
- IDE plugins (VS Code, Sublime)
- Language Server Protocol (LSP)
- Comprehensive error messages
- Garbage collector (advanced)
- Memory profiler
- Security audit
- Performance benchmarks
- Stable API
- JIT compiler
- WebAssembly target
- Native code generation
- Cross-platform optimization
- Advanced runtime features
- Type Checker: Partial implementation, needs refinement for complex types
- Object System: Basic inheritance, needs method binding optimization
- Memory Management: Mark-and-sweep GC not yet implemented
- Module System: Partial implementation (
usekeyword support added, std lib in progress) - Standard Library: 44/75 functions (58% complete)
- Error Messages: Could be more detailed with suggestions
- REPL: Basic implementation, no history or autocompletion
- For GC: Short-lived programs work fine with basic allocation
- For modules: Use the new
usekeyword or compile with single-file strategy - For missing functions: Implement in ProXPL or use system() calls
The C implementation aims to be 100% compatible with any previous Python version. If migrating code:
- Syntax is identical
- All core features supported
- Standard library functions have same signatures
- Error behavior is consistent
| Operation | Time | Notes |
|---|---|---|
| Startup | ~5-10ms | Cold start |
| Compilation | Fast | Bytecode compilation |
| Fibonacci(20) | <100ms | Recursive |
| String operations | Native C speed | Highly optimized |
- Startup time: <5ms
- Compilation: <100ms for typical files
- Runtime: Native C performance baseline
- Basic input validation
- No buffer overflows (C-managed)
- String bounds checking
- Type safety through type checker
- Self-reviewed (developer team)
- No external audit yet
- Planned for v1.0 release
- Run with memory sanitizers in development
- Use ASLR and DEP (OS-level)
- Validate user input scripts
ProXPL is developed by the ProXPL development team.
- Inspired by Python, JavaScript, Go, Rust, Lua
- Based on compiler design principles from "Crafting Interpreters"
- Thanks to the open-source community
This project is licensed under the MIT License.
- Check existing issues
- Provide minimal reproducible example
- Include OS, compiler version
- Describe expected vs actual behavior
- Describe use case
- Explain why it's needed
- Provide implementation hints (if possible)
- Link related issues/discussions
ProXPL uses semantic versioning: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
- PRE-RELEASE: 0.x.x indicates development
Current Version: 1.3.0 Last Updated: January 27, 2026 Next Release: 1.3.0 (Q1 2026)