- Replace php_get_class with get_class throughout the codebase
- Replace php_get_persistent_class with get_persistent_class
- Replace php_get_func with get_func and update related helpers
- Replace php_get_persistent_method with get_persistent_method
- Replace php_get_persistent_prop with get_persistent_prop
- Replace php_globals_array with php::globalsArray
- Replace php_deindirect with php::deindirect
- Replace php_get_called_ce with php::getCalledCe
- Replace php_get_callable_scope with php::getCallableScope
- Replace php_get_str with get_str for literal string access
- Update build script to handle TypePHP project module accessor
- Add test case for helper symbol collision prevention
- Modify module initialization from app_init/app_clean to module_init/module_clean
- Cache GLOBALS variable check result to avoid redundant parsing
- Implement fast paths for typed array and string reads using direct method calls
- Add optimized handling for simple shorthand ternary operations
- Generate efficient C++ code for array dimension fetch with proper type detection
- Preserve PHP semantics for reference handling in array operations
- Add comprehensive test coverage for typed read optimizations
- Improve namespace isolation for generated runtime symbols across build modes
- Introduce $allowLocalClassEntryHoisting flag to control class entry hoisting behavior
- Add withoutLocalClassEntryHoisting method to temporarily disable hoisting during callback execution
- Modify getLocalClassEntryPtr to respect hoisting allowance when checking process stable class
- Wrap parameter default parsing in withoutLocalClassEntryHoisting to prevent unwanted hoisting
- Update array initialization in Preprocessor to use hoisting control for literal arrays
- Add support for new expressions in array parameter defaults with proper class resolution
- Include tests for array parameter defaults containing new expressions
- Add tests for runtime array property defaults with copy-on-write behavior
- Rename generated request array default symbols with 'typephp_' prefix for consistency
- Update documentation to reflect implemented optimizations and remaining costs
- Add optimized array write operations that preserve references and avoid temporaries
- Implement direct array append and item assignment for known array types
- Optimize compound assignment operations like += for known array slots
- Add compile-time expansion for $this::CONST class constant fetches
- Cache process-stable class entry pointers at function level to avoid repeated lookups
- Optimize string concatenation with two scalar operands using efficient overload
- Skip unnecessary type conversions for arguments that already have exact types
- Add comprehensive test coverage for optimized array operations and object creation
- Implement lazy initialization of request-scoped array default templates
- Generate efficient
- Change temporary variable type to Variant for PHP arrays to prevent undefined C++ behavior
- Add methodNameToStr helper that treats 'self' and 'static' as ordinary member names
- Replace identifierToStr with methodNameToStr for method calls to respect lexical rules
- Update nullsafe access trait to use proper method name parsing
- Add test case for array element compound arithmetic overflow handling
- Add test case for nullsafe chain preserving typed method returns
- Create new test file for signed integer arithmetic operations
- Add test cases for addition and subtraction with negative values
- Verify that non-overflowing results maintain integer type
- Test increment and decrement operations with integer preservation
- Include expected output for all arithmetic operations
- Validate type checking behavior with requireInt function calls
- Updated swoole/phpx from ~2.6.0 to ~2.6.1 in composer.json
- Incremented version number in version.txt from 1108 to 1109
- Bumped package version constant in Translator.php from 0.6.0 to 0.6.1
- Added new test file for request root shutdown cleanup functionality
- Replace php::safeIndex with php::safeArrayIndex for consistent boundary checking
- Remove special case handling for property[count(property)] append operations
- Use zend_hash_next_free_element() based append position instead of length()
- Update tests to verify inclusive upper bound behavior for sparse arrays
- Add comprehensive test coverage for unset() hole scenarios
- Modify documentation to reflect new indexing behavior and boundaries
- Rename canFoldLocalLiteralIntoDeclaration to canFoldLocalInitializerIntoDeclaration
- Replace isDeclarationLiteral with isHoistSafeDeclarationInitializer
- Add support for hoisting compile-time class constants in addition to literals
- Implement isHoistSafeClassConstFetch to determine safe class constant hoisting
- Add isHoistSafeConstFetch to validate constant fetch safety for hoisting
- Update documentation to reflect hoist-safe value requirements
- Add tests for native scalar literals, compile-time constants and class constants
- Move internal constant value generation to separate method
- Refine constant resolution logic with namespace fallback handling
- Add validation for runtime constant dependencies in class constants
- 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
- Updated default initial collection threshold from 10 MiB to 16 MiB
- Increased test loop iterations to accommodate new memory threshold
- Removed padding fields from native class test objects
- Adjusted gc-threshold test to allocate 1100000 objects instead of 300000
- Updated documentation to reflect new 16 MiB initial threshold value
- Modified multiple native class test files to align with new threshold settings
- Add $padding field to NativeFailedClonePressure class in failed-clone-finalizer.phpt
- Add $padding field to NativeFailedLifecyclePressure class in failed-lifecycle-escape.phpt
- Add $padding field to NativeFinalizerFiller class in finalizer-allocation.phpt
- Add $padding field to NativeFinalizerPressureObject class in finalizer-inheritance-exception.phpt
- Add multiple padding fields ($padding1, $padding2, $padding3) to NativeGcThresholdValue class in gc-threshold.phpt
- Add $padding field to NativeLifecycleFiller class in lifecycle-exceptions.phpt
- Update native heap memory layout documentation with fixed header size information
- Clarify that GC header uses two machine words (16 bytes on 64-bit platforms)
- Explain that object size, alignment and callbacks are stored in static NativeTypeDescriptor
- Remove mention of initial
- Removed "any", "box", and "stream" aliases mapping to ZEND_STR_MIXED
- Added test case to verify property names are not rewritten through pseudo-type string aliases
- Created attribute metadata test to ensure string arguments maintain original values
- Prevented potential conflicts between pseudo-type aliases and actual property/argument names
- Add requireWitBindgen parameter to WasiToolchain detect method
- Include wit-bindgen requirement when project mode is library
- Add specific error message for wit-bindgen-cli installation in library mode
- Remove manual host OS/architecture detection logic
- Use tools array to provide wit-bindgen path from toolchain detection
- Simplify environment variable assignment for TYPEPHP_WIT_BINDGEN
- Remove bundled PHPX wit-bindgen binary and switch to PATH-based discovery
- Require wit-bindgen-cli 0.60.0 to be installed separately in system PATH
- Update error messages to reflect standalone wit-bindgen installation requirement
- Exclude host build tools from package distribution, only include target SDK
- Add WIT_BINDGEN_VERSION constant and detection logic in WasiToolchain
- Implement wit-bindgen version validation in toolchain detection
- Add test cases for wit-bindgen presence and version compatibility checks
- Update documentation to reflect wit-bindgen-cli 0.60.0 installation requirement
- Modify build scripts to locate wit-bindgen through PATH instead of PHPX bundle
- Remove makeScopedCallableMap helper function
- Change preg_replace_callback_array strategy from 'map' to 'dynamic-map'
- Add dynamic-map strategy support in CompilerBase for efficient callback processing
- Update documentation to reflect new callback map implementation approach
- Modify tests to verify UserCodeScopeGuard usage instead of makeScopedCallableMap
- Add test case with static closure in preg_replace_callback_array
- Create comprehensive guide for rebuilding PHPX WASM static library
- Document directory conventions and toolchain preparation steps
- Provide detailed instructions for daily development builds with CMake
- Include procedures for full SDK rebuild and PHP ABI changes
- Add validation steps and common error troubleshooting
- Update main documentation index with new rebuild guide link
- Include completions/tpc.bash in package distribution
- Create completions directory during build process
- Copy bash completion file to target directory
- Add bash completion script with comprehensive command options
- Implement file and directory completion for various parameters
- Support parameter-specific value completion for optimization levels
- Add support for PHP version, C++ standard, and WASM target completion
- Enable filename completion for input/output files and directories
- Implement BashCompletion class that generates bash completion script
- Add CompletionCommand to handle --generate-completion=bash argument
- Create CompletionMetadata to provide option and value definitions
- Integrate completion check into main compiler flow
- Add unit tests for bash completion generation and functionality
- Update documentation with bash completion usage instructions
- Add --generate-completion=bash to CLI help text
- Upgrade @bytecodealliance/preview2-shim from 0.18.0 to 0.20.1
- Update import paths from /deps/lib/ to /deps/dist/
- Add _getPreopens and filesystemTypes imports for new functionality
- Implement installMutableFilesystem function with directory operations
- Add unlinkFileAt and removeDirectoryAt methods to Descriptor prototype
- Install mutable filesystem in both browser runner and worker
- Add ENOENT error handling for extensionless ESM imports
- Introduce TYPEPHP_WASM_TEST_STAGE global for debugging
- Enhance error reporting with stage information in test harness
- Add explicit null return statement when mixed return type is added to anonymous class methods
- Extend anonymous class with ImportedVisitor base class in test case
- Add inspect method implementation in anonymous class to check object instances
- Update expected test output to include NULL result
- Add proper visitor class with inspect method in test namespace
- Include necessary use statements for Visitor class in anonymous class consumer tests