summaryrefslogtreecommitdiff
path: root/UPGRADING.INTERNALS
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-08-15 22:59:41 +0200
committerNikita Popov <nikic@php.net>2016-08-15 23:01:19 +0200
commit0374a98e1457105d884be324518a5f6a8c283234 (patch)
treec98d9fdaf4d74d349406785351fea246292e3c48 /UPGRADING.INTERNALS
parent777d11a8cce6a671f4d48cf0e7d5e18c90e1a394 (diff)
downloadphp-git-0374a98e1457105d884be324518a5f6a8c283234.tar.gz
Scrub UPGRADING and UPGRADING.INTERNALS
There were already some master-only entries in there -- I hope I didn't remove anything that was supposed to be there. [skip ci]
Diffstat (limited to 'UPGRADING.INTERNALS')
-rw-r--r--UPGRADING.INTERNALS64
1 files changed, 2 insertions, 62 deletions
diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index 1a922e6294..1444589a50 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -1,10 +1,7 @@
PHP 7.1 INTERNALS UPGRADE NOTES
-0. Wiki Examples
1. Internal API changes
- e. Codepage handling on Windows
- f. Path handling on Windows
- g. SAPI logging
+ a.
2. Build system changes
a. Unix build system changes
@@ -12,68 +9,11 @@ PHP 7.1 INTERNALS UPGRADE NOTES
3. Module changes
-================
-0. Wiki Examples
-================
-
-The wiki contains multiple examples and further explanations of the internal
-changes. See: https://wiki.php.net/phpng-upgrading
-
-
========================
1. Internal API changes
========================
- e. Codepage handling on Windows
-
- A set of new APIs was introduced, which allows to handle codepage
- conversions. The corresponding prototypes and macros are contained
- in win32/codepage.h.
-
- Functions with php_win32_cp_* signatures provide handling for various
- codepage aspects. Primarily they are in use at various places in the
- I/O utils code and directly in the core where necessary, providing
- conversions to/from UTF-16. Arbitrary conversions between codepages
- are possible as well, whereby UTF-16 will be always an intermediate
- state in this case.
-
- For input length arguments, the macro PHP_WIN32_CP_IGNORE_LEN can be
- passed, then the API will calculate the length. For output length
- arguments, the macro PHP_WIN32_CP_IGNORE_LEN_P can be passed, then
- the API won't set the output length.
-
- The mapping between encodings and codepages is provided by the predefined
- array of data contained in win32/cp_enc_map.c. To change the data,
- a generator win32/cp_enc_map_gen.c needs to be edited and run.
-
- f. Path handling on Windows
-
- A set of new APIs was introduced, which allows to handle UTF-8 paths. The
- corresponding prototypes and macros are contained in win32/ioutil.h.
-
- Functions with php_win32_ioutil_* signatures provide POSIX I/O analogues.
- These functions are integrated in various places across the code base to
- support Unicode filenames. While accepting char * arguments, internally
- the conversion to wchar_t * happens. Internally almost no ANSI APIs are
- used, but directly their wide equivalents. The string conversion rules
- correspond to those already present in the core and depend on the current
- encoding settings. Doing so allows to move away from the ANSI Windows API
- with its dependency on the system OEM/ANSI codepage.
-
- Thanks to the wide API usage, the long paths are now supported as well. The
- PHP_WIN32_IOUTIL_MAXPATHLEN macro is defined to 2048 bytes and will override
- the MAXPATHLEN in files where the header is included.
-
- The most optimal use case for scripts is utilizing UTF-8 for any I/O
- related functions. UTF-8 filenames are supported on any system disregarding
- the system OEM/ANSI codepage.
-
- g. SAPI logging
- The log_message callback in the SAPI struct was extended with the severity
- argument. This allows SAPI modules to implement mapping between PHP and
- corresponding server error levels. A reference mapping implementation
- can be found in apache2handler.
-
+ a.
========================
2. Build system changes