eio: Changelog

Version Message
3.1.0 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.1 Fixed issue #19: Initialized new stack pointers introduced in PHP 8.3.0RC1+
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