- Implement static type validation for union, intersection, and nullable types
- Add composite type assignment checking for parameters, return values, and property assignments
- Introduce dynamic value wrapper tests to verify type checking behavior
- Enhance error messaging for composite type mismatches
- Update documentation to reflect improved static type analysis capabilities
- Add proper restoration of compiler state after generator conversion errors
- Improve parallel compilation process management and error handling
- Add metadata caching for object files with PHP ABI compatibility checks
- Add cleanupResponseFile call after successful builds in BackendTest
- Implement proper exception handling for link failures with TestError
- Add test case for response file cleanup when linking fails
- Replace php_aot_static_int_ref with typephp_static_int_ref in assertions
- Refactor Translator to always clean up response files in finally block
- Improve error reporting for both link failures and missing target files
- Update FunctionTest return type declaration and method implementation
- Add proper exception rethrow mechanism using typephp_fiber_rethrow in compiler
- Implement comprehensive generator return type validation supporting UnionType, IntersectionType, and nullable types
- Add support for constructor property promotion in generator functions
- Enhance generator destructor handling with proper finally block execution
- Implement proper exception boundary crossing between Fiber and generator contexts
- Add comprehensive test coverage for generator lifecycle, yielding, and error scenarios
- Update documentation to reflect new supported return types including object and mixed
- Fix parameter validation and type checking integration within generator functions
- Add proper handling of yield from delegation with throw and return value preservation
- Implement automatic key tracking for generator yield operations
- Add validation for recursive IteratorAggregate cycles in yield from operations
- Added logic to detect and properly handle reference return types using returnsByRef property
- Updated return type determination to include both regular and reference types
- Modified condition check to use new cppReturnType variable instead of getReturnType()
- Ensured proper return statement generation for reference type methods
- Implement FiberGenerator trait with yield/yield from parsing
- Add generator detection and preparation logic in function compilation
- Generate TypePHP\FiberGenerator objects that implement Iterator
- Support yield expressions and statements with key-value pairs
- Enable yield from delegation with array and traversable forwarding
- Register fiber generator class entry during module initialization
- Update runtime initialization to use typephp_runtime_init
- Replace php_aot_ prefixed helpers with typephp_ prefixed versions
- Add comprehensive generator test suite covering various scenarios
- Document generator limitations and compatibility restrictions
- Mark dynamic PHP foreach over native generators as XFAIL case
- Implement parseDynamicClassConstFetch method to handle non-name expressions in class constant fetch
- Add materializeDynamicClassConstTarget method to properly evaluate dynamic class targets
- Modify parseClassConstFetch to delegate dynamic cases to new handler
- Remove outdated conditional logic for variable expressions in class
- Add isPromoted property to PropertyInfo class
- Include isPromoted flag in PropertyInfo constructor and initialization
- Set ZEND_ACC_PROMOTED flag for promoted properties in PHP 8.0+
- Update Preprocessor to track promoted status during property creation
- Add promoted flag to PropertyDef entity
- Remove xfails for promoted property tests since they now pass
- Handle promoted properties in constructor parameter processing
- Create comprehensive classification system for TypePHP AOT incompatibilities
- Define categories including Hard Limit, Intentional Rule, Pending, and Partial
- Document hard limits with AOT execution model constraints
- List intentional TypePHP rules for explicit and predictable behavior
- Detail implementable features
- Document recommended pipeline from PHP Parser AST to backend-specific code generation
- Define Bound AST structure preserving PHP syntax shape with resolved semantic information
- Specify PHP Semantic IR close to PHP runtime semantics with suggested instruction families
- Outline Runtime ABI operations for consistent
- Replace direct string concatenation with formatCppLineComment method
- Add proper line wrapping for multi-line comments in generated code
- Apply consistent comment formatting across function calls, expressions and method calls
- Introduce formatCppLineComment helper to handle comment formatting logic
- Update all comment generation points to use the new standardized approach
- Add test cases for ThinkPHP cookie, environment and service patterns
- Add test case for trait method return by reference functionality
- Add test case for array_map nested closure and unpacked callable params in ThinkPHP middleware
- Add test case for array_walk_recursive by-ref filter and match throw type cast in ThinkPHP request filter
- Add test case for preg_replace_callback use ref and foreach ref match cast in ThinkPHP route parsing
- Remove XFAIL annotations from Symfony nullable first-class callable test
- Remove XFAIL annotations from Symfony uksort priority fallback test
- Add config lazy hook fallback test with dotted key lookup
- Add event observer reflection prefix test for dynamic dispatch
- Add file hashname match callable test with closure branch handling
- Add pipeline array reduce exception handler test with nested closures
- Add request dynamic property cache test with method fallback
- Add route magic call forward test using call_user_func_array
- Create new test file return-by-ref-method.phpt
- Add test class with private value property
- Implement getValue method returning copy of value
- Implement getRefValue method returning reference to value
- Test both regular and reference return behaviors
- Verify reference assignment modifies original value
- Add expected output with proper integer dumps
- Implement handling of MethodCall expressions in assignment operations with references
- Add StaticCall expression support for reference assignments with proper name validation
- Introduce native method lookup and reference return validation for method calls
- Add static method reference assignment with class name resolution and parent/self handling
- Update function return by reference to support property fetches and chained expressions
- Modify documentation to reflect updated reference assignment capabilities
- Add comprehensive tests for method and static call reference return scenarios
- Add returnsByRef property to FunctionDef entity
- Remove restriction on reference return types in Preprocessor
- Implement proper reference return handling in CompilerBase
- Add validation for reference assignment from function calls
- Update Translator to generate correct C++ code for reference returns
- Add compatibility checks for method override with reference returns
- Include test case for function returning by reference preserving aliases
- Add support for 'lib' build mode that creates shared libraries with correct extensions
- Implement automatic 'lib' prefix for library targets on Unix systems unless explicit output is set
- Add build mode aliases normalization ('library', 'extension', 'cli' map to standard modes)
- Update target filename generation to handle explicit output paths with custom extensions
- Add platform-specific target extensions: .so for Linux, .dylib for macOS, .dll for Windows
- Include smoke test for validating library compilation and linking
- Update documentation with library build instructions and usage examples
- Add linker flag -Wl,-z,defs for Linux library builds to ensure self-contained libraries
- Modify command line help to document new build modes and clarify existing options
- Add C API header generation for exported
- Introduce NativePropertyAssignOpClassConstBox class with flags property
- Implement clearPublic method using bitwise AND assignment operator
- Add native_property_assign_op_class_const function for testing
- Demonstrate bitwise operation with ReflectionClassConstant::IS_PUBLIC
- Support integer type declaration for flags property
- Enable
- Add CMakeLists.txt for building TypePHP Ocean Godot bridge extension
- Create main.php game logic with chunk-based world generation and weather system
- Add Godot scene configuration with environment settings and particle effects
- Implement PHP stubs for ocean backend functions
- Add complete C++ backend implementation with OpenGL rendering and physics
- Integrate spectral wave simulation and dynamic weather transitions
- Implement chunk loading/unloading system for infinite world navigation
- Add mouse capture and input handling for 3D camera controls
- Create marker placement system for world objects and islands
- Add GDExtension ignore files for C++ and GDExtension source directories
- Implement CMakeLists.txt for Godot extension with proper library linking
- Create PHP stub functions for Minecraft crafting operations
- Add comprehensive C++ backend implementation with OpenGL rendering
- Implement window management, texture loading, and block rendering
- Add chunk system with face building and distance-based visibility
- Include mouse capture, camera controls, and crosshair rendering
- Implement world initialization, block placement, and chunk management
- Add sky gradient, fog effects, and transparent object rendering
- Add BUILD_MODE_LIB constant to CompilerBase class
- Implement isBuildModeLib and isBuildModeEmbed methods for library detection
- Update Clang backend to handle lib build mode with -fPIC flag and DLL linking
- Modify GccLikeBackend to support lib build mode with shared library flags
- Update MSVC backend to handle lib build mode with DLL compilation
- Extend PlatformBase to return correct extensions for lib builds
- Add proper handling for misc directory files during preprocessing
- Create new example project demonstrating library build functionality
- Update Translator to include main.cc for embed modes and add PHPX_NO_MAIN define for libraries
- Expand mode mapping to accept multiple library-related build mode aliases
- Increment version number from 1082 to 1084
- Update documentation to reflect new lib build option alongside bin and ext modes
- Updated CompilerBase.php to use convertIntExpr for bitwise not operations on variables
- Modified gen_stub.php to always use var_export for default value conversion
- Enhanced object_property test to follow strict type checking with TypeError handling
- Added native property test for bitwise not class constant assignments
- Updated Translator.php to return raw values instead of CValue wrappers for constants
- Improved documentation consistency across project overview files
- Added strict types declaration to property assignment test cases
- Change src/Php/Translator.php to src/Translator.php in documentation
- Update class hierarchy diagram to remove Php subdirectory references
- Modify composer.json autoloader to map TypePhp namespace to src directory only
- Adjust all src/Php/* paths to src/* in configuration and test files
- Update project.yml sources to include ./src instead of individual Php subdirectories
- Remove Php subdirectory from file paths in platform and analysis tests
- Clean up directory references in test results documentation
- Updated namespace declarations from PhpAot\Php to TypePhp in all source files
- Modified import statements to use TypePhp instead of PhpAot\Php throughout the codebase
- Adjusted composer.json autoload configuration to map TypePhp namespace to src directories
- Updated documentation references from PhpAot\Php to TypePhp in comments and markdown files
- Changed class references in test files to use new TypePhp namespace
- Updated bootstrap and utility scripts to reference TypePhp namespace
- Removed abstract base class inheritance in CompilerBase class
- Added new properties and methods for indentation and mode handling in CompilerBase
- Updated exception handling to use new TypePhp\Exception namespace
- Removed entire Python Translator class with all parsing methods
- Deleted sys.php example file with Python import statements
- Removed all AST parsing functionality for Python to PHP conversion
- Eliminated keyword mapping and builtin types handling for Python
- Removed code
- Rename AOT Language Design Principles to TypePHP Language Design Principles
- Update references from AOT compiler to TypePHP throughout documentation
- Change ahead-of-time compiler terminology in project overview
- Update SSA/e-SSA builder documentation to reflect TypePHP naming
- Modify function call handling documentation to use TypePHP convention
- Replace all occurrences of "Swoole-Compiler(AOT)" with "TypePHP" in file headers
- Update comment in ResourceFileGenerator to reflect new project name
- Change generated file comments from "Generated by Swoole Compiler" to "Generated by TypePHP"
- Update all PHP entity files to reference new project name
- Modify exception and generator classes to use TypePHP branding
- Update parser and resolver components with new project identification
- 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
- Implement proper type checking for native scalar property assignments from variables
- Add exact type conversion helpers for int, float, and bool property types
- Enforce compile-time validation of static type mismatches in property assignments
- Introduce PHP-style error messages for property type assignment failures
- Optimize property fetch operations with zval macro support in loops
- Refine compound assignment operations to validate variable types before native writes
- Update attribute handling in node parsing to preserve original values correctly
- Enhance property assignment type resolution with comprehensive scalar type mapping
- Added clock timezone coalesce assignment and clone constructor test
- Added CSS selector unicode escape preg_replace_callback test
- Added dotenv escaped dollars protection test
- Added filesystem dynamic call error handler test
- Added finder gitignore preg_replace_callback test
- Added finder directory normalization with array_merge unpack test
- Added intl environment variable filtering with static cache test
- Added LDAP collection iterator caching test
- Added process environment union and command line string conversion test
- Added semaphore negated coalesce assignment test
- Added serializer context group merging with unpack test
- Added validator constraint serialization with private key handling test
- Added word count trimming and filtering test
- Added weblink header parser with repeated attributes test
- Implemented isCommandExecutable method to check if compiler commands are executable
- Added getCommandProgram method to extract program name from quoted/argumented commands
- Created isPathLikeCommand helper for path-based command detection
- Added compiler toolchain validation in Translator prepare phase
- Implemented proper PATH environment lookup with extension handling on Windows
- Added comprehensive unit tests for command parsing and executability checks
- Enhanced error reporting when compiler/linker executables are not found
- Moved file collection before compiler validation in translation process
- Add EventDispatcher wrapped listener cache test with first-class callable support
- Implement Messenger nullsafe merge unpack functionality test case
- Create Runtime options global coalesce assignment test scenario
- Add Security badge dynamic class key with coalesce assignment test
- Include comprehensive test coverage for Symfony-style PHP patterns
- Verify proper handling of nullsafe operators and array unpacking operations
- Add test case for Symfony Cache style negated static coalesce assignment condition
- Add test case for Symfony Serializer style array_map(strval(...)) with Stringable values
- Add test case for Symfony ServiceLocator style match count with closure unpack
- Add test case for Symfony Workflow style array dim coalesce assignment followed by assign-op
- Include comprehensive test scenarios covering edge cases and expected behaviors
- Verify proper handling of null coalescing operators and array operations in AOT context
- Add SplObjectStorage promise pool test with clone options
- Add __serialize/__unserialize parent state destructuring test
- Add null coalesce assignment in comparison condition test
- Add match(true) condition with assignment and negation test
- Add test for AssetMapper style match statement with nullsafe side effect and throw arm
- Add test for Finder style lazy iterator using yield from callable property invocation
- Add test for HttpFoundation style static reflection cache with coalesce assignment operator
- Include proper skip conditions for unsupported features
- Verify correct behavior of Symfony-style PHP constructs in AOT compilation
- 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
- Implement dynamic native property write detection logic
- Add shouldUseDynamicNativePropertyWrite method for type checking
- Support native property assignment with type conversion
- Handle compound assignment operations for native properties
- Add canUseNativePropertyAssignOp validation method
- Create comprehensive documentation for compile-time functions
- Add test cases for native int property assignments
- Include unit tests for native property assignment operations
- Update incompatible PHP features documentation
- Add native property assignment to test suite
- Extract internal constants loading into dedicated loadInternalConstants method
- Filter out user-defined constants from internal constants array
- Maintain backward compatibility with non-grouped constants format
- Add proper handling of constant groups to prevent runtime state inclusion
- Improve static expansion behavior for compile-time vs runtime constants