Version | Message |
5.1.24 |
- Make compatible with PHP 8.4. - apc.php: Preserve search parameter when deleting entry. - apc.PHP: Allow arbitrary search regex. |
5.1.23 |
- Revert use of monotonic clock for TTL (#451) - Fix a crash when serializing packed arrays (e.g. lists) in PHP 8.2+ with `apc.serializer=default`. - Reduce memory usage when serializing packed arrays (e.g. lists) in PHP 8.2+ with `apc.serializer=default`. - Speed up serializing arrays with `apc.serializer=default`. - Reduce memory usage when unserializing instances of the empty array in PHP 7.3+. - Removed no longer working apcue extension. - Increased limit on maximum number of slots. - Made tests compatible with PHP 8.3. |
5.1.22 |
- PHP 8.2 compatibility - PHP 8.1 compatibility in apc.php - Fix --enable-apcu-rwlocks configure option - Enable transparent huge pages for mmap memory - Use monotonic clock for TTL |
5.1.21 |
- Fixed compatibility with PHP 8.1 by adding return types to APCUIterator. - APCUIterator::current() and ::key() can no longer be called on an invalid iterator. |
5.1.20 |
- Fix deadlocks when other apcu_* functions are used inside apcu_entry(). It should now be safe to use any functions inside the apcu_entry() callback. - Fix division by zero exception in apc.php. - Fix handling of references in PHP 8 if "default" serializer is used (which is not the default). - Fix string reuse handling if "default" serializer is used (which is not the default). - Check for failures when acquiring read locks to report problems earlier (write locks were already checked previously). - Adjust tests for current PHP 8.1 development branch. - Remove *_api.h headers. Use apc_cache.h instead of apc_cache_api.h etc. |
5.1.19 |
- Fixed apcu_store() with integer keys (#388). - Made apc.use_request_time=0 the default (#391). - Made apcu compatible with PHP 8.0. |
5.1.18 |
- Implement apcu_inc() and apcu_dec() using atomic operations. This means that these functions no longer have to acquire a write lock. These functions will now wraparound on overflow, instead of saturating to a floating point value. - Make table header in apc.php sticky. - Fix compile warnings related to mktemp() usage. - Fix compatibility with PHP 8.0. - Fix required number of arguments for apcu_store() returned by Reflection. |
5.1.17 | - Fixed compatibility with PHP 7.4 and PHP 8.0. |
5.1.16 | - Fix build on OSX. |
5.1.15 |
- Restore apc.serializer=php as the default, as the "default" serializer still/again has issues. - Fix possible issues in persistence of arrays with the "default" serializer. - Attempt to reduce shared memory fragementation. |
5.1.14 |
- Fixed GH #347: Disable slam defense by default. - Fix potential issue with destruction of locks. This does not affect Linux, but might affect Windows and BSD. - Use mutex instead of rwlock for shared memory allocator (if pthreads mutex available). - Require only read-lock for apcu_cas(), by using atomic compare-and-swap. |
5.1.13 |
- Reimplement persistence logic using precise allocation rather than memory pools. This reduces memory usage of cache entries, especially for small values, and improves performance of persisting and unpersisting values. - Fixed GH #335: Stampede protection is broken. - Fixed GH #328: Segfault in apcu_key_info() if APCu is disabled. - Generally make the behavior of functions if APCu is disabled more consistent. - Fixed PHP bug #72980: Empty strings are now consistently allowed as cache keys. - Optimized apcu_key_info() and apcu_cache_info() by using interned strings. - Fix build against PHP master (PHP 7.4). - Many changes to internal C APIs. |
5.1.12 |
- gh#307: Fix 'Timout' sort option (apc.php). - gh#308: Keep search parameter on cache entry detail link (apc.php). - Fix --enable-apcu-clear-signal support. - Show entries with expired global TTL in APCuIterator. - Respect TTL when calculating APCuIterator totals. - The per-entry TTL now always takes precedence over the global TTL. - The global TTL is now always relative to the access time. - apcu_inc() and apcu_dec() no longer update hard-expired entries. Instead a new entry is created. - Added optional $ttl argument to apcu_inc() and apcu_dec(), used when creating a new entry. - PHP bug #76145: Fix use of APCu inside Serializer::(un)serialize(). - gh#304: If apcu_cas() is used on a non-existing entry, don't insert it. - gh#295: Improve APCuIterator performance by using PCRE JIT and preallocating key strings. - Reduce the memory overhead of cache entries. - Prevent potential memory corruption in the cache slam defense implementation. - Ensure cache entry references are released on bailout during unserialization. - Make support for atomic operations a hard requirement for building APCu. - Check write-lock acquisition for failure, to help debugging deadlock situations. - Make sure apcu_inc/dec are atomic when working on a non-existing entry. - Many changes to internal C APIs. |
5.1.11 |
- fix gh#246 apcu_entry hangs - fix gh#259 deadlock in apcu_store - fix gh#281 undefined variable in apc.php - fix handling of fatal errors in apcu_entry - check string lengths when looking up keys - many internal C APIs changed |
5.1.10 |
- fix gh#247 when a NUL char is used as key, apcu_fetch(array) truncates the key - fix gh#248 apcu_fetch may return values causing zend_mm_corruption or segfaults when custom serializer is used - fix gh#260 apcu.serializer=default results in segfault - fix gh#274 non-portable shell == in config.m4 - fix crash when passing bad array to apcu_delete - improve fix gh#266 refcounting errors in APCIterator - fix for PHP 7.3 compatibility |
5.1.9 |
- fix gh#234 mmap disabled when configure is called with --enable-apcu-mmap - fix gh#226 Warning: apcu_fetch(): apc_fetch() expects a string or array of strings. - mitigate gh#223 Fatal error when starting php on windows - add support for PCRE2 in 7.3 - use row formatting for information in phpinfo() tables - set IS_STR_PERSISTENT so refcounting failures are reported by -DRC_DEBUG=1 - fix gh#266 refcounting errors in APCIterator |
5.1.8 |
- fix gh#207 Segmentation fault in apc_sma_api_free() - fix gh#221 memory leak - update to apc dashboard (Tyson Andre) |
5.1.7 |
- fixes gh#19: hung apaches on pthread wrlocks - fixes gh#203: segfaults in bailout / longjmp |
5.1.6 |
- fixes gh#19: Hung apaches on pthread wrlocks - fixes gh#188: Fix Segfault in ZTS build when locking (Tyson Andre) - fixes gh#194: apcu_entry ttl not working - fixes gh#189: SegFault in apc_copy_zval - fixes gh#185: zend_mm_heap corrupted - fixes gh#190: memory leak/failed check for duplicates |
5.1.5 |
- fix version check in control panel page (gh#182, lennartwesdijk) - do not create null strings, palloc may fail |
5.1.4 |
- fix possible memory leak - fix gh#168 drop trying to return strings from shm - fix gh#170 do not create entries when serialization fails |
5.1.3 |
- fixed macro using interlocked increment in Windows - fix gh#158 apc_inc() with negative step value hangs the process - fix gh#164 apc_inc() can take minutes with huge step value |
5.1.2 | - be really consistent with APC in use of atomics |
5.1.0 |
- PHP 7 compatibility - provide APC compatibility in "apc" optional extension - move APCIterator to APC compatibility extension - add APCuIterator without cache argument - drop apcu_bin_* functions - add apcu_entry(key, callback, ttl) function - fix race on refcount of entry when using rwlocks (or on windows) |
4.0.11 |
- fix #176 segfault when apc.preload_path contains bad data - fix bad data used in test suite |
4.0.10 | - be really consistent with APC in use of atomics, avoid surprises |
4.0.8 |
- fix inconsistent member names for entries in userland - fix race on ref_count |
4.0.7 | - fix inconsistent member names for entries in userland |
4.0.6 | - fix issues with stddef inclusion causing compilation issue |
4.0.5 | - fix compile with 5.6 beta |
4.0.4 |
- Fix deadlocking due to destroyed locks - Fix various compatibility bugs |
4.0.3 |
- Fix various compatibility problems - Fix a few lingering faults - Remove experimental eval serializer - Fix iterator for compatibility |
4.0.2 |
- Fixed bug #15 APC compatibility option broken. (Anatol) - Fixed bug #20 APCu's APCIterator constructor is not compatable with APC. (Anatol) - Fixed resource leak when data preload fails. (Anatol) - Fixed issue #29 php_apcu.dll does not load anymore under X64. (Anatol) |
4.0.1 |
- Fix crash in cli on apc_store where enable_cli=0 - Testing eval serializers - Change apc_* to apcu_* in apc.php - Fix exports in API - Expose to userland whether APCu is compiled with the APC compatibility. See the APCU_APC_FULL_BC constant. (Anatol) - Fixed bin dump producing garbage data in multithreaded env. (Anatol) |
4.0.0 |
All opcode caching abilities removed The default locking is now rwlocks APCu API installed in build environment Please see TECHNOTES/README.md |