===== Release Manager ===== ?? ===== Timetable ===== * NEWS: [[http://cvs.php.net/viewvc.cgi/php-src/NEWS?view=markup&pathrev=HEAD|6.0]] ===== Todo items ===== several items taken from here http://derickrethans.nl/files/meeting-notes.html - unicode (this section has not been updated in a while and so its probably better to look at the [[http://cvs.php.net/viewvc.cgi/php-src/unicode-todo.txt?view=markup| todo]] and [[http://cvs.php.net/viewvc.cgi/php-src/unicode-progress.txt?view=markup| progress]] overviews in cvs, and the [[http://www.php.net/~scoates/unicode/|progress tool]]) - stick with IS_STRING and IS_UNICODE as the only internal string types **DONE** (dmitry) - remove old parameter parsing API and replace with one that supports unicode related functionality - add support for a flag for extension if they should be loadable when unicode is set to off - add unicode to pdo (wez) - make build system bail out if an supported ICU library (perferably 3.4, which we lobby for in distributions) could not be found **DONE** - implement "filename_encoding" setting and return binary string when functions such as readdir() encounter a filename that can not exist in the encoding that is set - implement caching of the last 3 opened collators - == should be the same as strcmp, and not using collation. strcoll() does. - use locale based functions where they make sense, and pick a conservative default. Examples are strtoupper/strtolower, stristr etc.. - provide an additional error mode for character set conversion failures that throw exceptions on failures. - In run-tests.php output something at the end of c's main() to capture SEGVs during php shutdown in runt-tests.php, probably change run-tests.php to catch SEGV (marcus) - deprecate ext/ctype in 6.0 and move to pecl in 6.1 in preference of unicode replacement functions (andrei) - JIT fetch & (de-)encode of auto-globals (pierre) - cleanups - Get rid of the BC crap in ext/date (derick) - remove register globals **DONE** (pierre) - remove all magic_* and throw E_CORE_ERROR when set **DONE** (pierre) - safe_mode/open_basedir - remove safe mode and throw E_CORE_ERROR when set **DONE** - Make the call-time-pass-by-reference an E_STRICT error. **DONE** (dmitry) - make "var" an alias for "public" and remove the warning for it. **DONE** (?) - Assign "new" by reference will throw an E_STRICT error. **DONE** (?) - Return "new" by reference will throw an E_STRICT error. **DONE** (dmitry) - remove support for Freetype 1. **DONE** (pierre) - remove support for GD 1. **DONE** (pierre) - enable dl() only when a SAPI layer registers it explicitly. **DONE** (dmitry) - Clean up the code, so that FastCGI mode can not be disabled. **DONE** (dmitry) - remove register_long_arrays setting and throw E_CORE_ERROR when set. **DONE** (dmitry) - Try to find a way to see how case sensitive identifiers could be gradually be implemented, but do not "fix" it for PHP6. - remove support for dynamic break levels. **DONE** (dmitry) - change the default behaviour of microtime() to return a float. **REMOVED - USELESS**(davidc) - PECL - decide on moving DB extensions out of the core later. - move other extensions to PECL on a case by case basis - regexp (anthony) - make ereg an extension **DONE** (Jani) - core of PHP should be made to work with PCRE so that we can safely disable ereg **DONE** - ext/dba should be handled in the same way as PDO through drivers maintained in PECL. but all the handlers stay in the distribution. - move mime_magic from the core to PECL **DONE** - ext/soap - ext/soap will be turned on by default - implement some of the security extensions to ext/soap (rob) - watch axis2 based implementation development - make use of the HTTP streams layer (dmitry) - add ext/bitset to core once CS violations are fixed (Scott) - Engine additions - [[http://derickrethans.nl/files/meeting-notes.html#allow-interfaces-to-specify-the-construct-signature | Allow __constructor to be part of an interface]] **DONE** (marcus) - add a new 64bit integer that is always 64bits regardless of platform with the cast name for this new type is (int64) and internally we use IS_INT64 and RETURN_INT64 etc.. - extend "break" by allowing breaking to a label. **DONE** goto label. (sara, dmitry) - add an ifsetor() construct with the middle value for the ?: ternary operator dropped **DONE** (marcus) - add foreach( $a as $k => list($a, $b)) {} syntax (andrei) - speed up @-operator and ask andi for approval (ilia, marcus) - add ability to allocate persistent zvals in PHP. - add f/F to catch 'callable' with parameter parsing api in fcc/fci **DONE** (marcus) - OO changes - [[http://www.zend.com/zend/week/week248.php#Heading3 | Property overloading RFC]] aka abstract/virtual properties and get/set handlers (derick) - object casting to primitive types BC mess (derick) - optional typehinted parameters **DONE** (derick) - add internal flag only to force calling of the parent constructor - re-use the "static::" keyword to do runtime evaluation of statics. **DONE** - [[http://marc.info/?l=php-dev&m=118355320225178&w=2| add namespace support]] **DONE** (dmitry) - add support for type-hinted return values. - move the reflection code to its own extension. **DONE** (marcus) - implements the ReflectionClass cache in struct zend_class_entry*. (marcus) - changing var_dump() output to include class names in member descriptions **DONE** (marcus) - class operator cleanup (static=static, non-static=non-static and no more ZEND_ACC_ALLOW_STATIC) (marcus) - Other Additions/Changes - allow opened files to be deleted on windows [[http://www.zend.com/zend/week/week248.php#Heading7|Streams]] (wez) - APC - include APC in the core distributions (turned off by default) and switch to mmap as default shared memory storage. - ability to move autoloaded main classes in apc's class lookup preventing the overhead of doing the inheritance process all the time. (marcus) - include the patch' real-path fix from hardended php **DONE** (realpath reimplemented by Dmitry) - include the protection against HTTP Response Splitting attacks (header() shouldn't accept multiple headers in one call) from hardended php - add sand boxing if we have a rock solid implementation (sara) - go over the engine and extensions and make sure only E_ERROR is used where the engine is in an unrecoverable state. - add E_STRICT to E_ALL **DONE** (dmitry) - prepare a patch that disallows mixing different open/close tags. (jani) - look at creating a solid plan to rewrite build system and when there is a volunteer to implement it. - [[http://www.zend.com/zend/week/week248.php#Heading7 | URI handling and XML]] **DONE** (rob) - GIF Write support and animated GIF (pierre) - Full synchronisation with Boutell's GD (to and from php) (pierre) - Output Control - rewrite **DONE** (mike) - revisit existing output handlers (mike) - add php native mysql driver aka mysqlnd **DONE** (georg, andrey) - [[http://bugs.php.net/bug.php?id=27792 | add support for files >2GB]] once native 64bit integers are implemented (wez) - MFB add RFC1867 fileupload processing hook **DONE** (arnaud) ==== Under discussion ==== - cleanups - safe_mode/open_basedir - unbundle safe_mode_exec_dir from safe_mode and keep it (rasmus) (take a look at [[http://tony2001.phpclub.net/dev/tmp/bugs_29840_31618.diff |this patch]] too) - new ini option: open_basedir_for_include which would allow using include/require(_once) on an expanded set of directories (sara) - [[http://marc.info/?l=php-dev&m=117640641605813&w=2 |kill "<%" but keep " - multiple inheritance (korving) - a 'finally' block for exception handling (korving) - ini run_tests_mode=(on|off) to suppress unicode/string difference in var_dump() for run-tests.php (marcus) - Cleanup for {} vs. [] **?????**