1
0
mirror of https://github.com/php/web-php.git synced 2026-03-28 17:22:06 +01:00
Files
archived-web-php/TODO
1998-01-15 07:23:15 +00:00

143 lines
6.1 KiB
Plaintext

+----
| * -- to be done
| ? -- to be done sometime if possible
| P -- in progress (name should appear in parentheses after task)
| D -- delayed until later date (specify in parentheses after task)
| U -- done, untested
| V -- done
+----
Configuration Issues
--------------------
* make it possible to disable support for some extensions (gd, dbm)
* properly detect dbm routines when they're in libc
* add the appropriate #define magic for memmove and friends (see
GNU autoconf info pages for details)
Language engine related issues
------------------------------
? Fix unset() to work on arrays (tricky).
* add isblank() function for platforms that dont have it (msvc)
* add .def file for win32 so that external modules will work with
updated php, and with any server api.
D Full ASCII 0 handling (3.0b2)
D don't evaluate truth expressions more than once,
e.g. in the question-mark operator (3.0b2)
P MT-Safe core (3.0b2 or 3.1)
In Win32 the core is almost MT-safe, only the flex scanners aren't.
A preliminary hack of Flex is finished, testing needs to be done.
D truss/strace a typical PHP request and see if there might be
some system calls we can optimize out (3.0b2)
D ISAPI support (parses files, needs thread-safety and locking)
D NSAPI support (esp. on Unix) (does not work yet)
V Implement automatic unassignment in case of errors/warnings
in array parsing, if possible.
V Fix isset() to work on array variables again.
V implement post/pre increment/decrement for strings
V eval() leaks
V look at octal support issue for chmod, umask, mkdir (others?)
V Merge array and regular variable rules (when there's time).
V showsource() function to force syntax highlighting of current script (3.0b2)
V Ignore # as the first character so we can make #!/bin/php.cgi scripts
V Add classes support inside arrays (when there's time).
V Make isset() work with all datatypes.
Miscellaneous
-------------
* Go through FIXME and XXX lines (egrep 'FIXME|XXX' *.[ch] */*.[ch])
* make logging (functions/log*.c) be a static/dynamic extension
* move to automake
* use libtool
* documentation (esp. for changed and new features)
* user-level flock() implementation to let people lock and unlock files
* move Treatdata() to language-scanner.lex where hash_environment()
is called including a decision about priority of variables and moving
Treatdata() to use hash_add() instead of hash_update() for insertions
to the symbol table.
* add "'" modifier to sprintf to group thousands by comma
* sorting of objects with a user-defined comparison function (like Perl)
* FastCGI support - see http://fastcgi.idle.com/
P PHP2->PHP3 conversion tool
D SSI->PHP3 conversion script (3.0b?)
D Remove hard-coded compilation options (3.0 final)
V Make all .ini directives available as Apache .conf directives (Rasmus)
V Apache 1.3 automatic module configuration integration (Rasmus)
V command-line options (Stig)
V send From: header on http includes (Jim)
V send better password on anonymous ftp includes (Jim)
V change gd.c to not use fork() so it can be ported to windows (Zeev)
V clean up _php3_regreplace to not allocate memory so wildly (Jaakko)
V throw away unused ereg_replace backreferences (Jaakko)
Functionality and migration from PHP 2.0
----------------------------------------
P Large objects support in PostgreSQL (Jouni)
P ODBC support (needs to be converted to use PHP3's resource list)
P finish the sample calendar dl (shane; I may add mayan functions at some point)
P LDAP support
U adabasd support
U filepro support (both win and unix)
* illustra support (APIS)
* go through all functions and look at PHP_SAFE_MODE issues
* go through PHP2's php.h and see how each special #define might be
applied/supported in PHP3
* go through all PHP2 Apache php* configuration directives and make
sure they are supported in PHP3
* have a look at return codes of fsockopen() function - we should
probably RETURN_FALSE and then set an error code somewhere (Rasmus)
? CQL++ support (http://www.cql.com/)
? GNU SQL support (does anybody actually use this?)
? DB2 support
? Shore support (http://www.cs.wisc.edu/shore/)
? PGP Interface (use PGPlib?)
? more Perl-like regex handling?
? sql-based access logging (start with functions/log_sql.c) (taking it out?)
D gd support for windows
D locale issues - funny things happen in PHP2 when the locale is set to
use , instead of . as the decimal seperator. ie. 1.5+1.5 = 1 (3.0b2)
V look at what the functions in functions/filestat.c return in the
case of errors (Rasmus)
V exec.c migration (Rasmus)
V correct handling of HEAD requests (Rasmus)
V mSQL support (Zeev)
V MySQL support (Zeev)
V PostgresSQL support (Zeev)
V oracle support - Ora_Error(), Ora_ErrorCode() and column access by name (Stig)
V back-reference support (\1 \2 \3) in ereg_replace (Jim)
V snmp support - implemented as an extension (Rasmus)
V sybase support (Zeev + Rasmus)
V gd support
V post.c - needs PHP_TRACK_VARS code (Rasmus)
V info.c from php2 (still needs available variables dump)
V oracle support - should use list management (Stig)
V solid support (Stig)
Windows specific stuff
----------------------
D (evaluate the need for this)port user and group functions for windows NT.
These will probably not work on windows 95 irregardless.
This will require someone with access to a windows nt environment to test.
Some of these functions are semi-ported. Need to do additional work in
win32/pwd.c to make them actualy do something usefull on winnt systems.
V Finish syslog-eventlog implementation. Need someone to test on nt.
NSAPI/ISAPI Modules related
---------------------------
(NOTE: while I am going to continue to compile against updates, and get
modules to parse, they cannot be ready until thread-safety is done.)
* De-M$ isapi.c
D identify and seperate module globals, and thread globals into
seperate functions for easier implementation of server modules.
D get blocking functions for ISAPI
D cookie code for isapi and nsapi needs to be done
D check post code for nsapi
D create defines for malloc, free, etc (inside the e*()) so that
we can use netscapes memory functions in the nsapi module.
D migrate apache stuff to fill and use environment information. Will help
reduce #if's.