todo:php60

Release Manager

Andrei Zmievski

Timetable

To-do items

several items taken from here http://derickrethans.nl/files/meeting-notes.html

Migration

  1. figure out and document the migration path
  2. 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 todo and progress overviews in cvs, and the progress tool)

  1. add unicode to PDO. PDO Unicode notes
  2. implement caching of the last 3 opened collators
  3. == should be the same as strcmp, and not using collation. strcoll() does.
  4. use locale based functions where they make sense, and pick a conservative default. Examples are strtoupper/strtolower, stristr etc..
  5. provide an additional error mode for character set conversion failures that throw exceptions on failures.
  6. 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)
  7. 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)
  8. JIT fetch & (de-)encode of auto-globals based on this patch. Need to account for extensions wanting to access request data during RINIT. Some more references. DONE (Andrei)
  9. cleanups
    1. remove UG(unicode) checks/references, Unicode is always “on” DONE (Felipe, Steph)
  10. Get rid of the BC crap in ext/date (derick)
  11. Try to find a way to see how case sensitive identifiers could be gradually be implemented, but do not “fix” it for PHP6.

PECL

  1. ext/dba should be handled in the same way as PDO through drivers maintained in PECL. but all the handlers stay in the distribution.
  2. ext/soap
    1. ext/soap will be turned on by default
    2. implement some of the security extensions to ext/soap (rob)
    3. watch axis2 based implementation development
    4. make use of the HTTP streams layer (dmitry)
  3. add ext/bitset to core once CS violations are fixed (Scott) - Violations fixed, just needs to be merged.

Engine

  1. add foreach( $a as $k ⇒ list($a, $b)) {} syntax (andrei)
  2. speed up @-operator and ask andi for approval (ilia, marcus)
  3. add ability to allocate persistent zvals in PHP.

OO changes

  1. Property overloading RFC aka abstract/virtual properties and get/set handlers (derick)
  2. object casting to primitive types BC mess (derick)
  3. add internal flag only to force calling of the parent constructor
  4. add support for type-hinted return values.
  5. implements the ReflectionClass cache in struct zend_class_entry*. (marcus)
  6. class operator cleanup (static=static, non-static=non-static and no more ZEND_ACC_ALLOW_STATIC) (marcus)
  7. Closures
    1. $this support in closures & object scoping, see object extension proposal
    2. Decide on how reflection will interact with $this / object scoping of closures and possibly object extension

Other Additions/Changes

  1. allow opened files to be deleted on windows Streams (wez)
  2. APC
    1. include APC in the core distributions (turned off by default) and switch to mmap as default shared memory storage.
    2. ability to move autoloaded main classes in apc's class lookup preventing the overhead of doing the inheritance process all the time. (marcus)
  3. include the protection against HTTP Response Splitting attacks (header() shouldn't accept multiple headers in one call) from hardended php
  4. add sand boxing if we have a rock solid implementation (sara)
  5. prepare a patch that disallows mixing different open/close tags. (jani)
  6. look at creating a solid plan to rewrite build system and when there is a volunteer to implement it.
  7. GIF Write support and animated GIF (pierre)
  8. Full synchronisation with Boutell's GD (to and from php) (pierre)
  9. Output Control
    1. revisit existing output handlers (mike)
  10. Rewrite parser to use lemon instead of bison (Scott, Etienne)
  11. add support for files >2GB once native 64bit integers are implemented (pierre,wez)
  12. Update the php.ini files to reflect the various changes

Needs revisiting or clarification

  1. 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
  2. decide on moving DB extensions out of the core later.
  3. move other extensions to PECL on a case by case basis
  4. regexp (anthony)
  5. make determination on the default string type (binary/unicode). Requires extensive testing of existing code to determine migration pains.

Under discussion

Cleanups

  1. safe_mode/open_basedir
    1. unbundle safe_mode_exec_dir from safe_mode and keep it (rasmus) (take a look at this patch too)
    2. new ini option: open_basedir_for_include which would allow using include/require(_once) on an expanded set of directories (sara)

PECL

  1. fileinfo
    1. Fileinfo extension should be updated to only load its database once on MINIT.

Engine

  1. 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))
  2. Allow usage of C99 constructs in core/extensions
todo/php60.txt · Last modified: 2011/04/06 12:59 (external edit)