Release 0.9.5
Changes in this version (from 0.9.4):
- This version brings full php 5.1 support, which has as side-effect that eAccelerator won't work anymore with php 4 on windows, but on other platforms this isn't a problem.
- The shared memory functions, session handler and content cache are disabled by default now. They are only used by a small amount of users and they could allow local users to fill up the memory, if they aren't secured properly.
- The old web control panel and the disassembler have been removed from the code. They have been replaced with a set of php functions that allow the same functionality to be implemented in a PHP script. The control.php and the dasm.php files are such scripts. More information about this can be found in the README.
- Memory footprint should be reduced because redundant information in the cached scripts is no longer stored. Keeping this information cached can be done with --with-eaccelerator-doc-comment-inclusion
- File hashing in the cache directory has been added to improve performance with a large amount of cache files.
WARNING: The encoder and loader DO NOT support php 5.1 nor php 5.0 and contain a lot of bugs for php 4. This is the last release in which the encoder/loader functionality will be available. Later a new encoder/loader might be included but there aren't any plans for that right now.
As always all patches and help are more than welcome.
When filing bugs against this release, remember to choose version 0.9.5!
Download
Download this release from sourceforge The checksums can be found in the release notes on sf.net. You can also download this release from http://bart.eaccelerator.net/source/0.9.5/
The SHA1 hashes are:
12f3319614e5b672f37095f03478e7f3ed904a43 eaccelerator-0.9.5.tar.bz2 a25b114df83b0d940242094893eeb927dc22437b eaccelerator-0.9.5.zip
Changelog
This changelog is since the latest stable release 0.9.4.
2006-10-10 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fix a bug in the ttl of the cache. see ticket #182
- Release version 0.9.5
2006-09-19 Hans Rakers <hans at parse dot nl>
- Get session config variables from local values instead of global values. This enables altering of session-related settings like gc_maxlifetime, entropy_file and entropy_length through ini_set(). This fixes ticket #166
2006-09-15 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Reverse changeset 205 (doc-comment exclusion) from Tom Regner <t.regner at librics.de>.
- Some fixes to make eAccelerator compile with php 5.2, this fixes bug #150
- Restore toString methods correctly with php 5.2
- only put the function that has the same name as the class as contructor if there isn't a construct function. This fixes ticket #172
- Don't free memory with efree that has been allocated from the eA shm cache. This should fix A LOT of bugreports in Trac and on SF. It fixes #171 but I think also some other bugs.
2006-08-29 Hans Rakers <hans at parse dot nl>
- Skip disk cache creation and clean/clear actions when operating in shm_only mode. This fixes ticket #165
2006-08-23 Hans Rakers <hans at parse dot nl>
2006-08-06 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
2006-08-03 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- zend_do_inheritance can't be called with TSRMLS_CC when using php 4, this also means that eAccelerator won't work with threading!
- ea_info and ea_dasm: if eaccelerator_mm_instance is NULL, just return null and don't do something.
2006-07-30 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed detection of SysV IPC shared memory and made anonymous mmap the first selected type. This makes the behaviour of rc1 the default. anonymous mmap doens't have the problem of shmmax. SysVIPC is still available!
2006-07-27 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed project files for win32 and made the debug version build again.
2006-07-25 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fix restoring of opcode handler for php 5.0.5 when files are loaded from disk cache. This fixes bug #147
- Some update in the release notes for the upcoming rc1
- Fix loader.c too so we don't get any linking errors.
2006-07-24 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Make clean routine support dir hashing. Again, this should be tested on win32!
- Use a define for the magic string in the eAccelerator file headers
- Bump up version to 0.9.5-rc1
- Put -O2 back on for -rc1
- Update the VC2005 project files
- Add a config.w32 file for static building of eAccelerator
2006-07-24 Hans Rakers <hans at parse dot nl>
- Fix for ticket #47 and #63, related to problems restoring empty strings and empty string array keys from the disk cache.
2006-07-23 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fix ticket #143, seems that PHP < 5 doesn't make the extension lower case.
2006-07-22 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Some zval macro's differ for php4 and 5, this fixes #146.
- Also rewrite clean code for cache files on win32 for directory hashing. This hasn't been tested on windows!!!
- Added a script to create a bugreport file with more information about the user environment.
2006-07-19 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Use some more zval macro's to cleanup things a bit
- Removed the code from mm.c that tried to allocate more then one segment because it didn't work, this part needs a redesign of the mm code to allow this. It should allocate one to init the shared memory and add the other to the free list.
2006-07-02 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Made some fixes to ea_info.c to make eA compile on windows again. This should fix bug #116.
2006-06-30 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Cleaned up the checking for other incompatible extensions a bit. This should fix the use of IonCube? with eAccelerator. I did some test loading IonCube? in different ways and never got in to trouble. This fixes ticket #66.
2006-06-30 Hans Rakers <hans at parse dot nl>
- Added ability to sort table columns by clicking on the table headings in the control panel
- Quick & dirty fix for eaccelerator_clear to work with the new cache dir hashing. This still needs to be done for win32.
eaccelerator_clean still needs some fixing to work with the dir hashing.
2006-06-27 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed ifdef for #108 to use only on windows
- Fix for bug #109, #31 and SF-1102070
- Cleaned-up RINIT a bit for hostname determining
- Included the fix from ticket #94 for zts
2006-06-26 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fix ticket #108
- Removed webui.[c|h] from the windows project files
2006-06-06 Hans Rakers <hans at parse dot nl>
- Fix for ticket #101 ('bailout' is used in zend_globals.h in a ZTS build) as suggested by <ihanick at gmail dot com>
2006-06-02 Hans Rakers <hans at parse dot nl>
- Removed two unused vars from the internal datastructures
- Fixed constructor inheritance. This fixes handling of implicit constructors and solves ticket #89
2006-05-14 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Forgot to remove some debug messages for the filter bug.
2006-05-08 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Make the disassembler do openbasedir checks before showing a file, this fixes bug #59
- Changed the filter logic a bit, this fixes bug #72
2006-05-07 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Added directory hashing for md5 and inode based keys based on a patch from <mattias at efterfesten.com>, default is 2 levels deep.
- Renamed some left over MM based names to EA.
- Increased default hash size for user and script to 512 for extra performance.
2006-05-04 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Don't store the doc_comments in op_array and class_entry. They are useless. this should reduce memory footprint.
- Included patch from Stadler from ticket #23. It adds a nice menu and code highlighting.
2006-04-13 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- When content cache is used also compiled shared memory functions
2006-04-11 Hans Rakers <hans at parse dot nl>
- Fix for 64-bit compilation warnings "cast to pointer from integer of different size"
2006-04-11 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- A lot of fixes to silence the compile warnings generated when compiling with the default Fedora compiler options
- Removed FC compiled options from Makefile.in again, stupid me
2006-04-11 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Silenced the unlock function for win32 until a windows developer can take a look at it.
- Updated the README a little more for the new control panel
- Added release notes for beta2
- Bumped up version to 0.9.5-beta2
- Patch for dasm.php form Stadler, see #23
- Fixed typo in optimizer which broke compilation for PHP != 5.1
- Released beta2
2006-04-09 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed some typos in dasm.php
- Added authentication to the disassembler
2006-04-06 Hans Rakers <hans at parse dot nl>
- Fixed handling of interfaces. This fixes sf.net bug #1440575.
This fix also introduces some changes in the cached object structure so remember to empty your disk caches if you have them. This is always a good thing to do after upgrading btw :)
2006-04-06 Hans Rakers <hans at parse dot nl>
- Reverted the change to the handling of ZEND_BRK made by me on 2006-03-17 since it wasn't working as it should. Since this reintroduces sf.net bug #1442923 i added some code to prevent this bug using a different approach, by restoring operand types changed by build_cfg if build_cfg exits with exit code 0.
Since php-5.1 some opcode handlers expect a strict set of operand types, anything else results in 'Invalid opcode' errors. Since build_cfg changes some operand types these changes need to be reverted once the optimizer finishes. For now the only opcode to which this all applies is ZEND_FETCH_CONSTANT, which expects either a CONST or a UNUSED in op1 and a CONST in op2 (See zend_vm_def.h)
2006-04-04 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed some error introduced by fixing some win32 stuff :(
2006-04-03 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Moved the FLOCK stuff to a place so it can be used by eLoader to
- Fixed quite some compile warnings on Win32
- Updated VC6 project files
2006-03-28 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Removed the constant that were registered in the debug code. They could only be used in php code and not in the config file. This handles bug #29
2006-03-25 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Source code is now shown in dasm.php
- Added source-code lines to the returned opcode array in ea_dasm.c
2006-03-21 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed bug #24
2006-03-17 Hans Rakers <hans at parse dot nl>
- Fix for sf.net bug #1442839 (handling of ZEND_ASSIGN_OBJ by the optimizer)
- Changed BRK handling to not bail out of the optimizer prematurely on a multi-level break. This does need some more testing, but should fix sf.net bug #1442923
- Removed some dead code in ea_store.c and excluded some debug code from compilation in optimize.c
2006-03-09 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Included fcntl.h in ea_info.c, this should fix bug #13
2006-03-07 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Set refcount to 1 before storing a zval in the usercache. This fixes bug #4.
- Some formatting cleanups in cache.c
- In restore_zval the zval length could be something else then 0 when an empty string was set.
- Removed the shorttags in control.php and dasm.php to fix bug #8.
- Set the svn keywords property to some files.
- Moved some function defs from eaccelerator.h to the right files.
2006-03-06 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Removed the old webui and made a new controlpanel and disassembler.
- Added php api documentation
2006-03-02 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Changed copyright dates to 2006
- Updated the eaccelerator url in some last files
- I removed all authors from specific files. Authors can be traced through mmcache and eaccelerator cvs. I did this because some names should be added to quite some source files while others have added their own while contributing less then the once not mentoined. All contributors are credited in the AUTHORS file and specific information can be found in the Changelog and cvs.
2006-03-01 Hans Rakers <hans at parse dot nl>
- Bunch of Win32 fixes. It compiles cleanly now (tested with VC++ 6.0)
- Fix to the optimizer for bug #1439344
- Fix to ea_store.c for a build problem on RHEL3 reported on the forums at https://sourceforge.net/forum/message.php?msg_id=3596327
2006-02-28 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Changed the module entry url to eaccelerator.net and year
- Removed the crash function
- Disable the keys, session and content cache by default. These could result in a local DoS by cache poisioning
- Release of eaccelerator 0.9.5-beta1
2006-02-24 Hans Rakers <hans at parse dot nl>
- Altered the way debug output is in/excluded by adding a macro that makes sure calls to functions like ea_debug_printf don't get compiled in a non-debug build. The macro approach was chosen to prevent swamping the code with any more ifdef statements. This approach (as opposed to the previous empty-function-if-no-debug-build) also makes sure debug function arguments such as the tons of getpid()'s (which don't come cheap) don't get compiled in and executed in a non-debug build.
2006-02-23 Hans Rakers <hans at parse dot nl>
- Don't increase parent refcount in restore_class_parent. This is wrong and leads to trouble in the Zend shutdown phase (zend_destroy_class). This most likely also fixes the REMOVE_POINTER_FROM_LIST segfault of bug #1432758
2006-02-22 Hans Rakers <hans at parse dot nl>
- Workaround for "multiple definitions of symbol" thread-safe build problem on Mac OS X. This fixes bug #1407520
- Renamed mm_mutex to ea_mutex to avoid confusion with eA's memory manager. This was probably a leftover of mmCache times.
2006-02-21 Hans Rakers <hans at parse dot nl>
- Ditched the variadic macros. They were kinda useless now anyway since they were only passing one arg. This should make the Win32 folks happy since VC6 doesn't seem to support variadic macros. (It's a C99 thing.)
- Removed some excessive debug output.
2006-02-20 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Fixed bypassing open_basedir restriction when the file was already cached. This fixes bug #1427719
- Included patch #1435196 to fix the problem of duplicate keys that don't get removed.
2006-02-20 Hans Rakers <hans at parse dot nl>
- Fixed static_members handling for PHP 5.0. Broke this while working on PHP 5.1 support. Lost in ifdef statements. ;)
- Fixed ZE1 (<=PHP4) problem regarding parent class lookup during restore. Parent class name wasn't lowercased before lookup in class_table. This also fixes bug #1432758 (can't restore parent class "stdClass" of class xyz)
2006-02-19 Hans Rakers <hans at parse dot nl>
- Restored PHP 4 compatibility
- Fixed inheritance/prototype issue with abstract methods and classes during restore. zend_do_inheritance handles these properly now.
2006-02-18 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
- Bumped up version to 0.9.5-dev
2006-02-17 Bart Vanbrabant <bart.vanbrabant at zoeloelip.be>
* Merged PHP_5_1 branch with HEAD
2006-02-17 Hans Rakers <hans at parse dot nl>
- PHP_5_1: Some final fixes before merging to HEAD:
- Fixed bug #1410723 (handling of class constants by the optimizer)
- Fixed backwards compatibility with PHP < 5.1
This revision works pretty well in my testing environment; PHP 5.1 support seems to be coming along quite well. Please test with your applications / in your environment and report back with your experiences or possible problems!
2006-02-15 Hans Rakers <hans at parse dot nl>
- PHP_5_1: Fixes for five failing tests found using the test suite created by Bart. Tests that failed where:
- ctor_dtor_inheritance (failed because __construct, __destruct and __clone were not properly set)
- destructor_and_exceptions (failed because inheritance of parent methods was broken, fixed by making sure ea_store doesn't store methods outside scope)
- inheritance_002 (failed because __construct, __destruct and __clone were not properly set)
- private_members (failed because __construct, __destruct and __clone were not properly set)
- type_hinting_003 (failed because array_type_hint introduced in zend_arg_info in PHP 5.1 was ignored)
2006-02-14 Bart Vanbrabant <bart.vanbrabant at zoeloelip dot be>
- PHP_5_1: Changed cflags to -O2 from -O3
2006-02-07 Hans Rakers <hans at parse dot nl>
- PHP_5_1: Fix for problems with __autoload
- PHP_5_1: Fixed compile problems with thread-safe PHP
2006-02-06 Hans Rakers <hans at parse dot nl>
- PHP_5_1: Several major changes, including but probably not limited to:
- Fixed numerous memory leaks
- Fixed the handling of empty string variables (as in ""), causing "String is not zero-terminated" warnings when PHP is compiled with --enable-debug
- More fixes to the handling of static properties (access checking/inheritance)
- Inheritance on restore is now handled by zend_do_inheritance
- Fixed handling of ZEND_OP_DATA and ZEND_INIT_METHOD_CALL by the optimizer
- Cosmetic fixes (spelling, etc.)
2006-01-16 Hans Rakers <hans at parse dot nl>
- PHP_5_1: Fix for bug #1401474 (and most likely some more PHP 5.1-related trouble): static_members handling was incorrect.
2006-01-12 Hans Rakers <hans at parse dot nl>
- First batch of PHP 5.1-related changes committed to the newly created PHP_5_1 branch. This is a work in progress, so YMMV