Annotation of embedaddon/php/TODO, revision 1.1.1.1

1.1       misho       1: Things to do or at least think about doing in the future. Name in
                      2: parenthesis means that person has taken on this project.
                      3: 
                      4: Zend
                      5: ----
                      6:     * Allow foreach ($array as $k => list($a, $b)) syntax for multi
                      7:       dimensional arrays.
                      8:     * Look at replacing c-lib call tolower().
                      9:     * Make hash API functions work with HASH_OF() to save time.
                     10:     * Native large number support (probably with GNU GMP)
                     11:     * Const'ify APIs. Right now, many functions leave parameters untouched,
                     12:       but don't declare those as const. This makes interaction with other
                     13:       interfaces difficult which pass const parameters to us.
                     14: 
                     15: 
                     16: global
                     17: ------
                     18:     * Make sure that all ZTS globals get destructed. Most ts_allocate_id()
                     19:       calls should have a dtor entry.
                     20:     * on some platforms unimplemented function will just do nothing 
                     21:       (e.g. symlink) they should print a warning or not even be defined!
                     22:       (DONE ?)
                     23:     * --enable-all in configure. (--enable-shared=max ...)
                     24:     * make configure print out a summary when it's done (like XEmacs)
                     25:     * replace standard functions which work on static data with 
                     26:       reentrancy-safe functions (DONE?).
                     27:     * make SAPI conform to CGI/1.1. Currently, all SAPI modules
                     28:       define REMOTE_ADDR etc. themselves and reach only various level
                     29:       of compliance.
                     30:     * see what functions might need to be changed to use HashPosition, so
                     31:       that the internal array pointer is not affected.
                     32:     * Move most extensions and PEAR packages out of the PHP CVS tree,
                     33:       include them again during release packaging.
                     34: 
                     35:     Other
                     36:     * use thread-safe resolver functions (either require BIND 8 or adns).
                     37:     * implement javadoc based function docs template system.
                     38:     * provide optional IPv6 support (seems to be done?).
                     39:     * find a better way to implement script timeouts. SIGVTALRM is used
                     40:       by some POSIX threads implementations (i.e. OpenBSD) and is not
                     41:       available in ZTS mode.
                     42:     * Implement flush feature suitable for nested output buffers.
                     43: 
                     44: Streams
                     45: -------
                     46:     * Route filestat.c through the wrapper layer; isolate the statcache code
                     47:       so that it is independent of php functions and can be applied to any
                     48:       stream/path.
                     49:     * Implement generalized connection pool for stated protocols such as
                     50:       ftp and http/1.1 (using keep-alive) to avoid having to negotiate
                     51:       new command/request stream for each subsequent call; Possibly store 
                     52:       resources in contexts (creating a default context if necessary) to 
                     53:       allow segmentation of connection pools.
                     54:     * Add a method to take ownership of the memory buffer in memory streams so
                     55:       that generating string values for zvals doesn't require an estrdup.
                     56:     * bundle and use curl lib for fopen wrapper.
                     57: 
                     58: documentation
                     59: -------------
                     60:     * Add remarks in the documentation which functions are not implemented 
                     61:       on win32. 
                     62:     * Add remarks in the documentation which functions are not binary-safe.
                     63:     * Update curl documentation (DONE?)
                     64:     * Add developer documentation.
                     65:     * Add detailed documentation for Java extension.
                     66: 
                     67: ext/curl
                     68: --------
                     69:     * Have a warning scheme for when people use unsupported features.
                     70: 
                     71: ext/oci8
                     72: --------
                     73:     * All OCIFetch*() functions should return 0 for no more data and false on 
                     74:       error.
                     75:     * Have a flag that trims trailing spaces from CHAR fields on retrieval.
                     76:     * Make allow_call_time_pass_reference=Off working.
                     77:     * For additional todo information, see oci8.c, in ext/oci8
                     78: 
                     79: ext/odbc
                     80: --------
                     81:     For PHP 4.3.0:
                     82:     * update all php_error calls to php_error_docref where valid
                     83:     * integrate EXPERIMENTAL ODBC update for use in PHP 5.0, use for
                     84:       testing purposes only.
                     85: 
                     86:     For PHP 5.0.0
                     87:     * Activate EXPERIMENTAL ODBC codebase update
                     88: 
                     89: ext/pcre
                     90: --------
                     91:     * Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
                     92: 
                     93: ext/pcntl
                     94: ---------
                     95:     * Change internal callback handler to use TICKS
                     96:     * Remove all zend_extension code
                     97:     * Add object callback support to pcntl_signal()
                     98: 
                     99: ext/session
                    100: -----------
                    101:     For PHP 4.3.0:
                    102:     * session_abort() to abort session. ie: Do not save session data.
                    103:     * Allow unset($_SESSION) or unset($HTTP_SESSION_VARS) to unset
                    104:       session vars regardless of register_globals setting.
                    105: 
                    106:     Other:
                    107:     * Maybe implement finer-grained session variables that could be 
                    108:       locked individually.
                    109:     * Write a network-transparent storage back-end with fallover
                    110:       facilities
                    111:     * Provide a callback facility which is executed upon encountering
                    112:       an unknown class name during deserialization
                    113: 
                    114: ext/standard
                    115: ------------
                    116:     * Add a version number to data serialized via serialize().
                    117:     * Possibly modify parsing of GPC data to automatically create arrays if
                    118:       variable name is seen more than once.
                    119:     * Implement regex-cache for url-functions.
                    120:     * Move socket related functions to fsock.c.
                    121: 
                    122: ext/wddx
                    123: --------
                    124:     * See if we can support the remaining data types:
                    125:         binary
                    126: 
                    127:         http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm
                    128:         (Andrei)
                    129: 
                    130:     * implement wddx_packet_as_javascript(). (Andrei)
                    131: 
                    132: other cool stuff
                    133: ----------------
                    134:     * PVM extension
                    135: 
                    136: vim:et:sw=4:ts=4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>