- Add version field to expose extension version through Zend module entry
- Add info mapping to accept arbitrary labels and scalar values for phpinfo()
- Generate PHP_MINFO_FUNCTION to display custom extension information
- Preserve info mapping order in module's phpinfo() section
- Validate version as non-empty string without NUL bytes
- Validate info as mapping of non-empty string labels to scalar values
- Add comprehensive tests for metadata parsing and generation
- Update documentation with extension metadata configuration examples
- Extended iOS platform support to handle simulator targets with arm64-apple-ios-simulator
- Added new ios-simulator.yml configuration for building simulator-compatible executables
- Created build-ios.sh script to handle both device and simulator builds with parameter selection
- Implemented dynamic SDK directory selection based on target platform (iphoneos vs iphonesimulator)
- Updated error messages to reflect generic iOS SDK terminology instead of iPhoneOS specific
- Added package-ios-simulator-app.sh for packaging simulator applications without provisioning profiles
- Updated README documentation with complete iOS simulator setup and build instructions
- Modified codesign commands to include --generate-entitlement-der flag for proper entitlement handling
- Adjusted gitignore to exclude new ios-simulator-build directory and simulator executable
- Implemented parseNestedArrayUnset method to handle chained array dimension unsets
- Added logic to process nested ArrayDimFetch expressions in unset statements
- Created proper dimension parsing and code generation for nested array operations
- Maintained PHP evaluation order for key materialization in nested unsets
- Added comprehensive test coverage for nested unset chain behavior
- Extended compiler tests to verify correct handling of complex unset scenarios
- Added "Start All" button to UI with proper enable/disable logic
- Implemented startAll method to start all non-running tunnels at once
- Added logic to skip already running or transitioning tunnels
- Implemented failure collection and reporting for individual tunnel errors
- Updated README documentation with new feature description
- Added start_all_test.php to
- Add acceptsCallable property to ArgInfo entity to track callable type acceptance
- Implement logic to detect when function parameters accept callable types
- Add normalization of bare function callable arguments to string representation
- Create helper methods to check if types contain callable declarations
- Add resolution logic for bare identifier function names in callable context
- Update native class support to set acceptsCallable flag based on type checking
- Modify preprocessor to populate acceptsCallable field during argument parsing
- Remove deprecated typeDeclContainsCallable method and consolidate logic
- Add comprehensive test coverage for bare
- Replace syscall-based time functions with CLOCK_MONOTONIC using clock_gettime
- Add 100 Hz PIT timer and COM1 serial input interrupt handling via 8259 PIC
- Implement nanosleep syscall with proper duration calculation and interruptible sleep
- Add blocking console reads that wait for IRQ4 input instead of busy polling
- Update clock resolution to 10 ms (100 Hz) for monotonic clock
- Add proper timer tick tracking and interrupt dispatch mechanism
- Enable hardware interrupts in user mode while maintaining syscall protection
- Add sleep function wrapper around nanosleep in
- Add typephp_os_disk_cache_bytes function to return ATA cache size
- Implement C++ terminate function with typephp_os_panic call
- Create new free.cc with php_os_memory_value native function
- Add free.php memory reporting command with pool accounting
- Define free.yml build configuration for the new command
- Update hello.yml with additional compiler flags
- Add syscall declaration to ioctl.c
- Introduce arena_begin variable and typephp_os_memory_total function
- Implement vfprintf function using vprintf
- Add typephp_os_longjmp implementation with proper asm annotation
- Update fprintf to use v
- Increased ATA cache capacity from 16384 to 65536 sectors for 32 MiB direct-mapped cache
- Expanded bootstrap stack from 16 KiB to 256 KiB with proper headroom for identity-map tables
- Updated userspace syscall interface from int 0x80 to native x86-64 SYSCALL instruction
- Raised QEMU memory allocation from 160M to 512M for improved runtime performance
- Increased kernel reserved memory from 40 MiB to 64 MiB with updated linker script assertion
- Added fixed-console ioctl(TIOCGWINSZ) support for VGA dimension reporting
- Enhanced ATA
- Replace int 0x80 with native x86-64 SYSCALL instruction for faster system calls
- Add syscall number 16 for ioctl support with Linux-compatible ABI
- Implement TIOCGWINSZ and TIOCNOTTY terminal ioctls for console size detection
- Add ENOTTY error code definition for inappropriate ioctl operations
- Increase ATA cache capacity from 128 to 16384 entries for better performance
- Change ATA cache from LRU eviction to direct mapping using bitwise AND
- Remove least recently used tracking from ATA cache entries
-
- Move user command sources from user/ to user/cmd/ directory
- Update Makefile to reference user/cmd/ path for compiling .c files
- Restructure user/ directory to separate commands from runtime components
- Add documentation about cmd/ and runtime/ organization in user/README.md
- Update main README.md to reflect new user space structure
- Maintain existing
- Replace global errno variable with __errno_location function
- Add complete strerror implementation for standard error codes
- Implement perror function for error message output
- Move strlen implementation to separate string.c file
- Update getcwd to use new errno macro instead of direct variable
- Mark getcwd as weak symbol to allow overriding
- Remove unimplemented strerror stub from assembly file
- Add 128-bit integer helpers from compiler-rt builtins
- Update third-party dependencies with detailed documentation
- Improve curl download scripts with silent
- Implemented opendir, readdir, closedir, and related directory functions
- Added fcntl system call support with proper flag handling
- Integrated compiler-rt builtins for 128-bit integer operations
- Updated build system to fetch and compile compiler-rt dependencies
- Refactored ls command to use standard POSIX directory APIs
- Added directory file descriptor management in kernel
- Implemented getdents64
- Added Linux-compatible file metadata syscalls (stat, lstat, fstat, newfstatat)
- Implemented access control checks with faccessat and related flag definitions
- Added file persistence operations (fsync, fdatasync, truncate, ftruncate)
- Integrated clock syscalls (gettimeofday, clock_gettime, clock_getres)
- Added process identity queries (getpid, getppid, gettid, getuid, getgid)
- Changed exit mechanism from exit(60) to exit_group(231) for consistency
- Updated crt0.S with Linux x86-64 exit_group ABI compatibility
- Extended fcntl.h with AT_SYMLINK_NOFOLLOW and AT_EACCESS constants
- Added complete syscalls implementation in user/libc.c and runtime/posix.c
- Implemented kernel-side syscall handlers in process.c with proper validation
- Added systest utility to verify file metadata, persistence and identity calls
- Updated Makefile dependencies to track user header changes
- Enhanced README documentation for new
- Configure kernel-only paging with separate user virtual regions
- Add PHP Nano project compilation with link library support
- Implement aligned memory block management for Zend allocator
- Create reusable libtypephp-os.a platform archive for TypePHP userspace
- Add uname system call support and update user-space syscalls
- Increase QEMU memory allocation from 128M to 160M
- Add TNHELLO.ELF as full TypePHP + PHPX
- Add crt0.S assembly startup code for user mode entry point
- Create hello.php example application with basic system information output
- Add hello.yml build configuration for nano user mode executable
- Implement host.cc with system call interfaces and runtime initialization
- Add linker script for proper user mode memory layout
- Update Makefile with new user base addresses for shell and commands
- Implement posix.c with POSIX compatibility layer using system calls
- Update process.c with new user memory range constants and stack sizes
- Add syscall.S assembly wrapper for Linux system call interface
- Modify vm.c with expanded user address space mapping and cleanup
- Update vmfault.c with correct shell memory address reference
- Add ATA disk cache with LRU eviction strategy and hit/miss statistics
- Introduce disk cache metrics accessible through kernel API
- Update boot sequence to enable long mode and execute-disable page permissions
- Replace custom syscalls with standard POSIX equivalents in user programs
- Add new user utilities including cat, echo and fault testing command
- Enhance FAT16 volume implementation with full path traversal and file operations
- Implement comprehensive filesystem layer supporting nested directories
- Add file operations for reading, writing, creating and deleting files/directories
- Include directory listing and
- Add date command implementation that displays current time in UTC format
- Add pwd command to print current working directory
- Update Makefile to build date and pwd as user programs with shared ELF loading
- Refactor syscall handling to use shared header definitions
- Remove KernelGreeting class from kernel startup sequence
- Update README and ROADMAP documentation for new user commands
- Add test assertions for date and pwd command output in test suite
- Introduce reusable command address space management in process.c
- Add user-accessible page mapping (32-36 MiB) in boot.S with proper permission bits
- Implement ELF64 loader and process management in new process.c module
- Add syscall infrastructure including int 0x80 handler in process-entry.S
- Create userspace programs (sh, ls, cd) with dedicated linker script
- Integrate filesystem path type checking and directory listing functions
- Reserve memory regions for user processes and update kernel memory layout
- Add console input/output support for userspace applications
- Update kernel main loop to start user process after initialization
- Modify Makefile to build and embed userspace ELF images as kernel objects
- Document new userspace capabilities and limitations in README.md
- Implemented low-level ATA PIO driver with read/write/flush operations
- Added FAT16 filesystem layer with directory and file management
- Created bridge between C disk operations and PHP filesystem API
- Integrated disk availability detection and LBA sector access
- Implemented file operations including open, read, write, and close
- Added support for directory creation, file listing and renaming
- Included proper error handling and disk initialization logic
- Add objects section to project.yml for linking precompiled .o/.obj files
- Implement getProjectObjectFiles method to retrieve precompiled objects
- Add c-flags and asm-flags support in CompilerBase
- Extend GCC backend to handle cflags and nativeflags configuration
- Update compiler to include project object files in linking process
- Add freestanding C++ allocation ABI implementation using Zend MM
- Include example TypePHP OS with kernel entry point and hardware stubs
- Add assembly files for boot sequence and kernel entry point
- Implement basic libc compatibility layer for Zend bootstrap
- Add try/catch macro replacement in generated code indentation
- Create bridge between C++ kernel and PHP code
- Add linker script for 64-bit kernel binary generation
- Add native source project compilation workflow with project.xml configuration
- Implement closure reference capture analysis and type degradation for native objects
- Add WASI and nano mode function support checks with comprehensive API exclusions
- Introduce Composer native package discovery and validation system
- Add build scripts for WASI nano program compilation with browser module support
- Implement closure generator enhancements for reference capture handling
- Add CLI usage tests and compiler base API validations
- Integrate php-nano runtime dependencies and native package management
- Add type degradation analysis for closure use variables in generators and functions
- Create Android project structure with build configuration and manifest
- Implement PHP-to-Java bridge with JNI integration for native Android UI components
- Add comprehensive UI stub functions including window creation, labels, buttons, and inputs
- Develop Android Activity with native View bridge and layout management system
- Integrate build scripts for compiling PHP into Android shared library and packaging APK
- Include installation script with ADB deployment and application launching
- Provide complete Hello World application demonstrating TypePHP Android capabilities
- Add proper Git ignore rules and documentation for the Android example
- Update swoole/phpx from ~2.7.0 to ~2.8.0 in composer.json
- Add proper button styling for macOS 11+ with automatic button styles
- Fix control nil check in macos_bridge.mm to prevent crashes
- Use title property for NSButton updates on macOS to handle system-style buttons
- Refactor unset handling in PropertyAccessTrait to use type-specific defaults
- Replace hardcoded default values with Type::getDefaultValueExpression calls
- Add
- Create native macOS GUI application using TypePHP and Objective-C++ bridge
- Implement thin wrappers around AppKit API for window management and controls
- Add support for labels, buttons, and event handling in native macOS interface
- Include proper Info.plist configuration and code signing script for app bundles
- Provide complete example with application lifecycle and user interaction
- Document build requirements and packaging instructions for macOS distribution
- Replace direct function calls with call() wrapper in ext.cc
- Remove unused php_func.h include
- Add new ctype/main.php example with isAsciiWhitespace function
- Implement proper parameter validation for ASCII range checking
- Add main function to demonstrate ctype space detection usage
- Replace any() with std::any() in test files and compiler logic
- Replace refval() with std::ref() for reference wrapping operations
- Replace expected() with std::expected() for branch prediction hints
- Replace unexpected() with std::unexpected() for branch prediction hints
- Remove deprecated objval() function and use toObject() keyword method
- Update parser to recognize std:: class expressions with case insensitivity
- Add comprehensive changelog documenting breaking API changes
- Update documentation to reflect new std:: namespace conventions
- Add tests for case-insensitive std class and method names
- Verify global function names remain available for user-defined functions
- Moved mpdecimal DLL copying to after phpx target creation on Windows
- Fixed timing issue where post-build commands were registered too early
- Updated GitHub repository URL in JNI tutorial documentation
- Added new Windows build workflow with proper PHP SDK setup
- Implemented vcpkg integration for GMP and MPFR libraries on Windows
- Added mpdecimal build step in Windows CI workflow
- Configured PHPX build with proper
- Removed file reading logic from leibniz.cpp and hardcoded rounds as 100000000u + 2u
- Removed fs module import and file reading from leibniz.js, replaced with constant 10000000
- Removed file reading code from pi.go and hardcoded rounds as 100000000
- Removed file reading from pi.php and replaced with hardcoded value 10000000
- Deleted rounds.txt file that contained the input value
- Updated version numbers in project.yml from 0.1.0.1052/0.1.0 to 0.6.3.1112/0.6.3
- Removed package.json and package-lock.json files with node dependencies
- 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
- 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
- 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
- Create python.php with Python builtin symbols for IDE completion
- Scan builtins module when generating any module helper
- Convert Python print() calls to PHP echo statements when behavior matches
- Convert sys.exit() calls to PHP exit() when using integer codes
- Fix attribute access on module aliases to use -> syntax after first member
- Add proper dereferencing for f-string expressions
- Update documentation to reflect builtin helper generation
- Add tests for native statement conversion and attribute handling
- 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
- Integrate browser-based WASM test runner using Puppeteer
- Add built-in extensions test for WASM runtime compatibility
- Implement WASI filesystem, clock and random functionality tests
- Create IO and environment variable handling tests for WASI
- Add PHPX numeric containers test for high precision types
- Include basic runtime platform detection tests
- Update run-tests.php with --target and --wasm command options
- Implement multi-target test execution for native and WASM backends
- Add WASM-specific configuration sections and argument parsing
- Integrate dependency management for browser test harness
- Refactor build script references from build-typephp-program.sh to build-program.sh
- Remove legacy numeric smoke test files and update documentation
- Migrate high precision example location from wasm/examples to examples directory
- 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
- Change default TYPEPHP_WASM_BROWSER from 1 to 0 in build script
- Add PHP extensions panel to WASM hello example UI with dynamic loading
- Update project.yml schema to require explicit 'browser' or 'component' values
- Modify help text to reflect component as default WASI output
- Update documentation to clarify component vs browser build profiles
- Remove legacy boolean and array config formats for wasm option
- Add validation for unsupported profile aliases like 'web'
- Refactor profile normalization to only accept 'browser' or 'component'
- Update tests to verify new configuration behavior and error handling
- Add build-typephp-program.sh script for compiling PHP to WASI
- Integrate HTTP fetch capability via file_get_contents() using WASI HTTP
- Move WASI builder script from projects/php-8.5.9/wasm to wasm directory
- Add PhpxLocator class to resolve PHPX directory with proper fallback logic
- Update compiler to pass PHPX directory and compiler executable to builder
- Add WASI SDK layout
- Add WasiProjectConfig class for managing WASI project configurations
- Implement --wasm=[browser|component] option parsing in compiler CLI
- Add automatic WASI detection based on project.yml files
- Integrate Jco for browser component generation
- Update documentation to reflect WASI 0.2 (Preview 2) support
- Add example wasm-hello project with browser demo
- Create index.html and main.js for browser-based WASI execution
- Implement OPFS persistence for virtual filesystem in browser
- Add type-safe environment variable handling for WASI builds
- Update compiler help text to show new WASM options
- Replace WASI Preview 1 references with WASI 0.2 terminology