|
PHP 6.0.0
Release Manager
??
Timetable
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 todo and progress overviews in cvs)
Provide a run-time switch in php.ini to enable (default) or disable Unicode semantics. When Unicode semantics are off you will still have access to Unicode features. DONE (dmitry)
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)
- 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 zend.ze1_compatibility mode and throw E_CORE_ERROR when set 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.
- 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)
- PCRE extension will not be allowed to be disabled.
- core of PHP should be made to work with PCRE so that we can safely disable ereg
- 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
- ext/soap (rob)
- ext/soap will be turned on by default
- implement some of the security extensions to ext/soap
- watch axis2 based implementation development
- add ext/bitset to core once CS violations are fixed
- Engine additions
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
- 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.
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 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
- 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.
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 (georg, andrey)
- add support for files >2GB once native 64bit integers are implemented (wez)
Under discussion
- cleanups
- safe_mode/open_basedir
- unbundle safe_mode_exec_dir from safe_mode and keep it (rasmus) (take a look at this patch too)
- new ini option: open_basedir_for_include which would allow using include/require(_once) on an expanded set of directories (sara)
- kill "<%" but keep "<?" (anthony)
- PECL
- fileinfo
- move the Fileinfo extension to the core, and enable it by default.
- Fileinfo extension should be updated to only load its database once on MINIT.
- Engine additions
- add ZEND_ACC_READONLY (marcus)
Undiscussed Items
- reference mess (once and for all) (derick)
- Only Unicode and binary string types. (andrei)
- Unicode-related errors should be exceptions
- keep user-visible API unified: no separate parse_url() for IDNA
- hash hook or interface (george)
- add autoconversion for parameter parsing api (marcus)
- add a way to get the internal object directly by parameter parsing api (marcus)
- get rid of *_ex() functions in engine where possible (marcus)
- provide a a replacement for the GD extension, being maintained and easy to extend (pierre)
- "ext/pimpmydate", new date/time features, real OO interface (pierre)
- throwing exceptions in SoapServer? and catching them with SoapClient? (korving)
- a non-bankers-round round() variant (korving)
- being able to use array() when defining constants (korving)
- regular expression switch-matching (korving)
- add SRM (amico)
- add support for dangling commas
- fix openssl/curl to use stream transports
- provide a global __call for non existing functions (george)
- replace flex with re2c (sascha)
- reimplement ext/zlib based on pecl/http code (mike)
- MFB add RFC1867 fileupload processing hook (stefan)
- Replace bison scripts with lemon. This will fix the memleak issues of the parser, make the parser threadsafe and reentrant and allows to use emalloc on temp blocks automatically. (marcus)
Dropped Items
- items that have been marked deprecated since the dawn of PHP 4, and various function aliases (rasmus)
- Support for old type constructors (ezcLogMessage?::ezcLogMessage?()) (derick)
- SimpleXML? on by default
- remove ext/mysql (georg)
- Implement inheritance rules for type hints. (marcus)
- add named parameters
- all fatal errors to become exceptions
- Using an undefined property in a class with defined properties should be a FATAL error, alternatively there could be some flag mechanism to mark files/classes etc as following "strict" fules (derick)
- add possibility to prevent dynamic class rewriting as in: "if (...) class {...} else class {...}" (marcus)
- make function names match CS and unify parameter order (derick)
- add Typehinted properties (marcus)
- Allow foreach() without as part and/or foreach() with special empty handling "forempty(); foreach();" (marcus)
- improved garbabe collection for long running scripts (georg)
- add debugger (georg)
- add support for <?php="foo" ?>
- 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. [] ?????
This site powered by YaWiki 0.22 beta.
|
|