| Changelog for eio | 
                                    
                        | Release | What has changed? | 
                                            
                                                    
                                | 3.1.4 | - Fixed #25: use zend_ce_exception instead of zend_exception_get_default() for 8.5 (by Remi Collet) | 
                                                                    
                                                    
                                | 3.1.3 | - Fixed #23: Replace struct stat symbols (thanks to Peter Kokot). | 
                                                                    
                                                    
                                | 3.1.2 | - Restored libeio/xthread.h in package.xml | 
                                                                    
                                                    
                                | 3.1.1 | - Fixed issue #21: eio_fallocate() tests failed on Fedora 40 - Updated the embedded libeio.
 | 
                                                                    
                                                    
                                | 3.1.0 | Fixed issue #19: Initialized new stack pointers introduced in PHP 8.3.0RC1+ | 
                                                                    
                                                    
                                | 3.0.1 | Fixed issue #19: Initialized new stack pointers introduced in PHP 8.3.0RC1+ | 
                                                                    
                                                    
                                | 3.1.0RC1 | Updated libeio to the latest version. Fixed internal scripts.
 | 
                                                                    
                                                    
                                | 3.0.0RC4 | Fixed deprecated calls on PHP 8.1 (thanks to Remi Collet). | 
                                                                    
                                                    
                                | 3.0.0RC3 | Fixed issue #13: libeio sometimes didn't auto-initialize. | 
                                                                    
                                                    
                                | 3.0.0RC2 | Fixed: the PECL package was broken for PHP 8 | 
                                                                    
                                                    
                                | 3.0.0RC1 | Ported to PHP 8 | 
                                                                    
                                                    
                                | 2.0.4 | Add check for HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV (thanks to petk) | 
                                                                    
                                                    
                                | 2.0.3 | Fixed build error in PHP 7.3. Removed ASAN from debug configuration.
 | 
                                                                    
                                                    
                                | 2.0.2 | Fixed build error due to undefined O_FSYNC in musl libc | 
                                                                    
                                                    
                                | 2.0.1 | Fixed #7: [PHP7] Segfault after shutdown | 
                                                                    
                                                    
                                | 2.0.0 | Fixed #6: PHP 7.1 build failed due to removed zend_fcall_info.symbol_table | 
                                                                    
                                                    
                                | 2.0.0RC3 | Fixed #4: linker issue on aarch64 | 
                                                                    
                                                    
                                | 2.0.0RC2 | - Fix: removed extra memory allocations - PHP7: eio_custom now throws Exception in ZTS builds, because Zend API is inaccessible from a custom thread in ZTS PHP7 builds
 (there is a lack of Zend API to access TSRM thread-local data from a user thread). Some extensions(particularly, pthreads)
 invent their own(rather hacky) ways to overcome the problem. However, IMHO, this should be implemented within Zend API itself.
 | 
                                                                    
                                                    
                                | 2.0.0RC1 | PHP 7 support Fix: uid/gid validation in eio_fchown
 Fix: compilation issue on OS X 10.11
 | 
                                                                    
                                                    
                                | 1.2.6 | Fix: uid/gid validation in eio_fchown Fix: compilation issue on OS X 10.11
 | 
                                                                    
                                                    
                                | 1.2.5 | Fix: Bitbucket issue #2: Static build fails Fix: build failed when EVENTFD was not available
 | 
                                                                    
                                                    
                                | 1.2.4 | Fix: Bitbucket issue #1: eio_open fails when file is owned by root Fix: LICENSE role in package.xml (Remi)
 | 
                                                                    
                                                    
                                | 1.2.3 | Fix: bug #65293 where eio functions failed to process file descriptor equal to 0 | 
                                                                    
                                                    
                                | 1.2.1 | Fix: build failed without sockets extension Fix: eio_write failed when buffer length was lesser than size + offset
 | 
                                                                    
                                                    
                                | 1.2.0 | Add: BSD support Change: internal event notification uses pipe() when eventfd() is not available.
 Del: some redundant code
 Fix: use libeio's EIO_FALLOC_FL_KEEP_SIZE instead of the system constant
 | 
                                                                    
                                                    
                                | 1.1.0 | Change: eio_init() deprecated. Will be removed in future. We use pthread_atfork() to re-init eio after a fork Add: phpt test for the fork support
 Fix: tsrm_ls is not initialized in php_eio_init()
 Fix: EFD_NONBLOCK and EFD_CLOEXEC used despite the flags were not available until kernel 2.6.7. For the old kernels we call fcntl.
 Refact: set FD_CLOEXEC flag for file descriptor opened with eio_open()
 Refact: no need to copy zval when passing request resource to eio_grp_*()
 Fix: eio_grp_*() didn't initialize eio automatically
 | 
                                                                    
                                                    
                                | 1.0.0 | Fix: eio_write() wrote garbage when 'str' arg passed by ref in a nested call with 'use' keyword Fix: eio_write() wrote garbage when 'str' arg passed by value
 Add: eio_init(). You must call eio_init() before using Eio in a forked child process.
 Change: Cut 'st_' prefix in result of eio_*stat for the sake of simplicity and better 'compatability' with stat()
 Change: Cut 'f_' prefix in result of eio_*statvfs
 Add: eio_get_last_error()
 Add: eio_req resource argument as the third optional callback argument
 Add: phpt tests for the changes since 0.5.0b
 Removed: warnings having no much sense even in debug mode
 Refact: no separation for callbacks
 | 
                                                                    
                                                    
                                | 0.5.0 | Refact: libeio upgraded Fix: bug #62392 where eio_*stat functions didn't return st_size
 Fix: package.xml referenced to some nonexistent files
 Fix: garbage in result arg of the callbacks in case of error
 Change: warn about failed op in cb only when compiled with debug support
 Add: test for stat on nonexistent files
 Add: sockets support(eio_sendfile, eio_readahead etc.), enabled by default
 Add: eio_seek function
 Change: numeric fd arguments are now mixed(stream, Socket, or number)
 | 
                                                                    
                                                    
                                | 0.4.0 | Change: libeio is now embedded, no need to install it separately Change: functions call info and call info cache used instead of zvals
 Fix: segmentation fault on 32-bit platforms with the default 4-bit LFS
 | 
                                                                    
                                                    
                                | 0.3.0 | Change: mutex switch that used in communications with libeio replaced with eventfd; the same descriptor exported to userspace to bind with existing
 event loops
 Add: eio_get_eventfd function to get eventfd descriptor
 Add: header checks in configuration
 Change: libeio initialization moved to the MINIT phase, but unfinished
 requests are still handled in the RSHUTDOWN phase
 Change: simplified libeio callbacks
 | 
                                                                    
                                                    
                                | 0.2.0 | Fix: heavy bulk requests damaged event loop causing much CPU consumption Fix: in a threaded SAPI libeio in a single process might initialize mutex multiple times
 Change: switch from semaphore to mutex
 Change: dropped --with-eio-shm* configuration options
 | 
                                                                    
                                                    
                                | 0.1.1 | Fix: eio_poll was out of sync with the IPC Fix: pathnames in tests
 Change: dropped preprocessor checks on non-UNIX platforms, i.e. no plans to
 support non-UNIX
 | 
                                                                    
                                                    
                                | 0.1.0 | Change: refactored some tests Add: request types have readable values in error messages
 Add: errno replaced with the meaningful string in error messages
 Fix: eio_chown denied uid -1 value
 Fix: message about required libeio
 | 
                                                                    
                                                    
                                | 0.0.1 | Change: Shared memory permissions are set to 0660 by default Change: Removed redundant code and comments
 Add: Tests: eio_read_basic.phpt, eio_stat_basic.phpt
 Fix: the package XML
 Fix: docs
 |