===== Release Manager =====
Andrei Zmievski
===== Timetable =====
* NEWS: [[http://cvs.php.net/viewvc.cgi/php-src/NEWS?view=markup&pathrev=HEAD|6.0]]
===== To-do items =====
several items taken from here http://derickrethans.nl/files/meeting-notes.html
=== Migration ===
- figure out and document the migration path
- develop a set of migration scripts when possible to ease the 5.x -> 6 transition
=== 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]])
- add unicode to PDO. [[PDOUnicode|PDO Unicode notes]]
- 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 run-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. Note: the unicode replacements functions need to be merged to 5.x(without actual unicode support) for forward compatibility (andrei)
- JIT fetch & (de-)encode of auto-globals based on [[http://marc.info/?l=php-internals&m=117145486824260&w=2|this patch]]. Need to account for extensions wanting to access request data during RINIT. [[http://marc.info/?l=php-internals&m=116613042405124&w=2|Some]] [[http://marc.info/?l=php-internals&m=116957894007497&w=2|more]] references. **DONE** (Andrei)
- cleanups
- remove UG(unicode) checks/references, Unicode is always "on" **DONE** (Felipe, Steph)
- Get rid of the BC crap in ext/date (derick)
- Try to find a way to see how case sensitive identifiers could be gradually be implemented, but do not "fix" it for PHP6.
=== PECL ===
- ext/dba should be handled in the same way as PDO through drivers maintained in PECL. but all the handlers stay in the distribution.
- 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) - Violations fixed, just needs to be merged.
=== Engine ===
- 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.
=== 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)
- add internal flag only to force calling of the parent constructor
- add support for type-hinted return values.
- implements the ReflectionClass cache in struct zend_class_entry*. (marcus)
- class operator cleanup (static=static, non-static=non-static and no more ZEND_ACC_ALLOW_STATIC) (marcus)
- Closures
- $this support in closures & object scoping, see [[http://wiki.php.net/rfc/closures/object-extension|object extension proposal]]
- Decide on how reflection will interact with $this / object scoping of closures and possibly object extension
=== 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 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)
- 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.
- GIF Write support and animated GIF (pierre)
- Full synchronisation with Boutell's GD (to and from php) (pierre)
- Output Control
- revisit existing output handlers (mike)
- Rewrite parser to use lemon instead of bison (Scott, Etienne)
- [[http://bugs.php.net/bug.php?id=27792 | add support for files >2GB]] once native 64bit integers are implemented (pierre,wez)
- Update the php.ini files to reflect the various changes
===== Needs revisiting or clarification =====
- 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
- decide on moving DB extensions out of the core later.
- move other extensions to PECL on a case by case basis
- regexp (anthony)
- make determination on the default string type (binary/unicode). Requires extensive testing of existing code to determine migration pains.
===== 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 ""]] (anthony)
=== PECL ===
- fileinfo
- Fileinfo extension should be updated to only load its database once on MINIT.
=== Engine ===
- add a new 64bit integer that is always 64bits regardless of platform or have a single bigint type in userland that uses 64-bit ints and unbounded ints internally (Pierre, David (Dsp))
- [[http://marc.info/?l=php-dev&m=117639301119852&w=2 |add ZEND_ACC_READONLY]] (marcus)
- Allow usage of C99 constructs in core/extensions