- Remove TYPEPHP_PROJECT_NAME and TYPEPHP_RUNTIME_EXPORTS from common compile options
- Add dedicated getProjectRuntimeEntryCompileCommandOptions method for project-specific defines
- Update testEmbeddedCompileOptionsPassProjectNameForModuleAccessor to reflect new behavior
- Create new testProjectRuntimeEntryHasTargetDefineWithoutPchOrObjectCache
- Add testProjectIndependentMiscObjectsUseSharedCacheScope and testProjectIndependentMiscObjectCacheSurvivesTargetNameChange
- Update composer.json to use swoole/phpx ~2.6.4
- Modify object file caching logic to handle project-specific vs shared misc objects
- Add isProjectRuntimeEntryFile helper method for determining cache scope
- Update compileFile method to use source-specific compile options
- Handle different PHPX runtime source file layouts during embed mode builds
- Added support for `ext-deps` as equivalent shorthand name for `extension-dependencies`
- Implemented validation to prevent using both config names simultaneously
- Updated documentation to reflect the new alias and usage restrictions
- Added test cases to verify ext-deps alias parsing works correctly
- Added test cases to ensure configuration error occurs when both names are used
- Refactored Translator.php to handle both configuration key variants
- Maintained backward compatibility with existing extension-dependencies usage
- Prevent native classes from being exported through library stubs with proper error messages
- Add test cases to verify rejection of exported native classes in library builds
- Validate that NoExport native classes are omitted from library stub generation
- Implement check for native class usage in stub files with appropriate error handling
- Update hot path codegen to use appendValue method instead of append
- Add comprehensive test coverage for native class validation scenarios
- Replace direct typephp_runtime_init calls with TYPEPHP_RUNTIME_INIT macro
- Add conditional linking for Unix PHP extensions to prevent duplicate ZendVM
- Implement dynamic lookup for macOS extensions to resolve host symbols
- Move typephp_helper.h from misc to include directory
- Update WASM interface generator to use project-specific runtime symbols
- Add tests for native module linking behavior and macOS extension options
- Refactor Translator to generate proper embed module entry functions
- Update documentation for new runtime initialization patterns
- 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
- Add test case for repeated dynamic static calls not reusing released trampoline
- Add test case for repeated static calls to runtime-defined magic class
- Throw LogicException in getFuncPtr when class method name is detected
- Update getFuncPtr to reject class method names with proper error message
- Replace getFuncPtr with getMethodPtr for static method calls in method call trait
- Update Closure::fromCallable handling to use getMethodPtr instead of getFuncPtr
- Fix Python module trait to use getMethodPtr for PyCore methods
- Update translator to clear function and class maps on every request shutdown
- Refactor property access resolver to use compiled class declaration for parent lookup
- Add test to verify subclass lookup uses compiled class declaration when parent index is missing
- Update request shutdown test to run in all build modes with proper assertions
- Add specific test for function pointer cache rejecting class method names
- Rename internal symbol maps to persistent maps (internal_class_map to
persistent_class_map, etc.)
- Replace process-level stable symbol caching with module lifecycle
persistent caching
- Implement lazy initialization of persistent caches after PHP startup
- Add support for built-in class property resolution via reflection
- Remove dynamic property map as all cached properties are module-stable
- Update cache initialization to use atomic operations for ZTS safety
- Modify RSHUTDOWN cleanup to only clear user-defined caches
- Add test coverage for persistent symbol cache behavior
- Update GCC backend to hide extension symbols by default with -fvisibility=hidden
- Add Command class to handle --gen-python-helper and --convert-python-to-php operations
- Integrate PythonToolsCommand execution into main compiler flow
- Remove toPlainValue from CompilerBase keyword method map
- Update tests to use new toValue() and toArray() methods instead of toPlainValue()
- Rename plain-value tests to object-conversion-methods with updated expectations
- Replace toPlainValue documentation with toValue() and toArray() explanations
- Add HelperRenderer to generate PHP declarations for Python modules
- Implement PhpyModuleScanner to inspect Python modules via reflection
- Add PyObjectHelperRenderer to generate base PyObject IDE helper
- Create example pi.php demonstrating new Python integration features
- Update gitignore to exclude ide-helper directory
- Update WASI target detection to support wasm32-wasip2 and wasm32-unknown-wasip2 only
- Add jco tool integration with version requirement and environment variables
- Implement comprehensive function validation for WASI unsupported functions
- Add WASI_UNSUPPORTED_FUNCTIONS list including exec, socket, pcntl, and posix functions
- Replace wasm-ld with wasm-component-ld for WASI Preview 2 compatibility
- Remove support for deprecated WASI Preview 1 targets with proper error messaging
- Update toolchain detection to use wasip2-specific compiler tools
- Add function prefix validation for pcntl_, posix_, and socket_ function families
- Enhance version detection regex pattern for more reliable tool version parsing
- Update test suite to validate new WASI Preview 2 target and tooling requirements
- Modified parseOrderedBinaryOperand and parseOrderedOperand to return string instead of float|int|string
- Changed parseNumericIdentifier to always return string values instead of numeric types
- Updated genCValue method to return string representations of boolean and float values
- Adjusted safeIndex method parameter type to accept int|string for size parameter
- Updated test cases to verify string output from numeric identifier parsing
- Modified generator test expectation to check Iterator instance instead of dumping object details
- Modified genCValue method to always return string type instead of mixed
- Changed float values to be cast to string in genCValue method
- Updated boolean values to return '1'/'0' strings instead of integers
- Fixed getInternalScalarConstantValue return type to string only
- Added explicit string casting for literal string keys in Translator
- Added comprehensive tests for C value generation ensuring source code strings
- Added comments explaining integer-string array key handling in literalStrings
- Add compiler_pdb option to specify PDB file path in debug mode
- Implement /Fd and /FS flags for PDB generation during compilation
- Generate linker PDB files following output path conventions
- Create cache/msvc directory for storing compiler PDB files
- Add Windows-specific debug configuration for PDB handling
- Update version number to reflect new feature implementation
- Modified parseProjectYaml to skip non-existent ignore paths instead of throwing errors
- Added test case verifying optional ignore paths are silently ignored when missing
- Maintained existing behavior for missing source files which still throw exceptions
- Updated version number from 1096 to 1097
- Remove static constant lookup logic from parseConstFetch method
- Add support for unqualified constants in namespaces with runtime fallback mechanism
- Implement UnqualifiedInNamespace constant lookup strategy for proper PHP behavior
- Update test cases to verify runtime constant resolution works correctly
- Add comprehensive test coverage for namespace constant fallback scenarios
- Remove isValidDefineName validation in favor of direct string checking
- Support define() calls with namespaced and non-identifier constant names
- Add proper error handling for undefined constants in namespaces
- Introduce EXTENSION_PREFIX constant in Constants class
- Add isTypePhpExtension method to Reflection class for proper extension identification
- Update getModuleName to use standardized extension prefix
- Modify internal class and interface detection to exclude TypePHP extension symbols
- Refactor internal functions loading to filter out TypePHP extension functions
- Remove deprecated ignoreExtensions property and related regex parsing logic
- Update version from 0.4.1 to 0.4.2
- Add test case to verify zend module always uses typephp prefix
- 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
- Rename stubLibrary to stubImportLibrary and add externalImportStubFiles property
- Create LibraryImportStubGenerator to generate combined stub files with @import-library annotation
- Update documentation to reflect new import library mechanism without @typephp-library annotation
- Modify build pipeline to exclude generated stub from input files and generate library import stubs
- Add TYPEPHP_LIBRARYNAME_IMPORT macros for importing functions from external libraries
- Update function definition entities to track importLibrary instead of library ownership
- Refactor preprocessing to detect @import-library annotation and manage external stub files
- Implement proper handling of imported functions with different macro prefixes in declarations
- Rename genFunctionDeclaration to genFunctionDeclarations
- Rename genExternGlobalVars to genDataDeclarations
- Update global variable declaration header from global_var_decl.h to data_decl.h
- Update documentation to reflect new internal build header files
- Modify source pipeline to use new method names and header naming convention
- 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
- 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
- Replaced all occurrences of self::TYPE_* with Type::* in AnonClassGenerator.php
- Updated ArrayExpressionTrait.php to use Type::ARRAY and Type::VAR instead of self::TYPE_*
- Modified AssignOpTrait.php to reference Type constants instead of self::TYPE_*
- Changed BinaryOpTrait.php to use Type::BIGINT, Type::DECIMAL, Type::BIGFLOAT constants
- Updated CallArgumentGenerator.php to use Type::ARRAY and Type::REF constants
- Added Type import statements to all modified files
- Maintained same functionality while improving code consistency with Type namespace
- Introduce --php-version CLI option to specify accepted PHP syntax version
- Add support for PHP 8.5 pipe operator with left-to-right evaluation
- Implement PHP version validation in project configuration parsing
- Update parser factory usage to respect configured PHP version
- Add tests for pipe operator functionality and PHP version controls
- Modify stub generation to use configured PHP version
- Update documentation with new --php-version option details
- 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 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
- 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
- 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