Annotation of embedaddon/php/TODO, revision 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>