- Implement ArrayDef attribute for compile-time array type contracts
- Add support for list and map type definitions with key/value constraints
- Create ArrayDefinition and ArrayDefWritePlan data structures
- Integrate ArrayDef validation into assignment operations
- Add documentation for ArrayDef usage and limitations
- Support class value types, subclasses, and dynamic type checking
- Enable static property array dimension assignments
- Optimize literal assignments into variable declarations
- Add comprehensive test cases for various ArrayDef scenarios
- Add wasm_mode environment variable with command/library options
- Implement WIT interface generation with manifest, adapter, and binding files
- Create WasmExport attribute for marking functions as component exports
- Generate C bindings and integrate wit-bindgen for component compilation
- Add support for library mode with reactor execution model
- Update build script to handle component vs command compilation
- Add JavaScript integration for calling exported Wasm functions
- Implement example extension info retrieval via WasmExport functions
- Add CSS styling for extension detail UI components
- Update documentation for WASI component library workflow
- Add printerGenerated property to ClassDef entity
- Implement removeMethod function in ClassDef for method removal
- Add comprehensive tests for getter, setter, with, printer and notnull attributes
- Create new CompileTimeAttribute utility class for attribute handling
- Implement GetterLowering for generating getter methods from attributes
- Add NotNullLowering for validating non-null parameters
- Implement PrinterLowering for generating toString methods
- Add PropertyMethodLowering for setter and with method generation
- Update gen_stub.php to recognize new compile-time attributes
- Enhance Preprocessor with printer generation logic
- Add symbol repository function removal capability
- Update Translator with printer generation predicate
- Modify Visitor to handle new attribute transformations
- Add polyfill definitions for Getter, Setter, With
- Add exported property to ClassDef and FunctionDef entities
- Implement #[NoExport] compile-time attribute processing
- Exclude NoExport-marked declarations from library stub generation
- Preserve original names during AST name resolution
- Add comprehensive test coverage for NoExport functionality
- Document NoExport attribute usage in MIXED_CPP_PHP.md
- Support NoExport with various namespace resolution patterns
- Apply NoExport cascading from classes to their methods
- Generate proper extern declarations for non-exported symbols
- Implemented expected() and unexpected() compile-time functions for branch prediction hints
- Added C++ macro generation for EXPECTED(...) and UNEXPECTED(...) in compiled output
- Updated documentation to include new branch prediction functions
- Added comprehensive tests for branch prediction macro generation
- Modified compiler base to handle expected/unexpected function type detection
- Added parser support for branch prediction function calls with proper argument validation
- Included polyfill implementations for expected and unexpected functions
- Updated version number from 1086 to 1087
- Replace ExtensionProvider::Keyword constant with direct '*' string usage
- Add LibPhpxInstaller class to automatically build libphpx.so from source
- Implement PHPX build dependency installation via system package managers
- Update installer documentation to include libphpx.so auto-build instructions
- Modify PHP directory detection to prioritize running PHP installation
- Adjust CompilerBase to use Composer InstalledVersions for PHPX path resolution
- Refactor LinuxPackageManager to separate build tool packages from configure options
- Add comprehensive tests for LibPhpxInstaller shared library detection
- Update platform warnings to guide users toward interactive auto-build
- Revise ExtensionProvider parsing to handle
- Replaced all occurrences of native_types::type_* with Type::* constants
- Replaced all occurrences of complex_types::type_* with Type::* constants
- Updated ExtensionProvider annotation to use ExtensionProvider::Keyword
- Modified std array, vector, map, ordered_map, bigfloat, bigint, decimal tests
- Updated stream, array multidimensional, unsafe pointer, and type mismatch tests
- Changed camel case keyword extension to use Type::Any constant
- Updated documentation to reflect Type::* constant usage instead of type_* constants
- Add ExtensionProvider attribute class to define extension targets
- Convert function-based extensions to class-based ExtensionProvider pattern
- Support various target types including native_types, complex_types, and class names
- Parse ExtensionProvider attributes during preprocessing phase
- Generate proper extension method calls using provider classes
- Update test cases to use ExtensionProvider syntax instead of function prefixes
- Remove old extension function name patterns and related logic
- Add validation for extension provider method signatures and parameters
- Support both snake_case and camel
- Rename project references from Swoole-Compiler to TypePHP in documentation
- Update command line usage from php bin/compiler.php to ./tpc
- Change application name constant from Swoole-Compiler (AOT) to TypePHP
- Update file descriptions and metadata in project.yml
- Modify Windows packaging script title to TypePHP
- Replace all copyright headers to reference TypePHP instead of Swoole-Compiler
- Move class declaration to new line with proper brace placement
- Add bigInt, decimal, and bigFloat methods for type handling
- Modify vector method to accept optional size parameter
- Remove unsafe_ptr and fill methods from class
- Clean up trailing braces in type conversion functions