Table of all core extensions, regular extensions, sapi requirements
Decide if we will distribute, third party but we will build/distribute, and third party we can't touch them
Build and distribute libs (and source/makefiles/etc)
Update on a regular basis with new libs
Keep version information and dates current with new builds
5.3 is the 2k5 target, 6.0 is the 2k8 + unicode target
recruit additional help with building libraries
64 bit versions for 2k5 and 2k8 of libs
Document the process of getting a new library in our build systems (rules, naming, platform support, etc.)
Compiler warning killing spree
lower deprecation to _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE instead of /wd4996 - and kill new warnings
remove no deprecate warnings and fix core to use new
API (probably not until 6.0)
get 6.0 compiling with unicode flag? (that would be fun)
Code audit for problem areas (streams/sockets and process control are two that come to mind)
fix bindlib so it doesn't do bad things to SOCKET in 64 bit, and check for native inet_pton so we can let the compiler set the WIN32_WINNT version instead of hard coding it in readdir.h - this will involve checking to see if the native call is available (vista and 2008 have it) and if not using the bindlib fallback (note theres a _WIN32_WINNT redef in Zend/zend_alloc.c we need to adress aswell) - not fun
fix browsecap so it doesn't still try to use ereg even though ereg is no longer in standard (probably flip it to pcre would work, volunteers?)
Add support for hardlinks (NT5+) and symbolic links (NT6+) - Use
VerifyVersionInfo() to detect Windows version of the running system
Core/Standard:
inet_ntop Done (Kalle)
inet_pton Done (Kalle)
getmxrr
dns_get_mx (alias of getmxrr)
checkdnsrr
dns_get_record (A native implementation would provide BSD + MAC support)
proc_nice
stream_socket_pair
-
linkinfo
readlink
-
lchown
lchgrp
fnmatch
getrusage
sys_getloadavg
nl_langinfo
money_format
chroot
touch (See manual about modifying modification time of a directory)
strptime
time_nanosleep
time_sleep_until
Extensions (Not sure if we need them anyone?):
apache_child_terminate
imagecreatefromxpm
equivalent of phpize on windows (one extension configure/compile)
fix some extensions that should be threadsafe only (apache2) or error instead of warn and ignore on non-zts
quick checkover of extensions that should be disable able (ereg, mysqlnd)
configs for extensions that can be done for windows (ncurses et al)
Add little ifdef for a pretty string for compiler version used - make available in phpinfo and in .rc template, shared extensions will need their own compiler version for their info and .rc
/* pretty string for the compiler we're using */
#if _MSC_VER >= 1500
#define MSVC_COMPILER_STRING "MSVC9 (2008)"
#elif _MSC_VER >= 1400
#define MSVC_COMPILER_STRING "MSVC8 (2005)"
#elif _MSC_VER >= 1310
#define MSVC_COMPILER_STRING "MSVC7.1 (.NET 2003)"
#elif _MSC_VER >= 1300
#define MSVC_COMPILER_STRING "MSVC7 (.NET 2002)"
#elif _MSC_VER < 1300
#define MSVC_COMPILER_STRING "MSVC6"
#endif
PHP can't be built with anything less than VC6 with all the service packs. There is no way to differentiate between 2005 RTM and 2005 SP1, so always use SP1!
re2c on box
exchange cygwin build system for php build system
create release build system
move all pecl extension building to pecl (pecl snaps on pecl)
64 bit snaps started for 5.3?
reorganize the libraries so we have branches and tagged versions with different libs
Get builds going for snaps (
CVS versions), release versions, and alpha/beta if applicable
- Auto building and testing similar to gcov, only for windows