- Add stubLibrary property to CompilerBase to track owning library
- Implement @typephp-library annotation parsing in stub files
- Generate library-specific API macros for imported functions
- Add automatic linking of referenced libraries during compilation
- Update function declaration prefixes based on import/export status
- Create test case for cross-library stub function imports
- Document new @typephp-library annotation usage in documentation
- Modify DefaultArgumentGenerator to skip imported functions
- Add library tracking to FunctionDef entity structure
- Add assertion to verify _const_var_ is not in main header
- Generate extern declarations for constants in global variable header
- Include exported ABI constants in global header generation
- Move constant extern declarations from extension file to global header
- Add test cases for exported ABI integer, string, and array constants
- Implement test case for library function header exports with default value helpers
- Add test case for library compile options to export only public API by default
- Generate default argument helper declarations and definitions for library builds
- Add platform-specific visibility control for library symbols on non-Windows
- Implement forced include headers for library compilation mode
- Add DLL import/export macros for Windows library builds
- Support variadic arguments with default value helpers
- Update precompiled header compilation options to exclude forced includes
- Add pragma once directive to generated function declaration headers
- Implement proper conditional compilation for different platforms and build modes
- 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
- Fixed zend_update_property call to use correct class entry variable
- Refactored object creation logic to delegate to parent allocator when needed
- Added parentHasCustomCreateObjectOnPhp84 method to detect parent class properties
- Simplified create object handler implementation using typephp_create_object_with_defaults
- Updated property initialization to work properly with asymmetric visibility
- Modified test case to include options property verification in inheritance scenario
- Changed resolveReferencedConstantType method from private to protected access
- Maintains same functionality for resolving referenced constant types
- Enables potential inheritance or extension of the preprocessor class
- Add HOMEBREW_INCLUDE_PATHS and HOMEBREW_LIBRARY_PATHS constants to Macos class
- Implement buildPhpIncludePaths method to include Homebrew prefixes after PHP installation paths
- Implement buildPhpLibPaths method to add Homebrew library prefixes to native link commands
- Add test case for macOS native build options including Homebrew search paths
- Add comprehensive test for macOS Homebrew search paths functionality
- Import Macos platform class in CompilerBaseApiTest
- Add canConsumeWrapperArgument method to determine when arguments can be consumed
- Modify argument passing logic to use php::takeValue for consumable arguments
- Support variadic arguments and specific types (mixed, string, array, object) for consumption
- Preserve reference arguments without consumption to maintain memory safety
- Add comprehensive test coverage for argument move semantics
- Create test files to verify correct argument handling in wrapper generation
perf(compiler): optimize multi-return tuple assignment with move semantics
- Replace temporary Var construction with direct tuple element assignment
- Implement std::move for final local variable uses to avoid unnecessary copies
- Track remaining variable uses to determine when to apply move semantics
- Preserve PHP value-assignment semantics for references and indirect zvals
- Add comprehensive test coverage for tuple multi-return scenarios
- Include tests for repeated values, references, globals, and static variables
```
- Add test case for namespaced class name escaping in C++ string generation
- Verify proper error message display for type mismatch in namespaced properties
- Test native scalar property assignments with configuration arrays
- Validate TypeError handling for invalid type assignments in namespaced context
fix(compiler): ensure namespaced class names are properly escaped in property type checks
- Update genCharPtr call with escape parameter set to true
- Fix object property type check display name generation for namespaced classes
- Maintain backward compatibility with existing property access patterns
- Implement anonymous and arrow generator closures with lazy execution
- Add proper context preservation for closure generator compilation
- Support yield evaluation order with key and value side effects
- Enable yield from with iterator evaluation order matching PHP behavior
- Add FiberGenerator as global type replacing TypePHP\FiberGenerator
- Implement proper return value handling for closed and failed generators
- Add validation for generator closure parameter restrictions
- Support reentrant generator advance with error handling
- Add comprehensive test coverage for generator edge cases
- Add support for array references using byRef flag in ArrayExpressionTrait
- Modify hasReference check in array parsing logic to handle mixed references
- Implement reference value parsing with proper error handling for unpacking
- Enhance foreach reference binding with improved type checking and error messages
- Add proper scope handling for foreach iterators with class context
- Update foreach value assignment to use correct reference expression syntax
- Implement structural mutation protection for std containers during iteration
- Add comprehensive test coverage for foreach edge cases and reference mutations
- Document std container modification restrictions during foreach loops
- Update yield from and foreach documentation for iterator handling differences
- Add test case for foreach by value behavior when current element is removed
- Verify that foreach maintains stable array snapshot during iteration
- Confirm expected output matches array traversal before modifications
- Document behavior where unset operations don't affect ongoing loop
refactor(parser): simplify foreach array handling logic
- Remove dedicated parseForeachArray method from ForeachTrait
- Consolidate array iteration to use existing parseForeachIterable method
- Maintain same functional behavior while reducing code duplication
- Update type checking logic to route arrays
- Replace direct php::concat calls with flattened concatenation using parseFlattenedConcat
- Add prepareConcatOperand method to handle proper string conversion for different types
- Implement unified foreach iterator using php::ForeachIterator for both arrays and objects
- Remove separate parseForeachObject method and consolidate iteration logic
- Add support for precompiled headers in GCC-like backends
- Implement PrecompiledHeaderManager for PCH preparation and caching
- Optimize build queue with SourceCompileQueue using largest-first sorting strategy
- Improve progress percentage calculation during compilation
- Add new test case for unified foreach iteration over different iterable types
- Replace php::throwException with php::throwExceptionEx for better error handling
- Add return php::null statements after exception throws in closure generators
- Update argument count error messages to use format strings with proper escaping
- Modify type error messages to use format strings instead of concatenation
- Add completed callback parameter to dispatchParallel method in NativeBuilder
- Track and report completed task count during parallel compilation
- Add progress bar functionality using AnsiKit components
- Include failure reason reporting when compilation fails
- Add test case for parallel dispatcher completion tracking
- Add test for foreach indentation restoration in object iteration
- Increment version from 0.3.0 to 0.4.0
- 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
- Replace appendCapturedStmtLines helper with direct formatCapturedStmtLines calls
- Change createPropertyAccessResolver from private to protected for extensibility
- Change resolveNativeInstanceProperty from private to protected for extensibility
- Change resolveNativeStaticProperty from private to protected for extensibility
- Change applyNativePropertyAccessResult from private to protected for extensibility
- Change containsNullsafeChain from private to protected for extensibility
- Replace parseTypeDecl output parameter with resolveTypeDecl returning array
- Change sortFiles to getSortedFiles returning sorted array instead of modifying input
- Update name resolution to handle imported namespace prefixes correctly
- Enhance property hook backing access detection with additional conditions
- Add redis extension availability check to test skip conditions
- Document compiler self-hosting constraints regarding reference parameters across traits