[[toc]] ++ 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 [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) # @@---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 # @@---[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. # @@---[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 # 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 (georg, andrey) # [BugId:27792 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 [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. [] **?????**