Changelog for eio |
Release |
What has changed? |
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 |