PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net


 

Todo

Library Stuff

  1. Table of all core extensions, regular extensions, sapi requirements
  2. Decide if we will distribute, third party but we will build/distribute, and third party we can't touch them
  3. Build and distribute libs (and source/makefiles/etc)
  4. Update on a regular basis with new libs
  5. Keep version information and dates current with new builds
  6. 5.3 is the 2k5 target, 6.0 is the 2k8 + unicode target
  7. recruit additional help with building libraries
  8. 64 bit versions for 2k5 and 2k8 of libs
  9. Document the process of getting a new library in our build systems (rules, naming, platform support, etc.)

Code

  1. Compiler warning killing spree
  2. lower deprecation to _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE instead of /wd4996 - and kill new warnings
  3. remove no deprecate warnings and fix core to use new API (probably not until 6.0)
  4. get 6.0 compiling with unicode flag? (that would be fun)
  5. Code audit for problem areas (streams/sockets and process control are two that come to mind)
  6. 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
  7. 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?)
  8. Add support for hardlinks (NT5+) and symbolic links (NT6+) - Use VerifyVersionInfo() to detect Windows version of the running system

Missing function implementations

Core/Standard:

  1. inet_ntop Done (Kalle)
  2. inet_pton Done (Kalle)
  3. getmxrr
  4. dns_get_mx (alias of getmxrr)
  5. checkdnsrr
  6. dns_get_record (A native implementation would provide BSD + MAC support)
  7. proc_nice
  8. stream_socket_pair
  9. link - MSDN docs for hardlinks - available as of Windows 2000 / Server 2000
  10. linkinfo
  11. readlink
  12. symlink - MSDN docs for symlinks - only available on Vista/2008
  13. lchown
  14. lchgrp
  15. fnmatch
  16. getrusage
  17. sys_getloadavg
  18. nl_langinfo
  19. money_format
  20. chroot
  21. touch (See manual about modifying modification time of a directory)
  22. strptime
  23. time_nanosleep
  24. time_sleep_until

Extensions (Not sure if we need them anyone?):

  1. apache_child_terminate
  2. imagecreatefromxpm

Configure system

  1. equivalent of phpize on windows (one extension configure/compile)
  2. fix some extensions that should be threadsafe only (apache2) or error instead of warn and ignore on non-zts
  3. quick checkover of extensions that should be disable able (ereg, mysqlnd)
  4. configs for extensions that can be done for windows (ncurses et al)
  1. 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!

PHP Build Box

  1. re2c on box
  2. exchange cygwin build system for php build system
  3. create release build system
  4. move all pecl extension building to pecl (pecl snaps on pecl)
  5. 64 bit snaps started for 5.3?
  6. reorganize the libraries so we have branches and tagged versions with different libs

PECL Build Box

  1. Get builds going for snaps (CVS versions), release versions, and alpha/beta if applicable

Windows GCOV Box

- Auto building and testing similar to gcov, only for windows

Documentation

  1. Update the official Windows build documentation
  2. Update the PECL on Windows documentation
  3. Update related FAQs: (obtaining libraries and compiling needs)
  4. A recent post about installation doc needs
 
internals/windows/todo.txt · Last modified: 2008/06/18 07:07 by kalle
 
Atom | show source | credits | stats | sitemap | contact | advertising | mirror sites