$Id: TODO,v 1.133 1998/02/02 07:05:13 shane Exp $

+----
| * -- 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
--------------------
* 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)
* make it possible to disable support for some extensions (gd, dbm)
* make it possible to build selected extensions so they are
  dynamically-loadable

Core Language Issues
--------------------
* go through PHP2's php.h and see how each special #define might be
  applied/supported in PHP3
* 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.
* go through FIXME and XXX lines (egrep 'FIXME|XXX' *.[ch])
* make lexer and parser thread-safe
* verify that binary strings are handled correctly
V don't evaluate truth expressions more than once
V make unset() work on arrays (tricky)

Core Functions
--------------
* go through all file functions and make sure they are opened in binary
  mode in win32 if needed (ie copy)
* go through all functions and look at PHP_SAFE_MODE issues
* have a look at return codes of fsockopen() function - we should
  probably RETURN_FALSE and then set an error code somewhere (Rasmus)
* go through FIXME and XXX lines (egrep 'FIXME|XXX' functions/*.[ch])
* add user-level flock() implementation to let people lock and unlock files 
* add "'" modifier to sprintf to group thousands by comma
* Add an improved eval() that doesn't "leak"
? sorting of objects with a user-defined comparison function (like Perl)
  (this shouldn't be expected before 3.1, if at all).


Extensions
----------
* add version strings for all extensions
* Oracle persistent connections
U gd support for windows
* Illustra support (APIS)
? CQL++ support (http://www.cql.com/)
? GNU SQL support (does anybody actually use this?)
? DB2 support (http://www.sleepycat.com/)
? Shore support (http://www.cs.wisc.edu/shore/)
? PGP Interface (use PGPlib?)
? more Perl-like regex handling?

Server Support
--------------
P ISAPI (Shane)
  * process cookies
  * blocking functions
  * make sure it's Microsoft-clean so it can be used with other ISAPI
    implementations
* WSAPI
* NSAPI
  * process cookies
  * check POST method handling code
  * use Netscape memory allocation inside emalloc() and company
* FastCGI support - see http://fastcgi.idle.com/

Win32 Specific
--------------
* implement some kind of syslog->file log support for win95.

Testing
-------
* truss/strace a typical PHP request and see if there are some system
  calls that could be optimized out
* verify that regression tests exist for all core functions

Miscellaneous
-------------
* remove hard-coded compilation options
? 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
? SSI->PHP3 conversion script
? SQL-based access logging (start with examples/log-*.php3)
