Changelog for APC |
Release |
What has changed? |
3.1.13 |
- fix num. segfaults by revert rev. 326820 and issue reported in bug #69972 |
3.1.12 |
- Fixed bug (apc_bin_dump doesn't swizzle bucket arKey in HashTable) (Laruence)
- Fixed bug #62825 (php carshed OR return PHP Fatal error when used apc_bin_dump after apc_store) (Laruence)
- Fixed bug due to Conditional "jump or move depends on uninitialised value(s)" in apc_op_ZEND_INCLUDE_OR_EVAL and apc_bin_dump (Laruence)
- Fixed bug #62802 (Crash when use apc_bin_dump/load) (Laruence)
- Fixed bug #62757 (php-fpm carshed when used apc_bin_dumpfile with apc.serializer) (Laruence)
- Fixed bug #62765 (apc_bin_dumpfile report Fatal error when there is "goto" in function) (Laruence)
- Fixed bug #61133 (segfault in tests/apc_bin_002.phpt) (Laruence)
- Fixed handling of userspace stream wrappers simulating file inclusion/requiring (Anatoliy, Rasmus)
- Fixed bug #62699 trait aliases and precedences handling (Anatoliy)
- Added cli built-in server tests (Anatoliy)
- Fixed filter regex freeing on request shutdown (Anatoliy)
- Fixed interned strings storage freeing on module shutdown (Anatoily)
- Fixed bug #61742 preload_path does not work due to incorrect string length (Anatoliy)
- Fixed several memory leaks it APCIterator (Anatoliy)
- Fixed potential overflows in bin dumps (Anatoliy) |
3.1.11 |
- In cli mode with stat=0 and canonicalize=1 make sure cwd is searched
- Fixed bug #62302 apc.include_once_override=1 made everything crash
- Fixed bug #59829 APC should not try to canonicalize file URLs
- Fixed bug #62398 stat=0 replaces an include/require filename with empty string
- Fixed bug #61799 Typo in 'SEARCH' regex of apc.php
- Fixed bugs #61824,61912,61956,62190,62230 ext/DOM memory corruption (cschneid) |
3.1.10 |
- Add PHP 5.4 support (Dmitry, Anatoliy, Pierre)
- Fixed bug #22679: Fix apc_bin_dump for constants. Use IS_CONSTANT_ENGINE_MASK to handle all the constants, including the unqalified ones (instead of ~IS_CONSTANT_INDEX check)
- Fixed bug #23822, php crashes on apache restart |
3.1.9 |
- Fix regression introduced in 3.1.8 (#22687) |
3.1.8 |
- Windows read-write locks support on Windows XP or later and Windows Win7
or later (use php_apc-xp.dll or php_apc-win7.dll)
- Fix variable type check in user cache update
- Make warnings that user cannot do anything about debug messages
- Fixed bug #21400 (Minor memory leak in MINFO)
- Fixed bug #18890: Ensure that --enable-apc-debug=no disables debug mode.
- Fixed bug #19459: check for expiry while looping through the iterator slots |
3.1.7 |
- pthread read-write locks support
- apc.serializer hooks, export apc_serializer.h as an API
- Fix regression bug #20529: Look up files in CWD
- Pool allocator fixes for large allocations
- trunk compat fixes (Kalle)
- ZTS fixes (Pierre, Hirokawa)
- Readability and warning fixes (Pierre, Kalle) |
3.1.6 |
- make slam_defense a little more optimistic, allow a thread/process to write to cache in a loop
- ensure realpaths hit the realpath_cache, in no-stat mode
- prevent memory starvation, nuke all caches when expunging just one doesn't work
- fix uploadprogress keylength issues (NUL is part of keylen, pecl bug #20016) |
3.1.5 |
- Reduce usage of CG(open_files) (mkoppanen at php dot net)
- Add support for php-trunk, new op code, new internals string format, etc. (Dmitry)
- apc_debug are not compiler-valid NOPs for non-debug builds
- Fixed relative paths resolution when ./foo/a.php or ../foo/a.php (or similar path)
are used. 'foo/a.php' path behaviors remain unchanged
- Fixed a possible memory corruption, when partial path cannot be resolved
by expand_filepath()
- Fixed notices in apc.php (Tomasz Krawczyk)
- Fixed Bug #17978: standardize user keys to include NULs in identifier_len. Z_STRLEN_P() doesn't, so add to it.
- Fixed bug #16966, apc produces tons of warnings "Unable to allocate memory for pool".
- Added --enable-apc-debug configuration argument to enable debugging (Kalle)
- Added support for internal debugging on Windows (Kalle)
- ZTS optimizations (Kalle) |
3.1.4 |
- Windows builds may now have filehits and memory protection if enabled (Kalle)
- Renamed the memory protection configure option to --enable-apc-memprotect (Kalle, Shire)
- ZTS fixes and optimizations (Kalle, Felipe)
- Win32 stat support (Pierre, Kalle)
- Added support for interned strings, run-time caches and Zend Engine 2.4 (Dmitry)
- Added apc_exists() (Rasmus)
- Fixed potential XSS in apc.php (Pierre, Matt Chapman)
- Fixed pecl bug #17597 (keys with embedded NUL) (Gopal)
- Fixed pecl bug #17650 (Fix goto jump offsets) (Gopal)
- Fixed pecl bug #17527 (Standardized error reporting) (Gopal, Paul Dragoonis)
- Fixed pecl bug #17089 (Scrub the constant table of all inherited members before caching) (Gopal)
- Fixed pecl bug #16860 (files can be included more than once even when include/require_once are used) (Pierre)
- Fixed pecl bug #16717 (apc_fetch dies after 1 hour, regardless of ttl settings) (Kalle)
- Fixed pecl bug #17597 (apc user cache keys with embedded NULs) (Gopal)
- Fixed pecl bug #13583 (apc upload progress fixes) (Gopal) |
3.1.3p1 |
- fix pecl build / package.xml (Gopal) |
3.1.3 |
- 5.3 support + test-cases (Gopal)
- Lazy loading support (Shire)
- Fix PCRE module init order issues (Shire)
- APCIterator fixes (Shire)
- Cache slam checks (Gopal)
- ZEND_JMP_SET support (Shire)
- apc.use_request_time option (shire)
- apc.php hostname fixes (Shire)
- memprotect framework (Gopal)
- Win32 build-fixes (Kalle) |
3.1.2 |
- pecl package.xml/build fixes (bjori) |
3.1.1 |
- PHP4 compatibilty break
- apc_pool allocator (Gopal)
- doubly-linked sma allocator (Shire)
- php 5.3 gc compatibility (Gopal)
- APCIterator for easy access (Shire)
- apc_delete_file (Shire)
- apc_inc/apc_dec/apc_cas functions (Shire)
- apc.canonicalize (Gopal)
- apc.preload_path (Gopal)
- apc.rfc1867_ttl (Shire)
- apc.file_md5 (Shire)
- consolidate locking macros (Shire)
- remove futex/TSRM locks (Shire)
- non-blocking semaphore locks (Shire)
- zval* object rework (Gopal) |
3.0.19 |
* Move expunge callback groundwork to 3.1 (Rasmus)
* Fix fd-leak (Gopal)
* Fix double-free on builtin functions (Gopal)
* Initial PHP 5.3 support (Gopal) |
3.0.18 |
* Revert memleak patch (Gopal)
* Fix for bug 13504 (David Fraser) |
3.0.17 |
* Fix for CVE-2008-1488 (Daniel Papasian, Rasmus)
* Fix apc_add() cache expunge bug (Rasmus)
* Added parameter to apc_fetch to determine success/failure when fetching booleans (Shire)
* Fix misc. memleaks (Shire) |
3.0.16 |
* Fix for longstanding cache-full crash (Christian Seiler)
http://news.php.net/php.pecl.dev/4951 for the details
* Added optional shm unmap on a fatal signal feature (Lucas Nealan)
* Added PTHREAD_MUTEX_ADAPTIVE_NP option pthread locks (Paul Saab)
* Minor cleanups (Lucas Nealan)
* Added configure option to enable apc_cache_info('filehits') (Shire) |
3.0.15 |
* Eliminate a per-request time() syscall (Rasmus)
* Added rfc1867 prefix, name, and freq ini options (Shire)
* Allow deletion of individual user cache entries via apc.php (Sara)
* Fix overzealous cleanup during RSHUTDOWN (Gopal)
* Fix memory alignment and locking issues (Gopal)
* Make apc_compile insert/replace entries (Shire)
* Make mixed inheritance recompile & cache afresh (Gopal)
* Make nostat mode search include_path for canonicalization (Gopal)
* ZTS & other compile fixes (Gopal, Edin, Shire) |
3.0.14 |
* Build fix (Shire)
* Don't hook the upload hook if APC is disabled (Rasmus)
* Local shadow cache support (Gopal)
* Avoid uneccessary loops over op_arrays for "known" auto-globals (Gopal)
* Fix apc_add() to overwrite timed out user entries (Rasmus)
* Fix double inclusion of files with conditional classes in php4 (Gopal)
* Allocator fixes to reduce fragmentation (Gopal) |
3.0.13 |
* PHP 5.2 file upload progress tracking support (Rasmus)
* Pthread mutex and spin locks (Shire)
* Recursive zval support for apc_fetch/_store (Shire, Gopal)
* apc.stat_ctime flag for ctime checks (Rasmus)
* Multiple key fetches with apc_fetch (Shire)
* Canary checks for shm memory deallocation (Gopal)
* Add hooks for external optimizer (Shire)
* Obsolete and remove apc optimizer (Gopal)
* APC info changes - cache insert rate, hit and miss rates (Shire)
* Fix apc_load_constants (Gopal)
* Rewrite dump opcode code to use vld (Gopal)
* Use apc_[ewn]print functions for error reporting (Shire)
* Auto global fixes and refactoring (Gopal, Shire)
* Fix memory leaks in object serialization (Ilia)
* Memory cleanup code for destructor order (Gopal)
* Win32 build fixes (Ilia, Wez)
* ZTS and Php 4 build fixes (Bjori)
* Add apc_add() function (Rasmus)
* Add optional limited flag to apc_sma_info() (Rasmus) |
3.0.12p2 |
* Let's get the version number right. 3.0.12p2 now. |
3.0.12p1 |
* The only change here is a trivial PHP 4 build fix. |
3.0.12 |
* Fix stray debug message
* Work on the optimizer - still not stable (Gopal, Ilia, Sara)
* Performance boost - Replace multiple loops over the opcode
array with a single loop for copying, jump fixups and auto
global pre-fetches. (Gopal)
* Perform fetch_global checks only in php5 and only if
auto_globals_jit is enabled. (Gopal)
* Fix bug #8579 - scrub php4 classes' function_table and default
properties before inserting into cache. (Gopal)
* Fix bug #8606 - ZEND_FETCH_GLOBAL is not an opcode, but is a
op1->type. The opcodes applicable are ZEND_FETCH_R and
ZEND_FETCH_W. (Gopal)
* PHP 5.2 Compatibility (Gopal)
* Make the include_once override optional - default off (Sara)
* Fixed crash when apc run in CLI, but enable_cli is off. (Ilia)
* Ensure that the apc_globals->cache_stack is cleared before the
shm cache is destroyed. Fixes segfault for corner-case i.e request
shutdown (apc_deactivate) is not called before module shutdown
calls (php_apc_shutdown_globals) (Gopal)
* TSRM fixes (ensure ts_free_id before apc.so is dlclosed) (Gopal)
* Fix memory leak of apc_cache_info_t->deleted_list (Gopal) |
3.0.11 |
* Made --enable-apc-mmap the default compile option (for real this time)
* Add an optional flag to apc_cache_info() and some apc.php tweaks to make it
only fetch header information to make it useful when you have tens of
thousands of entries. (Brian Shire)
* 64-bit fixes (George)
* Don't mix Full Path and Inode keys (George)
* Override ZEND_INCLUDE_OR_EVAL opcode (when possible) to speed up use of
require_once() and include_once() statements. (Sara)
* Add a non-blocking write_lock for cache inserts. This is a better approach
to prevent cache slams and deprecates the slam_defense setting. (Rasmus)
* A bit of work on the optimizer. (Sara)
* Various memory issues resolved. (Gopal) |
3.0.10 |
* Add apc.stat ini flag which defaults to 1. If set to 0, the main script and any fullpath
includes will not be stat'ed for any changes. You will have to restart the server if you
change anything. This mode increases performance quite a bit, especially if you have a
lot of includes.
* Get rid of the lock safety net hack I added in 3.0.9. It seems to cause more problems
than it solves. I'll need to revisit locking and signal handling at some point soon. |
3.0.9 |
Eliminate rand() call when slam_defense is not set (Rasmus)
Fix for __isset problem (Gopal)
Rewrite allocator from a "best fit" to a "next fit" algorithm (Rasmus)
Added a Cache Full counter so we have an idea how many times the segment has filled up causing an expunge (Rasmus)
Report back the correct number of available bytes in the segment instead of the allocated bytes. (Rasmus)
Add cache busy flag which is set when an expunge is underway (Rasmus)
Add automatic serialization of objects in apc_store() (Marcus)
64-bit .ini flag fix (Rasmus)
Static members fix (Gopal)
sma_cleanup() mem leak fix (Rasmus)
Fix for http://pecl.php.net/bugs/5311 (Rasmus)
Fix autoglobals JIT bug (Gopal)
Fix instance bug (Gopal)
Add a lock cleanup safety net to request shutdown (Rasmus)
Fix apc.slam_defense edge-case bug (Rasmus)
User entry memory usage tracking support (Ilia)
Allow keys used in apc_store/apc_fetch/apc_delete to be binary safe and prevent conflicts between keys that are found at the start of other keys. (Ilia) |
3.0.8 |
Fix invalid free in globals destructor introduced in 3.0.7 (Rasmus)
Cache corruption fix in cache-full cleanup code (Gopal)
|
3.0.7 |
Fix to apc.php to show final segment in frag chart. (Ilia)
A couple of win32 fixes. (Frank)
Add apc.enable_cli ini directive. (Rasmus)
Add test cases. (Marcus)
Fix apc_define_constants() bug - http://pecl.php.net/bugs/5084 (Rasmus)
Simplify user cache handling by removing the user_cache_stack (Rasmus)
Fix apc_fetch() memory corruption (Andrei,Rasmus)
Added apc.max_file_size INI setting that allows exclusion of large files from being cached. Default file size limit, 1 megabyte. (Ilia)
|
3.0.6 |
Added apc.php to package.xml file.
Track per-entry memory usage. (Val)
Various apc.php fixes and enhancements. (Ralf, Ilia, Rasmus)
fcntl locking robustness fixes. (Rasmus)
Shared read-locks where possible. (Rasmus)
Added file_update_protection configuration parameter. (Rasmus)
Windows ZTS fixes (Frank)
|
3.0.5 |
Make it easier for sapis that only populate file_handle->filename to use APC. (Rasmus)
Support extensions such as bcompiler that need to hook into compile_file. (Val)
Ralf Becker's apcgui code has now become the default apc.php status page. (Ralf, Rasmus, Ilia)
Segfault in cache cleanup code (Ilia, Rasmus)
|
3.0.4 |
Add win32 support from Edin.
Add --with-apxs switch to work around problem when loading APC into Apache binary compiled with LFS switches
A couple of other minor fixes.
|
3.0.3 |
Fix compile problem against PHP 5.0.x
|
3.0.2 |
Default to mmap and add a better error message for shmget failures
|
3.0.1 |
PHP4 build fix
|
3.0.0 |
PHP-5.1 Support and numerous fixes
|
2.0.4 |
Fix for extending internal classes (andrei).
Fix for ref count no decreasing properly when scripts call exit. |
2.0.3 |
Additional fix for redeclared class errors. Fix for 64 bit systems. |
2.0.2 |
Win32 support added. |
2.0 |
Complete rework. |