History log of /PHP-7.3/Zend/zend.c
Revision Date Author Comments
# 54a58a73 02-Jan-2019 Xinchen Hui <laruence@gmail.com>

Fixed bug #77387 (Recursion detection broken when printing GLOBALS)

# 5888fbde 24-Dec-2018 Dmitry Stogov <dmitry@zend.com>

Backport later interned strings destruction.

# 9afce019 01-Nov-2018 Zeev Suraski <zeev@php.net>

Future-proof email addresses

# 902d39a3 13-Oct-2018 Peter Kokot <peterkokot@gmail.com>

Trim trailing whitespace in source code files

# 7f6387b5 13-Oct-2018 Peter Kokot <peterkokot@gmail.com>

Trim trailing whitespace in source code files

# d2477b28 02-Oct-2018 Nikita Popov <nikita.ppv@gmail.com>

Fixed bug #76936

# 8d3f8ca1 03-Jul-2018 Peter Kokot <peterkokot@gmail.com>

Remove unused Git attributes ident

The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.

# 7eb045d3 03-Jul-2018 Dmitry Stogov <dmitry@zend.com>

API cleanup. Removed unused functions (kept compatibility macros).

# d90c6f24 29-May-2018 Dmitry Stogov <dmitry@zend.com>

Removed useless zval_ptr_dtor()

# 5eb1f92f 28-May-2018 Dmitry Stogov <dmitry@zend.com>

Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.

# a7f83f47 06-Mar-2018 Dmitry Stogov <dmitry@zend.com>

Memory leak fix, for arg_info of internal functions with type hints (ZTS build only).

# 6c035f53 05-Mar-2018 Dmitry Stogov <dmitry@zend.com>

Separate duplicated code into a zend_ini_parse_bool() function.

# f844d40f 02-Mar-2018 Dmitry Stogov <dmitry@zend.com>

GC API cleanup

# baa98901 25-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Completely hide GC implementation details into zend_gc.c

# 6d3e1bd1 19-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Added VM instrumentation ability

# 33b9282c 10-Feb-2018 Xinchen Hui <laruence@gmail.com>

Remove tested code

# 08428cf6 10-Feb-2018 Xinchen Hui <laruence@gmail.com>

Fixed cpuinfo in LLVM GCC & Added AVX2 detection

Seems it only defines __builtin_cpu_supports but no __builtin_cpu_init
(Apple LLVM version 9.0.0 (clang-900.0.38))

# 87b71804 10-Feb-2018 Xinchen Hui <laruence@gmail.com>

Fixed cpu feature check in reslover functions

# 17a3b484 31-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Make IS_UNUSED to be zero.

# 742d5a01 19-Jan-2018 Dmitry Stogov <dmitry@zend.com>


# 5f349f3a 19-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Avoid useless duplication

# 74de5461 16-Jan-2018 Anatol Belski <ab@php.net>

The cpu setup is still needed when ifunc is supported

# 81132608 16-Jan-2018 Anatol Belski <ab@php.net>

Separate the cpuinfo initialization part and call it at startup

# 64002648 31-Dec-2017 Gabriel Caruso <carusogabriel34@gmail.com>

Trailing whitespaces

Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>

# a6519d05 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# 7a7ec01a 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# ccd4716e 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# f98721b4 29-Nov-2017 Dmitry Stogov <dmitry@zend.com>

Intern auto global name strings in first place

# 26f8fc83 15-Nov-2017 Nikita Popov <nikita.ppv@gmail.com>

Enable and fix printf() format warnings

Add _unchecked() variants of zend_spprintf and zend_strpprintf for
cases where we specifically want to disable these checks, such as
use of %H.

# ccc12b82 16-Nov-2017 Dmitry Stogov <dmitry@zend.com>

Avoid unnecessary reference-counting on strings.

# ce18738a 16-Nov-2017 Dmitry Stogov <dmitry@zend.com>

Removed "_" from API functions.

# 974a8f8a 30-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Use internet strings for EG(ini_entries)

# 49ea143b 26-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Encapsulate reference-counting primitives.
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead.
Added mactros to validate reference-counting (disabled for now).
These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.

# b4903aef 18-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Move a part of opcache initialization into post_startup phase (when all extensions already loaded).

# cb9d81ef 05-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Refactored recursion pretection

# 73d6456d 24-Sep-2017 Nikita Popov <nikita.ppv@gmail.com>

Fixed bug #75252

# 3069ad8d 13-Aug-2017 Anatol Belski <ab@php.net>

Fixed bug #75063

# b2934d26 02-Aug-2017 clwu <clwu@lihuobao.cn>

fixed #endif comments

# 0d1eeeb6 28-Jul-2017 Anatol Belski <ab@php.net>

move zend_ato*() to size_t and remove casts

# 49d9b301 26-Jul-2017 Anatol Belski <ab@php.net>

Move cwd_state and path related routines to size_t

Having `int` there is no real profit in the size or speed, while unsigned
improves security and overall integration. ZPP supplied strings can
be then accepted directly and structs can be still handled with smaller
unsigned types for size reasons, which is safe. Yet some related places
are to go.

basic move tsrm_realpath_r to size_t

fix conditions and sync with affected places

touch ocurrences of php_sys_readlink usage

follow up on phar path handling

remove duplicated check

move zend_resolve_path and related pieces to size_t

touch yet resolve path related places

remove cast

missing pieces

missing piece

yet cleanups for php_sys_readlink for ssize_t

fix wrong return

# bc5811f3 04-Jul-2017 Anatol Belski <ab@php.net>

further sync for vim mode lines

# e08c0ed8 27-Jun-2017 Anatol Belski <ab@php.net>

Bug #74815 crash with a combination of INI entries at startup

TS related VCWD routines depend on CWD. Thus, a premature CWD
deactivation renders the VCWD layer unusable. Same issue seems to
persist in versions < 7.2, just that the code path is actually unused so
the issue didn't show up. Still might make sense to backport this into
lower branches.

# caaeb484 26-Jun-2017 Dmitry Stogov <dmitry@zend.com>

Removed EG(valid_symbol_table). Used EG(active) instead.

# 205807f6 25-Jun-2017 Nikita Popov <nikita.ppv@gmail.com>

Move va_copy compatibility code into zend_portability.h

Previously this was defined in zend.c and php.h and also handled
in another way in soap.c.

# 6dd2eaf4 25-Jun-2017 Nikita Popov <nikita.ppv@gmail.com>

Remove unnecessary string copy

# f25ecdac 21-Jun-2017 Dmitry Stogov <dmitry@zend.com>

shutdown_executor() refactoring (reuse opcache fast request shutdown code)

# ec31924c 10-Mar-2017 Remi Collet <remi@php.net>

Constify to void build warning for C++ ext. [-Wwrite-strings]

Example (with v8js):

/builddir/build/BUILD/php-pecl-v8js-1.3.4/NTS/v8js_class.cc: In function 'void v8js_execute_script(zval*, v8js_script*, long int, long int, long int, zval**)':
/usr/include/php/Zend/zend.h:204:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
#define zend_bailout() _zend_bailout(__FILE__, __LINE__)
/builddir/build/BUILD/php-pecl-v8js-1.3.4/NTS/v8js_class.cc:633:3: note: in expansion of macro 'zend_bailout'

# c6982995 04-Mar-2017 Anatol Belski <ab@php.net>

Interned strings unification for TS/NTS

Hereby, interned strings are supported in thread safe PHP. The patch
implements two types of interned strings

- interning per process, strings are not freed till process end
- interning per request, strings are freed at request end

There is no runtime interning.

With Opcache, all the permanent iterned strings are copied into SHM on
startup, additional copying into SHM might happen on demand.

# b59f3cf1 20-Feb-2017 Anatol Belski <ab@php.net>

use the delivered global arg instead of fetching it

# 1623ef10 18-Feb-2017 Anatol Belski <ab@php.net>

initialize valid_symbol_table, important for the main thread

to prevent php_errormsg population on invalid symlol_table

# 1b1399c9 09-Feb-2017 Jim Zubov <jim@commercebyte.com>

Added EG(flags) - executor global flags
EG_FLAGS_IN_SHUTDOWN - is set when PHP is in shutdown state

# f81b7df6 20-Jan-2017 Remi Collet <remi@php.net>

Fixed bug #73965 DTrace reported as enabled when disabled

# cd2b462a 15-Jan-2017 Anatol Belski <ab@php.net>

move some var declarations to the top for better grouping

# b25be216 13-Jan-2017 Xinchen Hui <laruence@gmail.com>

Remove redundant reference handling

# 04379bcb 13-Jan-2017 Xinchen Hui <laruence@gmail.com>

Fixed bug #73916 (zend_print_flat_zval_r doesn't consider reference)

# dac6c639 04-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 478f119a 04-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 9e29f841 02-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 5fc9aa9a 18-Dec-2016 Nikita Popov <nikic@php.net>

Make printf_to_smart_str(ing) the primitive printf operation

vs(tr)pprintf is now implemented in Zend on top of
printf_to_smart_str(int), which is provided as a utility function.

This allows us to efficiently printf to the end of a smart string.

# c7742e28 18-Dec-2016 Nikita Popov <nikic@php.net>

Export zend_s(tr)pprintf

It's annoying that in Zend you have to use zend_strpprintf instead
of strpprintf, while in PHP you have to use strpprintf instead of

Make zend_s(tr)pprintf always available and keep s(tr)pprintf as
macro aliases.

# b204b3ab 26-Nov-2016 Anatol Belski <ab@php.net>

further normalizations, uint vs uint32_t

fix merge mistake

yet one more replacement run

# 0c78fe4b 18-Nov-2016 Dmitry Stogov <dmitry@zend.com>

Disabled PHP call tracing by default (it makes significant overhead).
This may be enabled again using envirionment variable USE_ZEND_DTRACE=1.

# a911df5d 17-Nov-2016 Dmitry Stogov <dmitry@zend.com>

Revert "Introduced zend.enable_dtrace INI directive to enable/disable PHP call tracing"

This reverts commit 01239b0effbc1839aca6d03cdd4c3a0c1a509798.

# 01239b0e 17-Nov-2016 Dmitry Stogov <dmitry@zend.com>

Introduced zend.enable_dtrace INI directive to enable/disable PHP call tracing

# 12ee17d5 30-Aug-2016 Davey Shafik <me@daveyshafik.com>

Implement \ArgumentCountError exception

# b0037688 11-Jul-2016 Bob Weinand <bobwei9@hotmail.com>

Rewrite watchpoints to be much more stable

This mainly involves a separate abstraction layer for elements (e.g. $a->b) and watchpoints (on pointer of the Bucket for example).
Also better comparison handling (value backup vs. page dumps).

It is not yet finished (there are sometimes false positives announced and names not yet perfect), but the functionality is working and not crashing as far as I have tested.
Future scope is also relative watchpoints, e.g. "w $this->val expression()" which does not have the symbol tables as basis, but the value (in this example: return value of expression()) as basis.

# d0460d8f 23-Jun-2016 Dmitry Stogov <dmitry@zend.com>

Turn safe timeout handling into general interrupt handling ability.

# 3d3f11ed 20-Jun-2016 Anatol Belski <ab@php.net>

Fixed the UTF-8 and long path support in the streams on Windows.

Since long the default PHP charset is UTF-8, however the Windows part is
out of step with this important point. The current implementation in PHP
doesn't technically permit to handle UTF-8 filepath and several other
things. Till now, only the ANSI compatible APIs are being used. Here is more
about it


The patch fixes not only issues with multibyte filenames under
incompatible codepages, but indirectly also issues with some other multibyte
encodings like BIG5, Shift-JIS, etc. by providing a clean way to access
filenames in UTF-8. Below is a small list of issues from the bug tracker,
that are getting fixed:


Yet more related tickets can for sure be found - on bugs.php.net, Stackoverflow
and Github. Some of the bugs are pretty recent, some descend to early
2000th, but the user comments in there last even till today. Just for example,
bug #30195 was opened in 2004, the latest comment in there was made in 2014. It
is certain, that these bugs descend not only to pure PHP use cases, but get also
redirected from the popular PHP based projects. Given the modern systems (and
those supported by PHP) are always based on NTFS, there is no excuse to keep
these issues unresolved.

The internalization approach on Windows is in many ways different from
UNIX and Linux, while it supports and is based on Unicode. It depends on the
current system code page, APIs used and exact kind how the binary was compiled
The locale doesn't affect the way Unicode or ANSI API work. PHP in particular
is being compiled without _UNICODE defined and this is conditioned by the
way we handle strings. Here is more about it


However, with any system code page ANSI functions automatically convert
paths to UTF-16. Paths in some encodings incompatible with the
current system code page, won't work correctly with ANSI APIs. PHP
till now only uses the ANSI Windows APIs.

For example, on a system with the current code page 1252, the paths
in cp1252 are supported and transparently converted to UTF-16 by the
ANSI functions. Once one wants to handle a filepath encoded with cp932 on
that particular system, an ANSI or a POSIX compatible function used in
PHP will produce an erroneous result. When trying to convert that cp932 path
to UTF-8 and passing to the ANSI functions, an ANSI function would
likely interpret the UTF-8 string as some string in the current code page and
create a filepath that represents every single byte of the UTF-8 string.
These behaviors are not only broken but also disregard the documented
INI settings.

This patch solves the issies with the multibyte paths on Windows by
intelligently enforcing the usage of the Unicode aware APIs. For
functions expect Unicode (fe CreateFileW, FindFirstFileW, etc.), arguments
will be converted to UTF-16 wide chars. For functions returning Unicode
aware data (fe GetCurrentDirectoryW, etc.), resulting wide string is
converted back to char's depending on the current PHP charset settings,
either to the current ANSI codepage (this is the behavior prior to this patch)
or to UTF-8 (the default behavior).

In a particular case, users might have to explicitly set
internal_encoding or default_charset, if filenames in ANSI codepage are
necessary. Current tests show no regressions and witness that this will be an
exotic case, the current default UTF-8 encoding is compatible with any
supported system. The dependency libraries are long switching to Unicode APIs,
so some tests were also added for extensions not directly related to streams.
At large, the patch brings over 150 related tests into the core. Those target
and was run on various environments with European, Asian, etc. codepages.
General PHP frameworks was tested and showed no regressions.

The impact on the current C code base is low, the most places affected
are the Windows only places in the three files tsrm_win32.c, zend_virtual_cwd.c
and plain_wrapper.c. The actual implementation of the most of the wide
char supporting functionality is in win32/ioutil.* and win32/codepage.*,
several low level functionsare extended in place to avoid reimplementation for
now. No performance impact was sighted. As previously mentioned, the ANSI APIs
used prior the patch perform Unicode conversions internally. Using the
Unicode APIs directly while doing custom conversions just retains the status
quo. The ways to optimize it are open (fe. by implementing caching for the
strings converted to wide variants).

The long path implementation is user transparent. If a path exceeds the
length of _MAX_PATH, it'll be automatically prefixed with \\?\. The MAXPATHLEN
is set to 2048 bytes.

Appreciation to Pierre Joye, Matt Ficken, @algo13 and others for tips, ideas
and testing.


# 3abd9c34 20-Jun-2016 Dmitry Stogov <dmitry@zend.com>

Removed unused callbacks

# 1b29e0ca 07-Oct-2015 Nikita Popov <nikic@php.net>

Switch zend_print_zval_r to use smart_str

Instead of directly writing to stdout. This allows doing a print_r
into a string, without using output buffering.

The motivation for this is bug #67467: print_r() in return mode
will still dump the string to stdout (causing a potential information
leak) if a fatal error occurs.

# 47e26cf9 02-Jun-2016 Anatol Belski <ab@php.net>

fix known interned strings init with TS per request

# 7b94b958 12-May-2016 Dmitry Stogov <dmitry@zend.com>

Intern some known (and offten used) strings.

# 1ac15293 03-Mar-2016 Nikita Popov <nikic@php.net>


Also re bug #71575.

# 9ff08ae1 26-Jan-2016 Xinchen Hui <laruence@gmail.com>

Fixed bug #71443 (Segfault using built-in webserver with intl using symfony)

# 97a9470d 02-Jan-2016 Xinchen Hui <laruence@gmail.com>

bump year which is missed in rev 49493a2

# 3537e95d 02-Jan-2016 Xinchen Hui <laruence@gmail.com>

bump year which is missed in rev 49493a2

# 53bfb661 20-Dec-2015 Anatol Belski <ab@php.net>

Revert "Partially fix bug #71129"

This reverts commit 4c55669caa96f6202c2047a7baf6c5d5894d5fa7.

The way it is fixes doesn't satisfy every SAPI, so a better solution
is yet to work out.

# 4c55669c 20-Dec-2015 Anatol Belski <ab@php.net>

Partially fix bug #71129

# a21b0942 19-Dec-2015 Xinchen Hui <laruence@gmail.com>

Fixed bug #71165 (-DGC_BENCH=1 doesn't work on PHP7)

# 3ed5e54a 15-Dec-2015 Xinchen Hui <laruence@gmail.com>


# c2de445f 12-Nov-2015 Xinchen Hui <laruence@gmail.com>

Also protects this one

# 53c03115 12-Nov-2015 Xinchen Hui <laruence@gmail.com>

Re-fixed #70895

# ac78430c 06-Oct-2015 Rasmus Lerdorf <rasmus@php.net>

zend.assertions is not a boolean

# fb2c890c 06-Oct-2015 Rasmus Lerdorf <rasmus@php.net>

zend.assertions is not a boolean

# 4a174ca7 23-Sep-2015 Bob Weinand <bobwei9@hotmail.com>

Fixed bug #70532 (respect set_exception_handler in phpdbg)

# 7680194a 18-Sep-2015 Xinchen Hui <laruence@gmail.com>

Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build)

# 4ddeeb49 11-Sep-2015 Xinchen Hui <laruence@gmail.com>

Remove free_string_zval

# 85a511d2 01-Sep-2015 Joe Watkins <krakjoe@php.net>

fix zend signal and tsrm compat

# 71af54e5 19-Aug-2015 Dmitry Stogov <dmitry@zend.com>

Mark error and exception functions as "cold" (Matt's idea)

# 7be9e69e 31-Jul-2015 Anatol Belski <ab@php.net>

remove useless ifdefs

the most outer block already tell's it's ZTS code

# b604716f 31-Jul-2015 Anatol Belski <ab@php.net>

Fixed bug #70108 sometimes empty $_SERVER['QUERY_STRING']

auto_globals_jit is the reason every thread needs a copy. Otherwise
every thread will operate on the master values which can't end good.

# 549e8c49 10-Jul-2015 Dmitry Stogov <dmitry@zend.com>

Squashed commit of the following:

commit 03cf871f1576f08b2348c141b209894a7bf17a86
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:31 2015 +0300

Revert "Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)"

This reverts commit 5ee841325901a4b040cfea56292a24702fe224d9.

commit 285a68227ce3d380e821a24fa389aa5239bd3fe1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:26 2015 +0300

Revert "Tuned off dubugging of live ranges"

This reverts commit 404dc93d35f7061fc4b1b41ad6cb0721b9b52bcc.

commit 93d9d11157301ee2ec99afb6f5744b126d17f637
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:17 2015 +0300

Revert "Remove loop_var_stack"

This reverts commit b3a4c05071c3786e27e1326fa1b4d5acad62fccd.

commit ede68ebbc284aec79e3f719f2c8dbf9da6907752
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:12 2015 +0300

Revert "ZEND_SEPARATE reuses temporaries"

This reverts commit 1852f538b9f8d5e7d67fe5a4f6080396d8b10034.

commit 96d8995dc1f517fb01b481736273767509f76c47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:10 2015 +0300

Revert "Add assertion in liveliness computation"

This reverts commit ed14019e8c0c852480eebc6fc552d8c3d939dce1.

commit 0649d7bfef152e6cc8e67b922534e9946c634d9c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:07 2015 +0300

Revert "Fixed invalid live-range detection"

This reverts commit 54f367ee2a2e4cb7c952b17915c226fdc56038ab.

commit dfe8f3851f6b04595eb089323e3492115a59363e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:04 2015 +0300

Revert "Add test guaranteeing that loop vars are only freed after potential return type exceptions"

This reverts commit f5db5a558d550bf441373febebbb02f3884209d1.

commit 52a94aad6f48a199358cc07f7e4f56bb73050504
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:01 2015 +0300

Revert "Fixed exception habdling on "return" statement."

This reverts commit 17c5315bdf8f8087979aeb55f6d3a512ba197cf5.

commit 6e90ad7331901711e89c2ceb2bcab5023e5cee60
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:58 2015 +0300

Revert "Fix too early terminated temporary range with break/cont/goto"

This reverts commit cc876c04b420589cb1f62b650d0c0e24975dd4af.

commit 7b766e44b1970e4031f75109c302c07ead2c05cb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:55 2015 +0300

Revert "Fixed exception catching on break/continue"

This reverts commit 8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d.

# a1a83bf5 07-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Switch code on thrown TypeError and ParseError to 0, update related tests

# b3a4c050 07-Jul-2015 Nikita Popov <nikic@php.net>

Remove loop_var_stack

Instead add a loop_var member to brk_cont_element. Now that
brk_cont is compile-time the distinction is no longer necessary.

Also drops brk_cont.start, check the loop_var op_type instead.

# 29c3cd44 07-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Allow NULL for exception_ce

# 1a0ddf98 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Switch code on thrown Errors to 0, update related tests

# 22c38b2e 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Remove need to pass error level

# 5a99c07e 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Enable throwing custom exceptions from errors

# ed1b6487 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Switch position of ce in exception ce variable names

# f9e9d3a4 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Cleanup exception ce API

Removed recently added functions to get Error ce's and marked the old functions
fetching default_exception_ce and error_exception_ce as deprecated.

# 7aa76271 30-Jun-2015 Dmitry Stogov <dmitry@zend.com>

Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).

# e76cf843 29-May-2015 Anatol Belski <ab@php.net>

fix windows version constants initialization with nts

# d042d088 16-May-2015 Aaron Piotrowski <aaron@trowski.com>

Remodel exceptions based on Throwable interface

Added Throwable interface that exceptions must
implement in order to be thrown. BaseException
was removed, EngineException renamed to
Error, and TypeException and ParseException
renamed to TypeError and ParseError. Exception
and Error no longer extend a common base
class, rather they both implement the Throwable

# 0381c1b7 20-Apr-2015 Nikita Popov <nikic@php.net>

Fixed bug #69388

Renamed compiler_context to oparray_context. Introduced per-file
file_context. Moved import tables into the file_context.

context_stack no longer exists, instead keeping backups of contexts
on C stack. Same for file contexts.

TODO: Move more things out of CG into file_context. There should be
a number of other things that we should not try to reuse in nested

# aef96d51 16-Apr-2015 Nikita Popov <nikic@php.net>

Partially enable leak reports for objects

Cycle leaks are currently not reported, because this needs further

The last GC run has been moved to run earlier (before the object
store free), so that array cycles that hold references to objects
don't show up as leaks. Fingers crossed that this doesn't adversely
affect anything else.

# dc764bf6 15-Apr-2015 Nikita Popov <nikic@php.net>

Use object apply count in var_dump / print_r

Instead of using the array apply count on the debug_info array, use
the object apply count for recursion detection when dumping. This
handles recursion in a more generic way and does not require each
debug_info handler to deal with this.

This allows returning a temporary debug_info array, instead of
having to store it in the object (thus delaying destruction of the

Switch SPL debug_info handlers to use a temporary array.

# 5e8133f4 10-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Squashed commit of the following:

commit 2399fc84c541da9c2176c5b7f6dd039a3c84dc64
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:38:08 2015 +0300

Removed useless assignment

commit 796b6338174348eee0d74a67706d77b7ce1a60c3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:35:31 2015 +0300

Fixed execution with overriden zend_execute_ex()

commit 4a9fb125aa999059f8bc42ebb6ee573c7866b35b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 02:02:58 2015 +0300

Fixed executor without global registers

commit d456c30e00589ccda35a4b57ae903ef2d3c07d95
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 01:30:35 2015 +0300

Restored original behavior for tests/classes/__call_004.phpt

commit 479646d37fef050536f1afb12b082618f1f1a3d0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:32:17 2015 +0300

Fixed test. We don't keep stack frame for fake function anymore.

commit 9ae61e33e24b2c811d4ab1ca4ab22847c64a780e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:30:09 2015 +0300


commit 0a8403a2a0c27aa3db271774f8559739a6b8400e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:05:43 2015 +0300

Generalize API to allow reuse EG(trampline) for other purposes.

commit 4ea0525c10554e36185a0b8b6303106813b6a1c2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 23:22:25 2015 +0300

Reuse EG(proxy_call_op) for all proxy. Move proxy related functions from zend_objects_API to zend_object_handlers.

commit 529bf737ca388ad56fb4ae20ccb81e6276f25ec0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 21:42:23 2015 +0300

Accurate use of proxy_call

commit 5d62837d5ba3855743fe1981786ebd65d9da0b63
Merge: 83e749f 690843f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:40:00 2015 +0300

Merge branch 'master' into opcodefy-call

* master:
Fixed GOTO executor
Fixed typo
Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of itterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.

commit 83e749ff3b6623e39b236a72e9b907d5b788ae5e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:39:10 2015 +0300


commit 0c829afc534e6d5ff27a0dea3a4815da303bd1ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 15:14:49 2015 +0300

Reverted white-space changes

commit df65144488afa3e9020d75e1ada5529b138afc5a
Merge: 5fd2f97 97756d9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 14:37:07 2015 +0300

Merge branch 'opcodefy-call' of github.com:laruence/php-src into opcodefy-call

* 'opcodefy-call' of github.com:laruence/php-src:
Ready for PR
Fixed static call
Improve performance by using prealloated op_arrray
Respect called_scope
Support internal magical __call/__callStatic
opcode-fy magical __callStatic
Opcode-fy magical __call

commit 97756d9190e07a072a7b48135304dc25a964845f
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:07:59 2015 +0800

Ready for PR

commit 74f993084627061e783645a866390b68e2981698
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:03:00 2015 +0800

Fixed static call

commit ec1d9eb592db0c3b7b0e3d21e7f445ed8bccfd4d
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 18:23:17 2015 +0800

Improve performance by using prealloated op_arrray

commit df7fbbf949c99f2c5ae3da2a1199235651c7cc82
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 15:10:02 2015 +0800

Respect called_scope

commit 769d1d59fb48b6f7f93d7412eefbf26135fa3e59
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 12:19:23 2015 +0800

Support internal magical __call/__callStatic

commit a980fedd5b0e0683713dd4f6eaad62adf4b4732f
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 18:35:41 2015 +0800

opcode-fy magical __callStatic

commit 73855f7d53baa2efc2b8a88314f51c784c81b59d
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 14:21:55 2015 +0800

Opcode-fy magical __call

# 5fd2f975 09-Apr-2015 Xinchen Hui <laruence@php.net>

Unnecessary UNDEF

# 122d7596 02-Apr-2015 Nikita Popov <nikic@php.net>

Always throw TypeException on throwing zpp failures

Introduces a ZEND_PARSE_PARAMS_THROW flag for zpp, which forces to
report FAILURE errors using a TypeException instead of a Warning,
like it would happen in strict mode.

Adds a zend_parse_parameters_throw() convenience function, which
invokes zpp with this flag.

Converts all cases I could identify, where we currently have
throwing zpp usage in constructors and replaces them with this API.
Error handling is still replaced to EH_THROW in some cases to handle
other, domain-specific errors in constructors.

# a978a5eb 05-Apr-2015 Ferenc Kovacs <tyrael@php.net>

fix build

# 92324b27 05-Apr-2015 Anatol Belski <ab@php.net>

fix nts windows_version_info and reorganize

# f51a9c71 04-Apr-2015 Anatol Belski <ab@php.net>

initialize EG(windows_version_info)

there are more places refering to this, but seems it was never

# a8bf1c5d 21-Mar-2015 Nikita Popov <nikic@php.net>

Throw ParseException from lexer

Primarily to avoid getting fatal errors from token_get_all().

Implemented using a magic E_ERROR token, which the lexer emits to
force a parser failure.

# e8672dee 31-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Convert "Unsupported operands" fatal error into EngineException (exceptions can't be thrown at compile-time yet, so unsuported operands in constant expressions are still lead to fatal error).

# 7044f9c6 19-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Refactor as to not use call info, but add the flag to the op_array.

# 0529eeb4 18-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Fix executor issue with ignoring strict types, which cleans up a bunch of errors. Additionally fix the expected error of 2 unrelated tests that was caused by a change to the core error messages

# 7feebead 18-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Refactor error implementation significantly to centralize error mode behavior. Add zend_internal_type_error() function

# 1c94ff05 09-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Implement engine exceptions

RFC: https://wiki.php.net/rfc/engine_exceptions_for_php7

Pending changes regarding naming of BaseException and whether it
should be an interface.

# fd5a756a 05-Mar-2015 Xinchen Hui <laruence@php.net>

Revive Zend Signals handler (and fixed bug #61083)

# 2fa8d67a 03-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Use zend_string* instead of char* for opened_patch handling. Avoid reallocations and improve string reuse.

# 9a20323e 01-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Improved assert() according to expectations RFC.

See https://wiki.php.net/rfc/expectations

Squashed commit of the following:

commit 3f3651a7870738e35ec541e53b53069152135b24
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Mar 2 11:56:33 2015 +0300

opcode 137 is used for ZEND_OP_DATA and con't be reused for ZEND_ASSERT_CHECK

commit ca8ecabf2a5f97f9116839c33396c9a7037e4368
Merge: 24328ac 9dac923
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Mar 2 10:49:23 2015 +0300

Merge branch 'master' into assert

* master:
Update NEWS
Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize)
windows only test
Align entries format
Align entries format for 5.6.7
Align entries format for 5.5.23
Bump header year
Fixed bug #69144 (strtr not replacing with partly matching replace pairs)
Fixed test?
Revert mktime()/gmmktime()'s arginfo
Update NEWS
Fixed bug #69141 Missing arguments in reflection info for some builtin functions
Add NEWS entry
Remove useless date warning
Fix ARG_INFO for levenshtein
Fix ARG_INFO for levenshtein
fix dir separator in tests
Update NEWS
Fixed bug #69085 (SoapClient's __call() type confusion through unserialize()).

commit 24328ac03f79a0f3b19be7411bf9e173f392abda
Merge: 021fd94 1cdee9a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Feb 27 15:57:13 2015 +0300

Merge branch 'master' into assert

* master:
Fixed C++ support
Fixed bug #69115 crash in mail
Update NEWs
Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build)
Update News
Fixed bug #69125 (Array numeric string as key)
fix bug#68942's patch
Fixed ability to build unspecialized executor
Fixed bug #69124 (method name could not be used when by ref)
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().

commit 021fd94ed1d692d212e6e30c6c1a9767c3f16f7f
Merge: 49963eb ace1f82
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Feb 26 11:26:03 2015 +0300

Merge branch 'master' into assert

* master: (59 commits)
Improved ASSIGN_DIM handler
Don't inline slow path
Revert a part committted by mistake
Fixed compilation warnings
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
better name
Improve fix for #69038
Update NEWs
Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage)
Added specialized versions of DO_FCALL handler: DO_ICALL - for internal functions DO_UCALL - for user functions DO_FCALL_BY_NAME - plain, most probably user, funcstions (not methods)
Use cache_slot offsets instead of indexes (simplify run-time instructions)
Support list($a, $b) = $a
Avoid unnecassary check
Make zend_array_destroy() to free the corresponding zend_array
Eliminate check on the fast path
Make current() and key() receive argument by value.
Use Firebird default home folder, replace Interbase with Firebird
Updated NEWS
updated NEWS


commit 49963ebf9d2bcd6d2670203dd72884f6ba6c8a4b
Merge: 07b1f92 6b77959
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Feb 19 11:13:08 2015 +0300

Merge branch 'master' into assert

* master:
Implemented AST pretty-printer
update NEWS to match the actual stuff in 5.6.6
update NEWS to match the actual stuff in 5.5.22
update NEWS(add missing entry for the enchant fix, and reorder the entries a bit)
fix typo in bug#
update NEWS
fix email format
update NEWS
update 5.6.6 release date in NEWS
Fix bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI)
fix test
fix test
fix test
Fixed bug #65593 (Segfault when calling ob_start from output buffering callback)
Updated NEWS
add CVE
5.4.39 next
Fix associativity to match Perl
Blast off to space.


commit 07b1f92ed662f6fa9309e679b83aff328362c98b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 23:06:32 2015 +0300

fixed pretty-printer (support for "elseif")

commit 5a976c8d85078502b48379996ab066e57533a0c3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 19:50:08 2015 +0300

Fixed vaeious ptetty-printer issues

commit 69491e8e8e692030b0585aab485146906c0fedaf
Merge: 8473157 3ddc246
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 10:18:32 2015 +0300

Merge branch 'master' into assert

* master:
Remove unnecessary resource checks in openssl ext
JSON is now maintained

commit 8473157fbb12d03fff8d5b602865a4b667522a4d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 10:17:26 2015 +0300

Fixed typo and white spaces

commit 96de5ffc8d604df9797d0141ae5ad9c15e1d6c32
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 00:28:39 2015 +0300

Fixed assert() in namesapaces

commit 5eba069c28e7b6590618707e0b21cdb2dd62a192
Merge: 4a2d9c0 d428bf2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Feb 17 22:45:55 2015 +0300

Merge branch 'master' into assert

* master: (25 commits)
improve debugability in TS debug builds
More UPGRADING, in particular on foreach
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves) for master
Replace var is introduced
abstain from using xmlCleanupParser
fix TS build
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
update news
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
Port for for bug #68552
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
Update NEWS
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves)
Don't read the local php.ini when Generating Phar When building phar shared, you can end up loading a previous phar.so that isn't compatible with the php cli being used to generate Phar here.
- Fixed bug #67827 (broken detection of system crypt sha256/sha512 support)
Delete json outdated package.xml
made ZEND_TSRMLS_CACHE_* macros look like function calls
- Fix merge
- Fixed bug #67427 (SoapServer cannot handle large messages) patch by: brandt at docoloc dot de

commit 4a2d9c0953dccd9e78ebee9291e1213419eb9136
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Feb 17 22:45:10 2015 +0300

Implemented AST pretty-printer to capture expression passed to assert()

commit 7a059b66d51a65159801bd826346721325b89fec
Merge: 9973df7 3892eba
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Feb 16 18:42:28 2015 +0300

Merge branch 'expect' of github.com:krakjoe/php-src into assert

* 'expect' of github.com:krakjoe/php-src:
import expect


commit 3892eba2bf56a7699453855c995404106322718d
Author: krakjoe <joe.watkins@live.co.uk>
Date: Sun Feb 2 12:49:35 2014 +0000

import expect

# e3416beb 21-Feb-2015 Xinchen Hui <laruence@php.net>

Fixed segfault because resource is freed prematurely

# 4629f897 21-Feb-2015 Xinchen Hui <laruence@php.net>

Cleanup globals initialization

No needs explicit inititlize zero for globals in no-zts build.
executor_globals should be initialized in zend side.

# af3ca745 16-Feb-2015 Anatol Belski <ab@php.net>

made ZEND_TSRMLS_CACHE_* macros look like function calls

which also comply with the current semantics for such macros

# e10e151e 13-Feb-2015 Dmitry Stogov <dmitry@zend.com>

Merged zend_array and HashTable into the single data structure.
Now each HashTable is also zend_array, so it's refcounted and may be a subject for Copy on Write
zend_array_dup() was changed to allocate and return HashTable, instead of taking preallocated HashTable as argument.

# e5d8a142 13-Feb-2015 Xinchen Hui <laruence@php.net>

Revert "Cleanup globals initialization"

This reverts commit 309e90638dac527077a2d81ceeebfba189251537.

# 309e9063 13-Feb-2015 Xinchen Hui <laruence@php.net>

Cleanup globals initialization

# 594c220d 07-Feb-2015 Xinchen Hui <laruence@gmail.com>

Fixed issue #1041 (Fix build in OSX with --enable-dtrace)

# 3b3308a7 06-Feb-2015 Xinchen Hui <laruence@gmail.com>

Further fix for bug #68987

# 57496c38 06-Feb-2015 Dmitry Stogov <dmitry@zend.com>

This should fix compilation on OSX (bug #68987 Failed to compile zend.c with gcc-4.9.2)

# eb6dc9db 02-Dec-2014 Adam Harvey <aharvey@php.net>

Make gc_collect_cycles hookable.

# fc33f52d 15-Jan-2015 Xinchen Hui <laruence@php.net>

bump year

# 0579e827 15-Jan-2015 Xinchen Hui <laruence@php.net>

bump year

# 73c1be26 15-Jan-2015 Xinchen Hui <laruence@php.net>

Bump year

# b7a7b1a6 03-Jan-2015 Stanislav Malyshev <stas@php.net>

trailing whitespace removal

# e46852d2 23-Dec-2014 Anatol Belski <ab@php.net>

better fix for script encoding ini

# e2e5ed06 23-Dec-2014 Anatol Belski <ab@php.net>

fix NULL deref when the script encoding wasn't previously set

# 5ea8c3ce 16-Dec-2014 Anatol Belski <ab@php.net>

don't need this in nts mode

# 9e4310ee 16-Dec-2014 Anatol Belski <ab@php.net>

reworked ini dtor

# eb629b70 16-Dec-2014 Anatol Belski <ab@php.net>

free the right globals

That's the same as in the previous commit. In the TS mode the tsrm
cache pointer might be unavailable or point to a wrong thread, so
the exact globals passed should be freed.

# bdeb220f 13-Dec-2014 Anatol Belski <ab@php.net>

first shot remove TSRMLS_* things

# 3affc0e8 12-Dec-2014 Anatol Belski <ab@php.net>

Fixed bug #68583 Crash in timeout thread

This replaces the GUI element used for execution timeout handling
on Windows. Instead a timer queue technique is used, which is indeed
a thread pool. A timer queue timer is a lightweight object handled
but that thread pool and the timer thread spends most of the time
sleeping and waiting for an alert.

Please note also that this introduces neither binary nor source
breach. The custom timeout thread functions are deleted, however
they was not exported throug DLL, so couldn't be used by any
external code. As well they couldn't be used anywhere in the core
except in executor api, because those custom timeout thread
functions they used to operate on static variables which would
be overwritten (and that would blow).

So instead a relatively modern technique is used for the timeout
handling. It's still not perfect because the executor still has to
check EX(timed_out). This can be a topic for an improvement in
master. But brobably can be tricky as currently it seems to be not
possible to signal an individual thread. Also note another issue
that static variables aren't thread safe, but the current timer
implementation is.

# 944d2c65 22-Oct-2014 Anatol Belski <ab@php.net>

fix datatype mismatches

# 8aeffdd7 15-Oct-2014 Anatol Belski <ab@php.net>

moved most of the core to use static tsrm ls cache pointer

plus apache2handler, cli and cgi

# c00424e4 15-Oct-2014 Anatol Belski <ab@php.net>

bring back all the TSRMLS_FETCH() stuff

for better comparability with the mainstream

# c96a6b44 12-Oct-2014 Anatol Belski <ab@php.net>

DLL export several APIs needed for phpdbg

# df79b9b2 09-Oct-2014 Nikita Popov <nikic@php.net>

Update get_class_name semantics

* get_class_name is now only used for displaying the class name
in debugging functions like var_dump, print_r, etc. It is no
longer used in get_class() etc.
* As it is no longer used in get_parent_class() the parent
argument is now gone. This also fixes incorrect parent classes
being reported in COM.
* get_class_name is now always required (previously some places
made it optional and some required it) and is also required
to return a non-NULL value.
* Remove zend_get_object_classname. This also fixes a number of
potential leaks due to incorrect usage of this function.

# 741bf0ee 06-Oct-2014 Anatol Belski <ab@php.net>

fix the empty_strings SAPI shutdown leak in TS build

still the NTS variant is somewhat different as it needs
zend_new_interned_string_int because the normal callbacks might
be not initialized, but at least no leaks anymore and some more

# 72b34e13 06-Oct-2014 Anatol Belski <ab@php.net>

fix leaking the empty_string in TS builds

# e756333b 09-Sep-2014 Nikita Popov <nikic@php.net>

Remove <% and <script language="php"> tags

As per https://wiki.php.net/rfc/remove_alternative_php_tags.

* <% opening tag
* %> closing tag
* <%= short opening tag
* /<script\s+language\s*=\s*(php|"php"|'php')\s*>/i opening tag
* /</script>/i closing tag
* asp_tags ini directive

# 76081df1 01-Oct-2014 Anatol Belski <ab@php.net>

using pointer to the tsrm ls cache instead of a function call

yet another approach

# 06d0230a 26-Sep-2014 Anatol Belski <ab@php.net>


# d11734b4 25-Sep-2014 Anatol Belski <ab@php.net>

reworked the patch, less new stuff but worky

TLS is already used in TSRM, the way exporting the tsrm cache through
a thread local variable is not portable. Additionally, the current
patch suffers from bugs which are hard to find, but prevent it to
be worky with apache. What is done here is mainly uses the idea
from the RFC patch, but

- __thread variable is removed
- offset math and declarations are removed
- extra macros and definitions are removed

What is done merely is

- use an inline function to access the tsrm cache. The function uses
the portable tsrm_tls_get macro which is cheap
- all the TSRM_* macros are set to placebo. Thus this opens the way
remove them later

Except that, the logic is old. TSRMLS_FETCH will have to be done once
per thread, then tsrm_get_ls_cache() can be used. Things seeming to be
worky are cli, cli server and apache. I also tried to enable bz2
shared and it has worked out of the box. The change is yet minimal
diffing to the current master bus is a worky start, IMHO. Though will
have to recheck the other previously done SAPIs - embed and cgi.

The offsets can be added to the tsrm_resource_type struct, then
it'll not be needed to declare them in the userspace. Even the
"done" member type can be changed to int16 or smaller, then adding
the offset as int16 will not change the struct size. As well on the
todo might be removing the hashed storage, thread_id != thread_id and
linked list logic in favour of the explicit TLS operations.

# 22fbfdfb 22-Sep-2014 Xinchen Hui <laruence@php.net>

Simply make_printable_zval

it's possible to remove make_printable_zval at all
but it will be a API break

# b3aebda9 20-Sep-2014 krakjoe <joe.watkins@live.co.uk>

native tls initial patch

# 3e71f5ff 20-Sep-2014 Xinchen Hui <laruence@gmail.com>

Fixed built on OSX

# bccc6531 19-Sep-2014 Dmitry Stogov <dmitry@zend.com>

Avoid double IS_INTERNED() check

# 21514b0d 18-Sep-2014 Dmitry Stogov <dmitry@zend.com>

Fix for Clang

# 761e347b 18-Sep-2014 Anatol Belski <ab@php.net>

that's not char * but zend_string *

# fb848ebd 18-Sep-2014 Anatol Belski <ab@php.net>

ups, this is not needed

# e8b497ad 18-Sep-2014 Anatol Belski <ab@php.net>

fix CG(empty_string) init in ZTS

# 079409bb 15-Sep-2014 Nikita Popov <nikic@php.net>

Switch (un)mangle property name to size_t and zend_string

Also use the _ex variants where possible.

# 345b0f44 13-Sep-2014 Nikita Popov <nikic@php.net>

Use more accurate sizeof

This is allocating an array of zval*s, not zval**s.

# 9ee4a40f 08-Sep-2014 Anatol Belski <ab@php.net>

made Visual Studio to understand that zend_error_noreturn() will not return

- windows only, on linux gcc would cause a warning that the function returns,
as no noreturn functions are used
- ZEND_NORETURN works on windows as well now, using __declspec(noreturn),
which is useful for the other cases
- one more function call will be needed, which is not critical for the
error reporting
- the way is open to enable the same for gcc as soon as it's not causing a warning

# d5b0606a 01-Sep-2014 Stanislav Malyshev <stas@php.net>

Reintroduce fix from pull #770 in a PHP 7 way

# 1ff1a0dd 01-Sep-2014 Stanislav Malyshev <stas@php.net>

Revert "Merge branch 'PHP-5.6'"

This reverts commit aaf5689f4d6e523fd78e0291dbbcd78f3ea988dc, reversing
changes made to 481bf25b6ad70fcdc9c10f02b49c86a0bd4a3d0d.

# 88d7ca44 01-Sep-2014 Dmitry Stogov <dmitry@zend.com>

Refactored INI subsystem to use zend_string* instead of char*

# b73bea9c 29-Aug-2014 Nikita Popov <nikic@php.net>

Combine foreach copy / switch cond stacks

Now one common stack to handle both, which stores znodes instead of
full oplines (foreach copy stack) or switch entries (switch cond

Also removed EG(start_op) while at it.

# f2b03701 27-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Use 'const' qualifier for pointrs to code used at run-time (the code must not be changed)

# 32344808 27-Aug-2014 Anatol Belski <ab@php.net>

first show to make 's' work with size_t

# b1f53ca4 27-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Use efree_size() instead of efree() where posible

# b7876e73 26-Aug-2014 Nikita Popov <nikic@php.net>

eval() with parse error uses clean shutdown now

# 59848e3f 25-Aug-2014 Nikita Popov <nikic@php.net>

Remove ZEND_ACC_INTERACTIVE and CG(interactive)

As far as I can discern these are leftovers of the interactive
shell implementation that was used before PHP 5.4. Now the readline
ext makes use of normal eval calls for this.

So, dropping these until there is evidence to the contrary, as they
currently wouldn't work anyway.

# 4d997f63 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 3

# 6f9f0bf2 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 2

# c3e3c98e 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 1

# 70de6180 24-Aug-2014 Anatol Belski <ab@php.net>

fixes to %pd format usage

# 437612f6 23-Aug-2014 Keyur Govande <keyur_govande@yahoo.com>

Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)

# 3f4811c7 22-Aug-2014 krakjoe <joe.watkins@live.co.uk>

fix wrong type causing build error

# 864172d9 16-Aug-2014 Anatol Belski <ab@php.net>

further fixes to ext/standard and zend

# 8ee2a4a9 16-Aug-2014 Anatol Belski <ab@php.net>

first shot on merging the core fro the int64 branch

# c4460dd1 15-Aug-2014 Nikita Popov <nikic@php.net>

Restore old evaluation order

${a()}[b()][c()] = d() will now evaluate in order a, b, c, d.

# 6463bc5b 14-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed mode

# c78a1734 14-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed compilation warnings

# 32314f6b 14-Aug-2014 Keyur Govande <keyur@php.net>

Fix destruction order in zend_shutdown (bug #65463, #66036)

If Apache or a similar SAPI receives a signal during PHP processing
it calls zend_shutdown() without calling shutdown_executor().
#65463: If a module like Gearman or Memcached is loaded,
in the unfixed version it is unloaded by zend_destroy_modules() before the
CG(CLASS_TABLE) is destructed. When CG(CLASS_TABLE) is destructed,
any pointers to methods (specifically around destruction) in the unloaded
module's .so are now dangling and the process segfaults.
#66036: Any subclasses of an internal class like ArrayObject need
to be destructed in order: subclass first and then the internal class. In the
unfixed version zend_shutdown() clears the CG(CLASS_TABLE) from the head
of the list onwards, so internal classes are destructed first and user-defined
classes last. Internal classes are alloc/deallocated with malloc/free while
user-defined classes with emalloc/efree. If there's shared data between them
then efree() could be called instead of free() leading to a seg-fault.

# babeca35 13-Aug-2014 Johannes Schlüter <johannes@php.net>

It's 2014 already, fix copyright year where user visible

Left out all file headers

# dc70139d 11-Aug-2014 krakjoe <joe.watkins@live.co.uk>

update zend_make_printable_zval to take TSRM context

# 4513475a 10-Aug-2014 krakjoe <joe.watkins@live.co.uk>

fix ZTS build

# 4a3e501f 08-Aug-2014 Dmitry Stogov <dmitry@zend.com>


# 4c05bec5 28-Jul-2014 Nikita Popov <nikic@php.net>

Remove some unused compiler globals

# 43b2973e 22-Jul-2014 Nikita Popov <nikic@php.net>

Remove declare_stack

# 9d6e45a0 09-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Changed zend_make_printable_zval() to return "use_copy" instead of additional reference argument.
Improved branch prediction.

# 5aa91be5 07-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Simplify call-frame handling

# 6bf24f4d 04-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data)

# 0a77dcd4 02-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something.

# 63c057e3 02-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Removed EG(opline_ptr) and use corresponding value from EG(current_execute_data)

# 4b09dd69 02-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Removed EG(active_op_array) and use corresponding value from EG(current_execute_data)

# 0427ae08 02-Jun-2014 Dmitry Stogov <dmitry@zend.com>


# fcf42d81 31-May-2014 Nikita Popov <nikic@php.net>

Remove object_stack (mostly)

# b3b616cf 29-May-2014 Dmitry Stogov <dmitry@zend.com>

Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.

# 0ade00c8 25-May-2014 Nikita Popov <nikic@php.net>

Fix print_flat_hash for objects

# 9eb89ddd 23-May-2014 Dmitry Stogov <dmitry@zend.com>

Use optimized zend_array_dup() function. convert zend_hash_num_elements() and zend_hash_next_free_element() into macros.

# 88c550a7 09-May-2014 Xinchen Hui <laruence@php.net>

Added vstrpprintf strpprintf to avoid duplicate string

(the function name maybe improvement)

# 0d5121a3 04-May-2014 Anatol Belski <ab@php.net>

fixed ZEND_DEBUG usage

# 42d4adab 03-May-2014 Nikita Popov <nikic@php.net>

Fix SXE->string cast for __toString in inheriting class

This issue was originally hacked around in zend_make_printable_zval.
I've now moved the overridden __toString() handling into the SXE
cast_object handler, so everything invoking that handler
(zend_make_printable_zval, convert_to_string, zval_get_string,
and various other more obscure usages) see the same behavior.

# 17d027ed 30-Apr-2014 Dmitry Stogov <dmitry@zend.com>


# 4e7cbf3f 25-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Use appropriate macros

# 5864ce8a 22-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Fixed compilation warnings

# 4ed452c1 21-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Convert zval_get_string() into "fast path" macro and "slow path" function

# bda96e3c 21-Apr-2014 Nikita Popov <nikic@php.net>

Use zval_get_string in print_zval and propagate TSRMLS

# 72c287bd 21-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word

# 7652a977 18-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family.

# 050d7e38 15-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Cleanup (1-st round)

# a0690ff2 15-Apr-2014 Xinchen Hui <laruence@gmail.com>

Fixed zend_object_get_t in simpleXML

# 3ce96eab 09-Apr-2014 Nikita Popov <nikic@php.net>

Fix function copying in ZTS

Still doesn't entirely work :/

# 20f2e598 09-Apr-2014 Nikita Popov <nikic@php.net>

Fix ZTS build

This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.

# 76cc99fe 03-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)

# ea85451b 27-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored data structures to keep zend_object* instead of a whole zval in some places

# c6cba554 27-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Use ZVAL_DEREF() macro

# 887189ca 26-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing

# aa5f5530 17-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored EG(active_symbol_table) to be zend_array* instead of HashTable*

# f3a6c30c 07-Mar-2014 Xinchen Hui <laruence@gmail.com>

IS_REFERENCE is unfrequent

# e0f6bae5 04-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Passing symbol_table into user error handlers

# 5e4a97f3 27-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed ASSIGN_OBJ with IS_TMP and IS_CONST operand

# d062fb33 26-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Generator related fixes

# bb27b4ac 25-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed refcounting

# 6b8253af 25-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed user error handler invocation (temporary disabled symbol table passing)

# 820184dd 25-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed converting IS_REFERENCE to string

# e687939f 24-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed wrong array to string convertion

# bdeaf2ef 21-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Wrong string destruction

# 2b9b9afa 17-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# 4fc459e4 15-Feb-2014 Anatol Belski <ab@php.net>

backported ticks function signature

# 17bf59f8 14-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# 4e66abad 12-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete) - refactored return_value handling

# f4cfaf36 10-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# c081ce62 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# 47c90277 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# c0d060f5 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# ea7a7070 23-Dec-2013 Anatol Belski <ab@php.net>

removed outdated IsDebuggerPresent declaration

This piece of code seems to retain compatibility with some windows
versions before 2000. Today it's not relevant anymore and only
produces a warning C4273 because of the conflicting prototype. In
VC9 the declaration is present in winbase.h:4142, but available
is it already in winxp. Here's the doc link

# f156e684 23-Dec-2013 Anatol Belski <ab@php.net>

removed outdated IsDebuggerPresent declaration

This piece of code seems to retain compatibility with some windows
versions before 2000. Today it's not relevant anymore and only
produces a warning C4273 because of the conflicting prototype. In
VC9 the declaration is present in winbase.h:4142, but available
is it already in winxp. Here's the doc link

# f58d0b35 19-Dec-2013 Anatol Belski <ab@php.net>

massive update semantical LONG vs INT replacements

# b1abe4ca 18-Dec-2013 Anatol Belski <ab@php.net>

mass replacement for zend_size_t/php_size_t

# 74aea4e4 18-Dec-2013 Anatol Belski <ab@php.net>

fix after merge

# aed4b086 18-Dec-2013 Kalle Sommer Nielsen <kalle@php.net>

Eliminate the TSRMLS_FETCH() calls in the ticks functions and hook

# a73c8812 24-Nov-2013 Anatol Belski <ab@php.net>

one more walk through in Zend, fixed things being overseen

# 1a1e83a5 17-Nov-2013 krakjoe <joe.watkins@live.co.uk>

export more Zend API

# f046189e 17-Nov-2013 krakjoe <joe.watkins@live.co.uk>

export more Zend API

# de99f93a 07-Nov-2013 Anatol Belski <ab@php.net>

fix datatype for hash vars

# 699f07ba 02-Nov-2013 Anatol Belski <ab@php.net>

limit virtual_cwd_activate() duplicated call to ZTS only

# 9df78bf9 01-Nov-2013 Anatol Belski <ab@php.net>

reverted the previous commit, both calls are needed in TS mode

# 6aedfac7 31-Oct-2013 Anatol Belski <ab@php.net>

virtual_cwd_activate() should be called only in one place

# cf6ab0e9 17-Oct-2013 Anatol Belski <ab@php.net>

applied and fixed the original patch

initial work on the patch import done

# baf3937c 17-Jul-2013 Anatol Belski <ab@php.net>

fixes to zend

# e6f90ecc 02-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

It compiles. Sort-of. In a way. Yeah. But nothing works. Sigh

# c224e239 01-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Re-do a lot of it using a conditional define, and legacy type information for APIs

# f0c92656 29-Sep-2013 Nikita Popov <nikic@php.net>

Fix bug #65322: compile time errors won't trigger auto loading

Also fixes duplicate bugs #54054 and #42098.

Furthermore this fixes incorrect error messages thrown from code
running inside an error handler when a compilation is in progress.
The error file and line are now correctly associated with the
file/line of the executor, rather than the compiler.

# 14f57320 19-Aug-2013 Stanislav Malyshev <stas@php.net>

Fix bug #65470 Segmentation fault in zend_error() with --enable-dtrace

# f4dc2240 14-Aug-2013 Xinchen Hui <laruence@php.net>

Fixed #65431 (Discarded qualifiers from pointer target warnings when using --enable-dtrace) by Sixd

# d4c546b9 17-Jul-2013 Anatol Belski <ab@php.net>

fixes to zend

# 6e008d40 02-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

It compiles. Sort-of. In a way. Yeah. But nothing works. Sigh

# ea58b542 01-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Re-do a lot of it using a conditional define, and legacy type information for APIs

# 62059c16 14-Jan-2013 Xinchen Hui <laruence@php.net>

Fixed bug #63980 (object members get trimmed by zero bytes)

# 36e19c9c 02-Jan-2013 Stanislav Malyshev <stas@php.net>

Bug #43177: If an eval() has a parse error, the overall exit status and return code should not be affected.

Without this fix, a webpage using eval() may return code 500. That might display
fine and the 500 go unnoticed, but using AJAX or wget, the 500 will cause problems.

# a666285b 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 0a7395e0 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 831fbcf3 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 70f83f35 30-Nov-2012 Dmitry Stogov <dmitry@zend.com>

. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more.
. Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.

# b29dc146 06-Sep-2012 Dmitry Stogov <dmitry@zend.com>

- Fixed bug #61767 (Shutdown functions not called in certain error situation)
- Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function)

# 75f6c8d4 11-Aug-2012 Xinchen Hui <laruence@php.net>

Revert "zend_make_printable_zval choses cast_object over __toString"

This reverts commit a5dfd414941953c282bb68f6b08685252ca93a1a.

# 7b307fb9 12-Aug-2012 Xinchen Hui <laruence@php.net>

Fixed bug #62328 (implementing __toString and a cast to string fails)

__toString should has a high priority

# a5dfd414 10-Aug-2012 Leigh <leight@gmail.com>

zend_make_printable_zval choses cast_object over __toString


Added a check to see if the object implements a __toString magic
method. This should be called instead of the cast_object method of
built-in classes when defined.

# b4b3a65f 25-Jul-2012 Xinchen Hui <laruence@php.net>

Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file)

# 72f19e9a 03-May-2012 Xinchen Hui <laruence@php.net>

Fixed bug #61922 (ZTS build doesn't accept zend.script_encoding config)

# e4ca0ed0 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# 8775a375 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# 4e198252 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# d81ea16e 21-Oct-2011 Stanislav Malyshev <stas@php.net>

Changed silent conversion of array to string to produce a notice. (Patrick)

# ed12ebc7 21-Oct-2011 Stanislav Malyshev <stas@php.net>

Changed silent conversion of array to string to produce a notice. (Patrick)

# 750e4e10 14-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #55578 (Segfault on implode/concat)

# 65cb18dd 14-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #55578 (Segfault on implode/concat)

# 4a25a774 13-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed ZE specific compile warnings (Bug #55629)

# e43ff135 13-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed ZE specific compile warnings (Bug #55629)

# 08a499f1 08-Aug-2011 Pierrick Charron <pierrick@php.net>

Use snprintf and strncat to make the static analyzers happy

# ed7b3e70 08-Aug-2011 Pierrick Charron <pierrick@php.net>

Use snprintf and strncat to make the static analyzers happy

# 6ea19be4 08-Aug-2011 Pierrick Charron <pierrick@php.net>

Use snprintf and strncat to make the static analyzers happy

# 99cb211c 07-Aug-2011 Rasmus Lerdorf <rasmus@php.net>

Use snprintf here instead to make the static analyzers happy.

# 50d67ef7 07-Aug-2011 Rasmus Lerdorf <rasmus@php.net>

Use snprintf here instead to make the static analyzers happy.

# 0ea2ef12 02-Aug-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off)

# 6803a389 02-Aug-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off)

# a550566c 02-Aug-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off)

# 34d93f0c 22-Jun-2011 Ilia Alshanetsky <iliaa@php.net>

Zend Signal Handling

# f7571465 07-Jun-2011 Felipe Pena <felipe@php.net>

- Fixed bug #55007 (compiler fail after previous fail)

# 08b3d76c 07-Jun-2011 Felipe Pena <felipe@php.net>

- Fixed bug #55007 (compiler fail after previous fail)

# bf07dcd5 07-Jun-2011 Felipe Pena <felipe@php.net>

- Fixed bug #55007 (compiler fail after previous fail)

# 93987513 02-Jun-2011 Ilia Alshanetsky <iliaa@php.net>

Zend Signal Handling (see RFC: https://wiki.php.net/rfc/zendsignals)
This needs to go into 5.4 as well, but will wait for Pierre to review win32 situation

# Patch by Lucas Nealan, Arnaud Le Blanc, Brian Shire & Ilia Alshanetsky

# 927bf09c 01-Jan-2011 Felipe Pena <felipe@php.net>

- Year++

# 0203cc3d 01-Jan-2011 Felipe Pena <felipe@php.net>

- Year++

# ae0e5a0c 27-Dec-2010 Antony Dovgal <tony2001@php.net>

initialize script_encoding_list (reported by Gustavo Lopes)

# bbf3d43c 19-Dec-2010 Moriyoshi Koizumi <moriyoshi@php.net>

* Refactor zend_multibyte facility.
Now mbstring.script_encoding is superseded by zend.script_encoding.

# ab93d8c6 24-Nov-2010 Dmitry Stogov <dmitry@php.net>

Added multibyte suppport by default. Previosly php had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled throug zend.multibyte directive in php.ini

# ee4f5ac1 22-Sep-2010 Felipe Pena <felipe@php.net>

- Fixed EG(saved_fpu_cw) initialization

# 25710a40 10-Jul-2010 Felipe Pena <felipe@php.net>

- Added EG(saved_fpu_cw_ptr) initialization

# f0c8366a 08-Jul-2010 Dmitry Stogov <dmitry@php.net>

- use interned strings for auto globals
- $GLOBALS became a JIT autoglobal, so it's initialized only if used (this may affect opcode caches)

# 1a1178a6 06-Jul-2010 Dmitry Stogov <dmitry@php.net>

eliminated unnecessary iterations during request startup/shutdown

# f23e8576 24-May-2010 Dmitry Stogov <dmitry@php.net>

Fixed ZTS build

# 0a6bcd44 26-Apr-2010 Felipe Pena <felipe@php.net>

- Removed allow_call_time_pass_reference (Pierrick)

# ebd12eba 25-Apr-2010 David Soria Parra <dsp@php.net>

Remove unused variable

# 08b9fdc8 24-Apr-2010 David Soria Parra <dsp@php.net>

Add DTrace probes

# dd5c478b 20-Apr-2010 Dmitry Stogov <dmitry@php.net>

Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.

# 94dd8372 20-Apr-2010 Dmitry Stogov <dmitry@php.net>

Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table

# 13a78acb 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# 35e83d2a 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# d2281d1d 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# e21c46ae 27-Oct-2009 David Soria Parra <dsp@php.net>

- Fixed bug #49142 (crash when exception thrown from __tostring())

# e8359d3f 27-Oct-2009 David Soria Parra <dsp@php.net>

- Fixed bug #49142 (crash when exception thrown from __tostring())

# b4ea9bf9 20-Jul-2009 David Soria Parra <dsp@php.net>

- Define HAVE_DTRACE if dtrace is available and ifdef all calls to dtrace probes

# 9491c319 20-Jul-2009 David Soria Parra <dsp@php.net>

- Fix overflow and use our internal vssprintf implementation

# 28f7ed93 19-Jul-2009 David Soria Parra <dsp@php.net>

- Add DTrace support.

# 4fc0630f 16-Jun-2009 Rasmus Lerdorf <rasmus@php.net>

Tweak to make this compile with gcc2

# f9042531 16-Jun-2009 Rasmus Lerdorf <rasmus@php.net>

Tweak to make this compile with gcc2

# 96ea9c6e 16-Jun-2009 Rasmus Lerdorf <rasmus@php.net>

Another tweak to make 5.2 compile on gcc2

# afa4e41c 23-May-2009 Andrei Zmievski <andrei@php.net>

Implement JIT request decoding support for $_GET and $_POST.

# 71b329c7 14-May-2009 Jani Taskinen <jani@php.net>

MFH: Fixed module loading order and made request shutdown functions also to
be loaded in reverse like all other shutdowns are.

# 1033af1c 13-May-2009 Jani Taskinen <jani@php.net>

MFH: Fixed module loading order and made request shutdown functions also to
be loaded in reverse like all other shutdowns are.

# 7f6657c2 13-May-2009 Jani Taskinen <jani@php.net>

- Fixed bug #48247 (PHP crashes on errors during startup)
# This was sum of many little things:
# 1. Wrong assumption made in order_by_dep.awk on the ordering
# (that script was done prior to adding runtime deps..?)
# 2. request shutdown calls weren't done in reverse order like all other
# shutdown funcs are called.
# 3. config0.m4 rename is necessary for keeping things simple.

# 8ecf8ede 26-Mar-2009 Felipe Pena <felipe@php.net>

- Removed:
- UG(unicode) checks
- pcre_cache_entry.unicode_mode
- Changed:
- convert_to_text -> convert_to_unicode
- convert_to_text_ex -> convert_to_unicode_ex

(Felipe, Steph)

# da9405de 26-Mar-2009 Dmitry Stogov <dmitry@php.net>

Fixed bug #47714 (autoloading classes inside exception_handler leads to crashes)

# f1a231d2 26-Mar-2009 Dmitry Stogov <dmitry@php.net>

Fixed bug #47714 (autoloading classes inside exception_handler leads to crashes)

# 83a6de49 18-Mar-2009 Dmitry Stogov <dmitry@php.net>

Fixed floating point mathematic speed degradation (Christian)

# 31c0af24 18-Mar-2009 Dmitry Stogov <dmitry@php.net>

Fixed floating point mathematic speed degradation (Christian)

# c24833c4 18-Feb-2009 Dmitry Stogov <dmitry@php.net>

Fixed zend_print_zval_r_ex() to use the write callback function

# d3d02fbc 18-Feb-2009 Dmitry Stogov <dmitry@php.net>

Fixed zend_print_zval_r_ex() to use the write callback function

# 2aba3684 02-Jan-2009 Marcus Boerger <helly@php.net>

- MFH Catch exceptions in cli -a

# ebd73578 02-Jan-2009 Marcus Boerger <helly@php.net>

- Catch exceptions in cli -a

# 2faea53d 31-Dec-2008 Marcus Boerger <helly@php.net>

- Sync with HEAD, no ability to not start builtin functions

# 63d00f70 31-Dec-2008 Marcus Boerger <helly@php.net>

- MFH Move stdClass registering where it should be

# 4f30873e 31-Dec-2008 Marcus Boerger <helly@php.net>

- Move stdClass registering where it should be

# ef49b9a8 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 3 of 3.

# 08659c2d 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 3 of 3.

# 7f4dc870 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

Bump copyright year, 3 of 3.

# 826cc0dc 30-Dec-2008 Marcus Boerger <helly@php.net>

- MFH Provide a core module that contains all Zend and php/main (in 5.3 incl. stdClass)

# 16e60294 30-Dec-2008 Marcus Boerger <helly@php.net>

- Provide a core module that contains all Zend and php/main stuff but stdClass

# 6e29350f 30-Dec-2008 Marcus Boerger <helly@php.net>

Use a module struct for the built-in functions

# 3e94ce6a 19-Dec-2008 SVN Migration <svn@php.net>

This commit was manufactured by cvs2svn to create tag 'NEWS'.

# 85ab4235 15-Aug-2008 Felipe Pena <felipe@php.net>

- MFH: Removed some TSRMLS_FETCH()s

# 2985b4f9 15-Aug-2008 Felipe Pena <felipe@php.net>

- Removed some TSRMLS_FETCH()s

# 32f9d0e1 14-Aug-2008 Marcus Boerger <helly@php.net>

- MFH Improve exception linking

# 75b08f4a 14-Aug-2008 Marcus Boerger <helly@php.net>

- Improved exception linking

# cf7384aa 12-Aug-2008 Felipe Pena <felipe@php.net>

- MFH: Constness (Added const qualifier to several function parameters)

# a5f867f3 12-Aug-2008 Felipe Pena <felipe@php.net>

- Constness (Added const qualifier to several function parameters)

# aea4ea12 10-Aug-2008 Marcus Boerger <helly@php.net>

- Fix memleak, Zend's built-in functions get copied before we copy all
functions, thus ending up in the name and param definitions copied twice
because zend_register_funciton already copies them.
- Also Be able to deallocate Zend's built-in functions and do so when
- After unregistering Zend's built-in functions only dl() is left and that
seems to be fine.

# d619b57e 21-Jul-2008 Hannes Magnusson <bjori@php.net>

MFH: Add E_USER_DEPRECATED (patch by Lars Strojny)

# 59191653 21-Jul-2008 Hannes Magnusson <bjori@php.net>

Add E_USER_DEPRECATED (patch by Lars Strojny)

# 6cdd85c5 13-Jul-2008 Marcus Boerger <helly@php.net>

- Fix function copying (in TSRM mode)

# c3286f32 29-Jun-2008 Rui Hirokawa <hirokawa@php.net>

implemented again zend-multibyte for PHP 5.3

# bdaa1fe4 20-May-2008 Antony Dovgal <tony2001@php.net>

make sure that converters are not equal to utf8 & ascii before destroying them, or we may end up with double free

# 0d018ee2 19-May-2008 Andrei Zmievski <andrei@php.net>

Crossing the Rubicon: remove the unicode.semantics switch and default
unicode mode to On.

# 1d0f893b 29-Apr-2008 Dmitry Stogov <dmitry@php.net>

Lazy EG(active_symbol_table) initialization

# 2ecf4bb0 29-Apr-2008 Dmitry Stogov <dmitry@php.net>

Lazy EG(active_symbol_table) initialization

# fcaa1c6d 17-Apr-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #44226 (Throwing an exception causes crash in multithreaded SAPI)

# 0699d994 17-Apr-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #44226 (Throwing an exception causes crash in multithreaded SAPI)

# b287ccf5 11-Apr-2008 Dmitry Stogov <dmitry@php.net>

Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not

# d9dd1b9e 11-Apr-2008 Dmitry Stogov <dmitry@php.net>

Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not

# e55a0de4 26-Mar-2008 Scott MacVicar <scottmac@php.net>

MFB 5.3: Rewrite scanner to be based on re2c instead of flex

There are still changes in regards to parsing of Unicode encoded scripts to come.

# b911467d 19-Mar-2008 Rasmus Lerdorf <rasmus@php.net>


Here are the signal changes from the 5.3 branch that optimizes signal
handler registration and switches from longjmp to siglongjmp in order
to make signal mask handling consistent across different UNIX operating

# 10afe5d9 18-Mar-2008 Rasmus Lerdorf <rasmus@php.net>

Make the sigsetjmp change more robust. On systems that don't have
sigsetjmp use setjmp. Windows is of course weird in that it seems to
have sigsetjmp but not sigjmp_buf (??) so force it to use setjmp in

# c9e0781d 18-Mar-2008 Rasmus Lerdorf <rasmus@php.net>

Use sigsetjmp and siglongjmp instead of setjmp/longjmp in order to be
consistent in how we deal with the signal mask. POSIX doesn't specify
what to do with the signal mask in setjmp/longjmp which has resulted in
the signal mask getting saved on *BSD and not getting saved on Linux.
Making the behaviour explicit via sigsetjmp/siglongjmp gives us
consistency and saves expensive sigprocmask() syscalls on *BSD.

# 2b10c53a 18-Mar-2008 Felipe Pena <felipe@php.net>

MFH: Dropped zend.ze1_compatibility_mode

# ea9305c5 18-Mar-2008 Dmitry Stogov <dmitry@php.net>

Implemented concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanila php.
The following pseudo-code explains how it should be used in opcode cache.

function cache_compile_file($filename) {
if (!is_cached($filename)) {
orig_compiler_options = CG(compiler_optins);
$op_array = orig_compile_file($filename);
CG(compiler_options) = orig_copiler_options;
} else {
$op_array = restore_from_cache($filename);

# 8c885b89 18-Mar-2008 Dmitry Stogov <dmitry@php.net>

Implemented concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanila php.
The following pseudo-code explains how it should be used in opcode cache.

function cache_compile_file($filename) {
if (!is_cached($filename)) {
orig_compiler_options = CG(compiler_optins);
$op_array = orig_compile_file($filename);
CG(compiler_options) = orig_copiler_options;
} else {
$op_array = restore_from_cache($filename);

# af316021 16-Mar-2008 Marcus Boerger <helly@php.net>

- Rewrite scanner to be based on re2c instead of flex
The full patch is available as:
This is against php-re2c repository version 98
An older patch against version 97 is available under:

# 3a3ebace 08-Mar-2008 Felipe Pena <felipe@php.net>

MFB: User error handlers no longer catch supressed errors (patch by Etienne Kneuss)

# fd0d44f0 08-Mar-2008 Felipe Pena <felipe@php.net>

User error handlers no longer catch supressed errors (patch by Etienne Kneuss)

# c8b1dbff 05-Mar-2008 Dmitry Stogov <dmitry@php.net>

Optimized require_once() and include_once() by eliminationg open() syscall on se
cond usage.

# ab232458 05-Mar-2008 Dmitry Stogov <dmitry@php.net>

Optimized require_once() and include_once() by eliminationg open() syscall on second usage.

# d3e50265 23-Feb-2008 Marcus Boerger <helly@php.net>

- MFH Add E_DEPRECATED (Lars Strojny, Felipe Pena, Marcus)
[DOC] Finally added deprecation messages

# 6b58678c 23-Feb-2008 Marcus Boerger <helly@php.net>

- Add E_DEPRECATED (Lars Strojny, Felipe Pena, Marcus)

# 13d75ce6 28-Jan-2008 Derick Rethans <derick@php.net>

- MFH: Send the debug info to stderr instead of stdout.

# a99fd6a8 28-Jan-2008 Derick Rethans <derick@php.net>

- Send the debug info to stderr instead of stdout.

# 3bd291e1 24-Jan-2008 Derick Rethans <derick@php.net>

- MFH: Show GC statistics if GC benchmarking is enabled.
#- Discussed this with Dmitry.

# 9613ab7a 24-Jan-2008 Derick Rethans <derick@php.net>

- Show GC statistics if GC benchmarking is enabled.
#- Discussed this with Dmitry.

# 6847c181 22-Jan-2008 Dmitry Stogov <dmitry@php.net>

Added garbage collector

# 71592cec 22-Jan-2008 Dmitry Stogov <dmitry@php.net>

Added garbage collector

# d9f3a130 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 2 of 2.

# d1dded87 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 2 of 2.

# 9b620d50 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

Bump copyright year, 2 of 2.

# b4892511 02-Nov-2007 Jani Taskinen <jani@php.net>

- MFH from HEAD:
. Folding tags
. Parameter parsing
. SPL debug info
. array function improvements (not all yet)
. Improvements to function calling with call_user_* functions
. Improvements to debugging info in var_dump/print_r
# I propably forgot already something but this all was pretty close tied
# to each other so it wasn't possible to do it in parts.

# 52ad6815 02-Nov-2007 Jani Taskinen <jani@php.net>

- WS + CS + use Z macros where possible

# 8ce1211a 11-Oct-2007 Marcus Boerger <helly@php.net>

- MFH debug object helper

# 4b4d634c 07-Oct-2007 Yiduo (David) Wang <davidw@php.net>

MFH: Added macros for managing zval refcounts and is_ref statuses

# 95da0dc5 07-Oct-2007 Yiduo (David) Wang <davidw@php.net>

Added macros for managing zval refcounts and is_ref statuses

# 611abb17 24-Aug-2007 Dmitry Stogov <dmitry@php.net>

Namespace constants

# 226c56fe 21-Jul-2007 Jani Taskinen <jani@php.net>

MFH: Fixed compiler warnings

# 5d0176a3 21-Jul-2007 Jani Taskinen <jani@php.net>

- Fix compile warnings

# 4adec955 10-Jul-2007 Antony Dovgal <tony2001@php.net>

fix folding and ws

# 0e240e2d 28-Apr-2007 Antony Dovgal <tony2001@php.net>

this case is handled in convert_to_unicode(), no need to duplicate it

# 3c6d2617 26-Apr-2007 Antony Dovgal <tony2001@php.net>

MFH: fix build on Tru64

# 5ff22903 26-Apr-2007 Antony Dovgal <tony2001@php.net>

fix build on Tru64

# 79ed194a 15-Mar-2007 Antony Dovgal <tony2001@php.net>

fix #40815 (using strings like "class::func" and static methods in set_exception_handler() might result in crash)

# 99def5ca 15-Mar-2007 Antony Dovgal <tony2001@php.net>

reset the exception if it's still NULL

# 20a40063 24-Feb-2007 Marcus Boerger <helly@php.net>

- avoid sprintf

# 50ea2676 24-Feb-2007 Marcus Boerger <helly@php.net>

- Avoid sprintf, even when checked copy'n'paste or changes lead to errors

# 06af520d 19-Jan-2007 Marcus Boerger <helly@php.net>

- Add Z_OBJDEBUG[_P[P]] helper macros

# 13da6bf4 18-Jan-2007 Marcus Boerger <helly@php.net>

- Add debug_info helper to overloadedobjects

# e5ea244b 12-Jan-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #39969 (ini setting short_open_tag has no effect when using --enable-maintainer-zts)

# 2f586e96 12-Jan-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #39969 (ini setting short_open_tag has no effect when using --enable-maintainer-zts)

# c849a54b 11-Jan-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #35634 (Erroneous "Class declarations may not be nested" error raised). (Carl P. Corliss)

# 2e1a2438 11-Jan-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #35634 (Erroneous "Class declarations may not be nested" error raised). (Carl P. Corliss)

# 4223aa4d 01-Jan-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump year.

# 3717df72 01-Jan-2007 Sebastian Bergmann <sebastian@php.net>

Bump year.

# 7b281be1 28-Dec-2006 Antony Dovgal <tony2001@php.net>

that was not intentional
thanks Nuno

# 28421f4f 28-Dec-2006 Antony Dovgal <tony2001@php.net>


# 52d9ed7b 28-Dec-2006 Antony Dovgal <tony2001@php.net>

nuke dead code

# ff9d0fcc 26-Dec-2006 Ilia Alshanetsky <iliaa@php.net>

is_numeric_string() optimization

# Original Patch by Matt Wilmas

# a87ab2a8 15-Dec-2006 Andrei Zmievski <andrei@php.net>

Make utf8_conv stop on conversion errors when converting to UTF-16.

# 5a15a3c3 11-Dec-2006 Andrei Zmievski <andrei@php.net>

Clarify stream_encoding.

# 4d44a5b7 06-Dec-2006 Antony Dovgal <tony2001@php.net>

MFH: use BSD licensed implementation of double-to-string utilities instead of LGPL one
this patch also fixes thread safety issues in zend_strtod()

# 4789badd 06-Dec-2006 Antony Dovgal <tony2001@php.net>

use BSD licensed implementation of double-to-string utilities instead of LGPL one
this patch also fixes thread safety issues in zend_strtod()

# 63df6688 24-Nov-2006 Antony Dovgal <tony2001@php.net>

initialize CG(literal_type) using ZEND_STR_TYPE macro
add CG(literal_type) initialization in non-ZTS mode
fixes backticks operator

# 57d22421 17-Nov-2006 Dmitry Stogov <dmitry@php.net>

Unicode support.
Now the real UG(unicode) value is available during MINIT calls.

# 15aca2c1 08-Nov-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39344 (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry)

# a84a2eae 08-Nov-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39344 (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry)

# 978dd0fd 03-Nov-2006 Marcus Boerger <helly@php.net>

- MFH: Fix issue with some mangeled properties

# f7600a7b 31-Oct-2006 Marcus Boerger <helly@php.net>

- Fix issue with name mangling

# 15e479e8 19-Oct-2006 Antony Dovgal <tony2001@php.net>

fix invalid write

# de613c8a 17-Oct-2006 Dmitry Stogov <dmitry@php.net>

Fixed incorrect parameter name coping

# 0d7d1b7f 16-Oct-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39140 (Uncaught exception may cause crash)

# 31acd1c2 16-Oct-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39140 (Uncaught exception may cause crash)

# 83e0dbb3 13-Oct-2006 Andrei Zmievski <andrei@php.net>

- Add an extra parameter to the cast_object handler that can be used by
various types as needed.
- Use that parameter to pass a specific converter for

# eed736d0 06-Oct-2006 Sara Golemon <pollita@php.net>

MFH(r-1.376): Preserve EG(return_value_ptr_ptr) when calling zend_execute_scripts()

Reapplying this since it looks like we'll be doing a PHP 5.2 RC6 after all

# fd9b7f67 06-Oct-2006 Sara Golemon <pollita@php.net>

Revert until 5.2's release since we're in RC stage

# 67fac322 05-Oct-2006 Sara Golemon <pollita@php.net>

MFH(r-1.376): Preserve EG(return_value_ptr_ptr) when calling zend_execute_scripts()

# 64806e49 05-Oct-2006 Sara Golemon <pollita@php.net>

Preserve EG(return_value_ptr_ptr) when calling zend_execute_scripts()

# 32a2f348 05-Oct-2006 Andrei Zmievski <andrei@php.net>

This might not be necessary if we clean it all up ourselves.

# d666c054 03-Oct-2006 Sara Golemon <pollita@php.net>

PHP6 Update for get_included_files() and export of path decode for Zend

# 966d8022 29-Sep-2006 Andrei Zmievski <andrei@php.net>

Fix off-by-one error.

# 1efe2165 19-Sep-2006 Andrei Zmievski <andrei@php.net>

Use internal converter name to speed up instantiation.

# 3f56da6e 19-Sep-2006 Sara Golemon <pollita@php.net>

Add INI controlled default stream encoding (unicode.stream_encoding).
Add convenience function stream_defualt_encoding() for setting it.

# d6ee9d48 11-Sep-2006 Antony Dovgal <tony2001@php.net>

MFH: fix #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)

# 398a4542 11-Sep-2006 Antony Dovgal <tony2001@php.net>

fix #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)

# 8405e174 19-Aug-2006 Ilia Alshanetsky <iliaa@php.net>

Use proper write callback

# f5715ee8 08-Aug-2006 Antony Dovgal <tony2001@php.net>

implement zend_unicode_to_string() and zend_string_to_unicode()
part #1 (of 2)

# 519ed8e1 24-Jul-2006 Marcus Boerger <helly@php.net>

- Better fix for #34505 and related, drop zend_unmangle_property_name_ex()

# 617a18fc 24-Jul-2006 Marcus Boerger <helly@php.net>

- Fix for #34505 and repated (improved version of what is in 5.2, 5.1)

# 93094e52 19-Jul-2006 Antony Dovgal <tony2001@php.net>

MFB: fetch tsrm_ls, don't use it uninitialized

# ca7875ab 19-Jul-2006 Antony Dovgal <tony2001@php.net>

fetch tsrm_ls, don't use it uninitialized

# 6687f037 18-Jul-2006 Dmitry Stogov <dmitry@php.net>

New memory manager

# 29ed52ff 18-Jul-2006 Dmitry Stogov <dmitry@php.net>

New memory manager

# 90d62b46 12-Jul-2006 Antony Dovgal <tony2001@php.net>

initialize EG(exit_status)

# 9d576212 12-Jul-2006 Antony Dovgal <tony2001@php.net>

MFH: initialize EG(exit_status) in ZTS mode

# ed77c07a 12-Jul-2006 Andrei Zmievski <andrei@php.net>

Commit Sara's patch for supporting filesystem enccoding in

# 619350f2 28-Jun-2006 Andrei Zmievski <andrei@php.net>

Rename unicode_semantics to unicode.semantics.

# 37972451 20-Jun-2006 Andrei Zmievski <andrei@php.net>

Implement unicode_set_error_handler() / unicode_restore_error_handler().
The error handler doesn't do anything yet. (vaporware)

# 7bbf3532 13-Jun-2006 Stefan Esser <sesser@php.net>

MFH: Added hook for compile_string()

# 08e355e3 13-Jun-2006 Stefan Esser <sesser@php.net>

Added hook for compile_string()

# 9b29f1a3 12-Jun-2006 Marcus Boerger <helly@php.net>

- Fix memleaks (by nuno)

# f1fb77d1 11-Jun-2006 Ilia Alshanetsky <iliaa@php.net>

Make zend_print_zval_r_ex() use the write callback function.

# 51d49585 05-Jun-2006 Zeev Suraski <zeev@php.net>

Restore ZE1 compatibility mode (Zend Engine part - the modules patches
will follow later today)

# 3350fd0f 03-Jun-2006 Marcus Boerger <helly@php.net>

- Revert - Needs further discussing

# c870888d 03-Jun-2006 Marcus Boerger <helly@php.net>

- Printable is supposed to return nativ/unicode depending on ini setting

# 916a3173 02-Jun-2006 Dmitry Stogov <dmitry@php.net>

SAPI globals are destroied at this point and reporting errors about memory leaks
can cause crash.

# 6c61aeb0 02-Jun-2006 Dmitry Stogov <dmitry@php.net>

SAPI globals are destroied at this point and reporting errors about memory leaks can cause crash.

# ab9e070b 19-May-2006 Dmitry Stogov <dmitry@php.net>

Optimized zend_try/zend_catch macroses (eliminated memcpy())

# 14f6b914 19-May-2006 Dmitry Stogov <dmitry@php.net>

Optimized zend_try/zend_catch macroses (eliminated memcpy())

# 2639d7e6 17-May-2006 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #35512 (Lack of read permission on main script results in
E_WARNING rather then E_ERROR).

# 21724432 17-May-2006 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #35512 (Lack of read permission on main script results in
E_WARNING rather then E_ERROR).

# b3c3c6de 12-May-2006 Marcus Boerger <helly@php.net>

- Missing __toString() pieces

# 7412202c 11-May-2006 Antony Dovgal <tony2001@php.net>

no need to destroy the zval here

# d76c5161 10-May-2006 Marcus Boerger <helly@php.net>

- Missing __ToString() sync

# 848c5c76 10-May-2006 Marcus Boerger <helly@php.net>

- Missing __tostring() conversion snippets

# 8a03fc5e 10-May-2006 Antony Dovgal <tony2001@php.net>

add missing parts of E_RECOVERABLE merge

# 637a4042 09-May-2006 Marcus Boerger <helly@php.net>

- MFH as discussed
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
. zend_get_error_exception() -> zend_get_error_exception(TSRMLS_D)
. added __tostring function cache to zend_class_entry
. modified ZEND_ME_MAPPING to support method flags
. added ZEND_MN
. method entries now use prefix "zim_" instead of "zif_"
. drop EG(ze1_compatibility_mode)
. changed cast handler, now without (int should_free):
typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
. changed get_iterator, now receives whether value is by ref:
zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
. added zend_objects_store_add_ref_by_handle
. added zend_objects_store_del_ref_by_handle
. convert_to_explicit_type(pzv, type)

# 7009fb94 04-May-2006 Andrei Zmievski <andrei@php.net>


# 534cad70 04-May-2006 Andrei Zmievski <andrei@php.net>

Add a global ASCII connverter, macros to return single codepoints
(UCHAR32), and zend_unicode_to_ascii() function.

# 16c55fb2 20-Apr-2006 Andrei Zmievski <andrei@php.net>

Move to refcounted implementation of collators.

# 39a5677c 19-Apr-2006 Dmitry Stogov <dmitry@php.net>

Fixed cleanup dependent on uninitialized value

# fd606a8d 31-Mar-2006 Sara Golemon <pollita@php.net>

Add API hooks and unicode.filesystem_encoding for handling unicode
conversions of filename entries.

Normal path conversions will simply use this converter,
Certain other protocols (such as http) which specify a
required character set (utf8), may override the conversion
by defining a path_encode() and/or path_decode() wrapper ops method.

# eea22a0f 30-Mar-2006 Antony Dovgal <tony2001@php.net>

MF51: fix compilation on AIX

# 0fab5aac 30-Mar-2006 Antony Dovgal <tony2001@php.net>

fix compilation on AIX

# 31123e33 27-Mar-2006 Antony Dovgal <tony2001@php.net>

MF51: fix #36878 (error messages are printed even though an exception has been thrown)

# a93bd9d4 27-Mar-2006 Antony Dovgal <tony2001@php.net>

fix #36878 (error messages are printed even though an exception has been thrown)

# 17094284 26-Mar-2006 Andrei Zmievski <andrei@php.net>

Implement to-Unicode conversion error behavior. Note the adjusted APIs.

# 930bde58 26-Mar-2006 Andrei Zmievski <andrei@php.net>

* Remove unicode.from_error_mode and unicode.from_subst_char from INI
* Add unicode_set_error_mode() and unicode_set_subst_char() functions to
manipulate these global settings.

# 1c09ef8e 23-Mar-2006 Andrei Zmievski <andrei@php.net>

Update conversion error behavior and add some new modes.

# The various escape modes are what ICU calls them. We may want to come
# up with different names for UNICODE/ICU/JAVA ones..

# 53e1f2ad 17-Mar-2006 Dmitry Stogov <dmitry@php.net>

Optimization of module unloading (temporary modules can be only in the end)

# c31c9843 17-Mar-2006 Dmitry Stogov <dmitry@php.net>

Optimization of module unloading (temporary modules can be only in the end)

# 9d7ca01c 16-Mar-2006 Dmitry Stogov <dmitry@php.net>

Dropped allow_call_time_pass_reference, the error is maden E_STRICT.

# 7c0e5341 16-Mar-2006 Dmitry Stogov <dmitry@php.net>

Dropped zend.ze1_compatibility_mode

# 7addae50 02-Mar-2006 Marcus Boerger <helly@php.net>

- MFH Use object handler get in the same way as the rest of the engine does

# cd35eae1 02-Mar-2006 Marcus Boerger <helly@php.net>

- Use object handler get in the same way as the rest of the engine does

# 3840e428 01-Mar-2006 Marcus Boerger <helly@php.net>

- MFH Fix string-conversion and const updating

# 9158218d 01-Mar-2006 Marcus Boerger <helly@php.net>

- Must use return as in 5.1 after recursion

# bf086dff 01-Mar-2006 Marcus Boerger <helly@php.net>

- Fix string conversion issues

# e3b7f3fd 26-Feb-2006 Dmitry Stogov <dmitry@php.net>

Unicode support: MS Visual C compatibility

# 0f1209ab 21-Feb-2006 Dmitry Stogov <dmitry@php.net>

Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
- use union "zstr" as char*/UChar* mixture instead of void*
- Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
- nuke int32_t from ZE (not finisned)

# b424a326 20-Feb-2006 Dmitry Stogov <dmitry@php.net>

Preparation for portable string API (use macroses to access zval).

# 09ca61c1 13-Feb-2006 Dmitry Stogov <dmitry@php.net>

Made server wide switch for unicode on/off (according to PDM).

# 5a4b6845 13-Feb-2006 Marcus Boerger <helly@php.net>

- Fix ini unicode_semantics (patch by Brion Vibber)

# d8db0d6a 08-Feb-2006 Andrei Zmievski <andrei@php.net>

unicode_semantics cannot be set on per-request basis

# 227295a4 17-Jan-2006 Dmitry Stogov <dmitry@php.net>

Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.

# 5de7cc31 04-Jan-2006 Andi Gutmans <andi@php.net>

- Update copyright notices to 2006

# 61e93ccf 04-Jan-2006 Andi Gutmans <andi@php.net>

- Update copyright notices to 2006

# feaa2501 01-Dec-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34729 (Crash in ZTS mode under Apache)

# 8768ab94 01-Dec-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34729 (Crash in ZTS mode under Apache)

# 0a5d10a5 30-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35373 (HP-UX "alias not allowed in this configuration")

# c58d4c59 30-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35373 (HP-UX "alias not allowed in this configuration")

# a40a48fb 17-Nov-2005 Marcus Boerger <helly@php.net>

- Move Reflection into its own extension

# a8c6b992 15-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35147 (__HALT_COMPILER() breaks with --enable-zend-multibyte)

# 9e1beb4f 07-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension is compiled as shared)

# 32fe5f2c 07-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension is compiled as shared)

# 8ac7004e 12-Oct-2005 Dmitry Stogov <dmitry@php.net>

Unicode support

# 7c083fcc 05-Oct-2005 Marcus Boerger <helly@php.net>

- Have __toString() be called if available in all places an object is used
as a string.
# Note that "Object #<id>" is no longer afallback for debugging purpose use
# var_dump, which was made for debugging. If you used this to grab the id
# of an object you can never rely on this. For object storage look at SPL's
# ObjectStorage class.
# Note the signature change in the cast handler:
# int (*cast_t)(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
# int (*cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);

# f94344d7 27-Sep-2005 Dmitry Stogov <dmitry@php.net>

Changed __toString() behavior to call it in all necessary places

# f43767b2 16-Sep-2005 Antony Dovgal <tony2001@php.net>

fix #34505 (possible memory corruption when unmangling properties with empty names)
1st part

# 0f391bb0 15-Sep-2005 Derick Rethans <derick@php.net>

#- Thought I did this before already actually...

# 21698c12 12-Sep-2005 Dmitry Stogov <dmitry@php.net>

Fixed huge memory leak in ZTS mode (backport from HEAD)

# 3c2e00f9 09-Sep-2005 Dmitry Stogov <dmitry@php.net>

Fixed huge memory leaks in ZTS mode

# 0638374e 08-Sep-2005 Dmitry Stogov <dmitry@php.net>

Avoid unnecessary copying/freeing

# 7b755108 01-Sep-2005 Dmitry Stogov <dmitry@php.net>

Support for class constants and static members for internal classes

# c75b5a79 30-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed unicode support bug

# fc03492c 25-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed memory leaks

# b01df7d7 25-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed access to uninitialized variables

# e47587e1 15-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed several unicode related bugs

# fceb6086 15-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed another print_r() bug

# feff569e 15-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed print_r() in unicode mode.

# bc420247 14-Aug-2005 Marcus Boerger <helly@php.net>

- Simplify and make work in all modes

# 444befd8 14-Aug-2005 Marcus Boerger <helly@php.net>

- Treat class_name in the exact same manner as prop_name before

# 21c1109e 12-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support

# f0bf07f2 12-Aug-2005 Ilia Alshanetsky <iliaa@php.net>

Fixed build, zend_error_noreturn was being defined twice.

# b80cb7bd 11-Aug-2005 Andrei Zmievski <andrei@php.net>

Unicode support

# 916815b7 03-Aug-2005 foobar <sniper@php.net>

Bump up the year

# 1c82ec11 22-Jul-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #33802 (throw Exception in error handler causes crash)

# 990aa745 27-Jun-2005 foobar <sniper@php.net>

- Fixed bug #31358 (Older GCC versions do not provide portable va_copy()).

# 47676bc0 15-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed OS X compatibility

# cec2347c 13-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol 'zend_error').
The fix is not tested on Solaris and DARWIN!

# 59a46c34 09-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed double call to php_stream_close() on compiler errors

# e0b0ae9c 09-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #25922 (In error handler, modifying 5th arg (errcontext) may result in seg fault)

# 6ba1dd9c 22-May-2005 Stanislav Malyshev <stas@php.net>

fix leak

# 92c8c09d 18-May-2005 Stanislav Malyshev <stas@php.net>

fix for #29890 - part 2

# 5d839487 13-May-2005 Antony Dovgal <tony2001@php.net>

fix bug #29975 (memory leaks when set_error_handler() is used inside error handler)

# 7b34bb2b 04-May-2005 Stanislav Malyshev <stas@php.net>

fix bug #32924: prepend does not add file to included files

# 35b0b8de 15-Mar-2005 Wez Furlong <wez@php.net>

fix shutdown so that dl()'d modules are unloaded after all the dtors have
been called.

# 2da8b014 09-Jan-2005 foobar <sniper@php.net>

MFB: - Rationalize code a bit

# 9e9c193e 06-Dec-2004 Stanislav Malyshev <stas@php.net>

port fix for #30998: Crash when user error handler returns false on amd64

# ec4f6434 09-Sep-2004 Andi Gutmans <andi@php.net>

- Recommit

# 96ab56e1 09-Sep-2004 Andi Gutmans <andi@php.net>

- Roll back VM commit

# 7bfb3973 09-Sep-2004 Marcus Boerger <helly@php.net>

- Drop namespace relict

# 85a36e2b 05-Sep-2004 Zeev Suraski <zeev@php.net>

Fix reverse dependency

# 57ba9b8c 19-Aug-2004 Andi Gutmans <andi@php.net>

- Second wave of garbage removal.

# 0cd2da03 25-Jul-2004 Marcus Boerger <helly@php.net>

- Execute destructors earlier (Florian Schaper, fschaper at intux org)

# 56f8195f 19-Jul-2004 Andi Gutmans <andi@php.net>

- Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
used to return "" and not bool(false). It's not worth keeping it because
STR_FREE() and zval_dtor() always have to check for it and it slows down
the general case. In addition, it seems that empty_string has been abused
quite a lot, and was used not only for setting zval's but generally in
PHP code instead of "", which wasn't the intention. Last but not least,
nuking empty_string should improve stability as I doubt every place
correctly checked if they are not mistakenly erealloc()'ing it or
calling efree() on it.
NOTE: Some code is probably broken. Each extension maintainer should
check and see that my changes are OK. Also, I haven't had time to touch
PECL yet. Will try and do it tomorrow.

# 334ddd12 12-Jul-2004 Andi Gutmans <andi@php.net>

- Convert zend_class_entry -> zend_class_entry *

# d46f8078 10-Jul-2004 Jon Parise <jon@php.net>

DragonFly BSD is derived from FreeBSD and requires the same floating point
precision fix.

# 2e19f82a 01-Jun-2004 Andi Gutmans <andi@php.net>

- If user error handler returns "false" then we relay to the built in error

# 915a9903 28-May-2004 Andrei Zmievski <andrei@php.net>

Allow user-defined error handlers to indicate whether default error
handler should be re-invoked, by returning true or false.

# d58fe035 17-Apr-2004 Marcus Boerger <helly@php.net>

Retval may not be set when zend_execute() is overloaded

# 979da661 13-Apr-2004 Andi Gutmans <andi@php.net>

- Add hook for exception handler (Derick)

# 52303217 30-Mar-2004 Marcus Boerger <helly@php.net>

- Fix Reflection class names
- Add ability to get the extension an internal class was defined in
# This is the patch Andi and me used to search for underscrores...

# 1bf1b64c 28-Mar-2004 Marcus Boerger <helly@php.net>

Initialize the complete struct

# 3b8b43a9 28-Mar-2004 Stanislav Malyshev <stas@php.net>

try get handler on printable conversion

# 63338975 27-Mar-2004 Marcus Boerger <helly@php.net>

Even though it is uncommented it should be right

# 55cf45ab 24-Mar-2004 Dmitry Stogov <dmitry@php.net>

New autoload protection schema was implemented (Using HashTable instead of boolean flag)

# 09341786 17-Mar-2004 Andi Gutmans <andi@php.net>

- Stop make_printable_zval() from calling __toString()

# 6535933f 16-Mar-2004 Derick Rethans <derick@php.net>

- Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
are run. (Derick)

# 4c283fff 14-Mar-2004 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #27590 (crash during shutdown when freeing persistent resources
in ZTS mode).

# 7901a221 14-Mar-2004 Andi Gutmans <andi@php.net>

- Fix flow of logic

# 88de69b9 14-Mar-2004 Andi Gutmans <andi@php.net>

- Support Cast operator in convert_to_* so that we support internal
- extensions such as SimpleXML. This is for Sterling.

# 7c72f6ff 01-Mar-2004 Andi Gutmans <andi@php.net>

- Fix crash in exception handling (zend_exception_error(...) and
zend_eval_string_ex() were buggy (Dmitry, Andi)

# eb6fd52e 25-Feb-2004 Zeev Suraski <zeev@php.net>

- Rename compatiblity mode to zend.ze2_compatibility_mode (it doesn't only affect auto-clone).
- Perform implementation checks even with simple inheritance (off when
compatibility mode is enabled).
- Restore default arguments in interfaces and handle it correctly.
- Move registration of internal classes later in the startup sequence
in order to have INI options available.

# 666b44c1 18-Feb-2004 Zeev Suraski <zeev@php.net>

Forward-port fixlet from PHP 4 (thanks to Michael Sisolak)

# 00ed3bad 12-Feb-2004 Zeev Suraski <zeev@php.net>

Centralize exceptions code in zend_exceptions.[ch].
Remove zend_default_classes.h (use zend_exceptions.h instead)

NOTE: This currently breaks the build, fixes to php-src and pecl coming

# 2a8426a6 11-Feb-2004 Marcus Boerger <helly@php.net>

Must be initialized in ZTS mode

# 6b6fe2f7 11-Feb-2004 Zeev Suraski <zeev@php.net>

Fix exceptions thrown without a stack frame
Always enable set_exception_handler()

# 32007b19 15-Jan-2004 Zeev Suraski <zeev@php.net>

Nice patch Christian, but it wasn't at all enabled? :)

Fix bug #26883

# ccfc46b0 08-Jan-2004 foobar <sniper@php.net>

- Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?

# 6923a16c 03-Jan-2004 Derick Rethans <derick@php.net>

- Fixed var_export() to show public, protected and private modifiers properly.
- Exported (un)mangle_property_name.

# c0b8e359 29-Dec-2003 Marcus Boerger <helly@php.net>

Add missing notice

# c6cb00fe 23-Dec-2003 Marcus Boerger <helly@php.net>

Fixed bug #26697 (calling class_exists on a nonexistent class in __autoload
results in segfault).

# 02a93167 19-Dec-2003 Dmitry Stogov <dmitry@php.net>

Bug #25547 (error_handler and array index with function call) was fixed

# d4f64f88 15-Dec-2003 Marcus Boerger <helly@php.net>

Reenable __tostring() magic for print,echo,concatenation,function naming...
but not for other internal things.
# As discussed with Andi

# a2513618 12-Dec-2003 Marcus Boerger <helly@php.net>

Free is needed in non ZTS too

# 8fb5ea30 12-Dec-2003 Marcus Boerger <helly@php.net>

Fix memleaks in ZTS mode

# a54c7dcb 12-Dec-2003 Marcus Boerger <helly@php.net>

Fix memleaks

# c0df4502 18-Nov-2003 Andi Gutmans <andi@php.net>

- Add E_STRICT, to be used to warn purists (like Jani :)

# 31685432 08-Nov-2003 Marcus Boerger <helly@php.net>

Handle exceptions in casting more gracefully.
This fixes bug #26166

# 5dac0007 22-Oct-2003 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #25922 (Crash in error handler when 5th argument is modified).

# 10def9a8 22-Sep-2003 Ilia Alshanetsky <iliaa@php.net>

Added missing format.

# 71ba4427 18-Sep-2003 Marcus Boerger <helly@php.net>

Fallback to default behaviour for unsupported object type conversions

# 9d7f2fd9 14-Sep-2003 Marcus Boerger <helly@php.net>

Bugfix #25335

# 62421b52 08-Sep-2003 Marcus Boerger <helly@php.net>

Fix registering/derigistering of stdClass in ZTS and NON ZTS mode

# c7f1c2f7 01-Sep-2003 Marcus Boerger <helly@php.net>

Invalidate exception in this case too

# d15ad460 31-Aug-2003 Marcus Boerger <helly@php.net>

Revisited: Replace the non portable code by spprintf

# d45fd8a1 31-Aug-2003 Marcus Boerger <helly@php.net>

Make vspprintf available as zend utility function. Use it in exception output.

# 12376a22 28-Aug-2003 Marcus Boerger <helly@php.net>

Classe tables work this way

# d3473d1f 24-Aug-2003 Marcus Boerger <helly@php.net>

- Provide a unified way to display uncaught exceptions, which shows
file/line/message info if possible.
- Add zend_eval_string_ex() to be able to handle exceptions in eval'd code.
- Use above function to fix memleaks in CLI.

# 2fd4ffce 30-Jul-2003 Zeev Suraski <zeev@php.net>

Add exec_finished() callback for modules - this is the last place where the
modules may touch the symbol table reliably

# c50fbaf6 29-Jul-2003 foobar <sniper@php.net>

Remove the obfuscation caused by the double "#ifdef ZTS"

# 9b132027 24-Jul-2003 Zeev Suraski <zeev@php.net>

Make print_r() binary safe with keys

# 288dacca 30-Jun-2003 Andi Gutmans <andi@php.net>

- ZE coding style requires if ( instead of if(

# b8187313 15-Jun-2003 Stanislav Malyshev <stas@php.net>

Fix bug #23279 - exception handler exits after first function call

# ceb91fba 14-Jun-2003 Marcus Boerger <helly@php.net>

Bugfix #24182: va_arg macro error in Zend/zend.c

# f68c7ff2 10-Jun-2003 James Cox <imajes@php.net>

updating license information in the headers.

# d329ce93 08-Jun-2003 Zeev Suraski <zeev@php.net>

Nicer handling of protected/private members in print_r()

# b4fcdaed 04-Jun-2003 Stanislav Malyshev <stas@php.net>

fix non-ZTS build

# f26c5f9c 04-Jun-2003 Sebastian Bergmann <sebastian@php.net>

Fix segfault. Again.

# 039c1743 04-Jun-2003 Stanislav Malyshev <stas@php.net>

rm namespace leftovers

# d74d05f4 04-Jun-2003 Sebastian Bergmann <sebastian@php.net>

Fix segfault. #Hopefully not a Voodoo Fix[TM].

# 1fe874fb 02-Jun-2003 Sebastian Bergmann <sebastian@php.net>


# f7f5a5ea 02-Jun-2003 Stanislav Malyshev <stas@php.net>

MEGA-patch: namespaces are R.I.P.

# 9e428611 31-May-2003 Marcus Boerger <helly@php.net>

Fix init shutdown

# ae2bfb78 27-May-2003 Sterling Hughes <sterling@php.net>

Assume lazy consensus regarding the cast_object() patch. *Only* implemented
from a internals perspective. This callback has been very useful for both
ext/mono and ext/simplexml

# e6d0c8c2 04-May-2003 Marcus Boerger <helly@php.net>

Fix bug #23162 user_error() crashs if > 1024 bytes (Marcus, Moriyoshi)

# ad01495a 21-Apr-2003 Stanislav Malyshev <stas@php.net>

Change get_class() so that it returns qualified names for namespaced

*HEADS UP*: get_class_name() handler interface is changed, now it should
allocate the space it returns with emalloc, and the users free it. If
anyone has problems with it or has suggestions how to do it without this -
please tell.

Also: make function_exists() understand namespaces.

# a17d2f37 19-Apr-2003 Sebastian Bergmann <sebastian@php.net>

Corrected patch by Marcus Börger <helly@php.net>.

# 48b33032 18-Apr-2003 Sterling Hughes <sterling@php.net>

Patch by Marcus Börger to fix some memleaks

# 5be2fe41 17-Apr-2003 Sebastian Bergmann <sebastian@php.net>

Patch by Marcus Börger <helly@php.net>.

# 91eff553 03-Apr-2003 Andrei Zmievski <andrei@php.net>

Initialize all relevant zend_class_entry fields to avoid accidental

# 26c51b73 31-Mar-2003 Stanislav Malyshev <stas@php.net>

Use strncpy instead of sprintf

# f008808c 30-Mar-2003 Stanislav Malyshev <stas@php.net>

Try to report class name of the exception

# 05dfd313 29-Mar-2003 Sterling Hughes <sterling@php.net>

remove unused variable

# 3fc85282 26-Mar-2003 Sebastian Bergmann <sebastian@php.net>

Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry().

# eba65486 23-Mar-2003 Andi Gutmans <andi@php.net>

- Fix win32 build

# 5f47d77b 23-Mar-2003 Stanislav Malyshev <stas@php.net>

resore namespace on shutdown - since some functions use
EG() and CG() pointers

# e6dfbc95 23-Mar-2003 Sterling Hughes <sterling@php.net>

add a standard Exception class.

# f7b78004 02-Mar-2003 Zeev Suraski <zeev@php.net>

Add infrastructure for JIT initialization of auto globals

# e52aac94 18-Feb-2003 Wez Furlong <wez@php.net>

Implement simple stream support in the ZE scanners.

# 372e0877 16-Feb-2003 Zeev Suraski <zeev@php.net>

Fix initialization

# 6d300baf 16-Feb-2003 Sebastian Bergmann <sebastian@php.net>

ZTS fixes

# a4c3b2ce 16-Feb-2003 Stanislav Malyshev <stas@php.net>

Namespace patch. Big changes:
1. Nested classes are gone.
2. New syntax for namespaces:
namespace foo {
class X { ... }
function bar { ... }
var x = 1;
const ZZ = 2;
3. Namespaced symbol access: $x = new foo::X; - etc.
For now, namespaces are case insensitive, just like classes.
Also, there can be no global class and namespace with the same name
(to avoid ambiguities in :: resolution).

# c17c7a2b 10-Feb-2003 Zeev Suraski <zeev@php.net>

Centralize class initialization

# 17439aa9 05-Feb-2003 Zeev Suraski <zeev@php.net>

Rework static class properties - now supports access restrictions

# 471947b1 04-Feb-2003 Zeev Suraski <zeev@php.net>

Reimplement PPP properties

# 333406bd 01-Feb-2003 foobar <sniper@php.net>

- Added some missing CVS $Id$ tags, headers and footers.

# f30f3590 14-Jan-2003 Stanislav Malyshev <stas@php.net>


# d48ffd97 12-Jan-2003 Stanislav Malyshev <stas@php.net>

RIP handle_* functions. ZE2 will use __ handlers instead.
# Yes, I know this will break some things. I will fix those I can find shortly.

# 24db7f18 12-Jan-2003 Sebastian Bergmann <sebastian@php.net>

ZTS fixes.

# 9bba373a 12-Jan-2003 Stanislav Malyshev <stas@php.net>

Use generic handlers instead of Z_OBJ

# 424e98f4 12-Jan-2003 Zeev Suraski <zeev@php.net>

Implemented compatibility mode
To enable - zend2.implicit_clone = on in php.ini or using ini_set()

# 2c44fab3 11-Jan-2003 Derick Rethans <derick@php.net>

- Ported the zend_execute_internal hook to ZendEngine2.

# b817dab2 09-Jan-2003 Zeev Suraski <zeev@php.net>

Fix leak

# 2c5d4b8c 31-Dec-2002 Sebastian Bergmann <sebastian@php.net>

Bump year.

# e062dffe 06-Dec-2002 Zeev Suraski <zeev@php.net>

- Implement public/protected/private methods.
- Prevent instantiation of classes with abstract methods.
Based in part on Marcus's patch.

# 27de54b0 01-Dec-2002 Andi Gutmans <andi@php.net>


# f222884e 01-Dec-2002 Andi Gutmans <andi@php.net>

- Revert as the patch doesn't compile

# b6ecd670 01-Dec-2002 Andi Gutmans <andi@php.net>


# 671fff2f 30-Nov-2002 Andi Gutmans <andi@php.net>

h WHitespace

# 2de45bec 29-Nov-2002 Andi Gutmans <andi@php.net>

- Initialize constants_updated (by Marcus)

# 5cb8fabb 24-Nov-2002 Andi Gutmans <andi@php.net>

- Fix crash

# 4be862b0 19-Nov-2002 Zeev Suraski <zeev@php.net>

MFZE1 - error_reporting fix

# b899f9bf 05-Nov-2002 Stig Bakken <ssb@php.net>

Fixed some special cases that were crashing for the exception default

# e6054d28 02-Nov-2002 Derick Rethans <derick@php.net>


# cf36abb2 18-Oct-2002 Andi Gutmans <andi@php.net>

- Change opcode dispatch mechanism to use a function per opcode and use
- a lookup table using the opcode # to call the correct function.
- Still have lots of tuning to do.

# e842ef9f 12-Oct-2002 Ilia Alshanetsky <iliaa@php.net>

MFZE1 (floats & locale issue)

# 7cba0254 07-Oct-2002 Andi Gutmans <andi@php.net>

- Allow access to private/protected variables of $clone inside the __clone()
- method

# bd115087 19-Sep-2002 Zeev Suraski <zeev@php.net>

MFZE1 - connection_status() fix

# 8a003f80 19-Sep-2002 Zeev Suraski <zeev@php.net>

Fix non ZTS build

# c29f5d6e 19-Sep-2002 Zeev Suraski <zeev@php.net>

Fix that obscure crash in Debug_TS mode

# 5fcae67e 18-Sep-2002 Zeev Suraski <zeev@php.net>

Fix the thread-safe initialization of the ZE2. This should solve some
sporadic crashes, as well as the problem with the built-in constants.

# 71126a21 17-Sep-2002 Zeev Suraski <zeev@php.net>

ZE2 fix

# 711be83d 17-Sep-2002 Zeev Suraski <zeev@php.net>

MFZE1 - threading fix

# 1074fca0 15-Sep-2002 Ilia Alshanetsky <iliaa@php.net>

Make zend return a proper exit error code when it encounters a parse error.

# e801a99a 03-Sep-2002 Zeev Suraski <zeev@php.net>


# bdc35c9f 28-Aug-2002 Thies C. Arntzen <thies@php.net>

clear current_execute_data on bailout as it would point into some freed area
on the stack.

# a9d81981 28-Aug-2002 Derick Rethans <derick@php.net>


# 5a41ced0 16-Aug-2002 Stig Bakken <ssb@php.net>

* append emacs footer

# bd7105f7 16-Aug-2002 Stig Bakken <ssb@php.net>

* remove builtin exception class

# 38eea2e8 16-Aug-2002 Andi Gutmans <andi@php.net>

- Fix whitespace

# 04788f95 16-Aug-2002 Stig Bakken <ssb@php.net>

@- Added set_exception_handler() function for registering a global,
@ catch-all exception handling function (Stig)
- Added set_exception_handler() function for registering a global,
catch-all exception handling function (Stig)

# 0bb780b3 15-Aug-2002 Zeev Suraski <zeev@php.net>


# 41e3f4f0 26-Jul-2002 Andi Gutmans <andi@php.net>

- Fix problem with debug_backtrace() reported by Stig. We weren't reporting
- global function information because it wasn't available. We have to do
- an additional assignment per-function call so that it'll be available.
- Also don't define the global scope as function name _main_ but leave it
- empty so that frameworks like Pear can decide what they want to do.

# bc5ea87e 15-Jul-2002 Andi Gutmans <andi@php.net>

- Commit patch to support protected member variables (by Timm Friebe w/
- some fixes by me).
- You can't access protected variables from outside the object. If you want
- to see a protected member from your ancestors you need to declare the
- member as protected in the class you want to use it in. You can't
- redeclare a protected variable as private nor the other way around.

# d4acdd34 18-Jun-2002 Derick Rethans <derick@php.net>


# b66c89c4 07-May-2002 Andi Gutmans <andi@php.net>

- More debug backtrace work. It still doesn't work very well...

# fb6976e4 12-Mar-2002 Andi Gutmans <andi@php.net>

- Another couple of indirection fixes.
- Make class_entry->refcount be part of the structure and not allocated.

# 92dd5e61 12-Mar-2002 Stanislav Malyshev <stas@php.net>

- make class tables contain class_entry *, not class_entry
- fix isset($this)

# 7df16012 26-Feb-2002 Andi Gutmans <andi@php.net>


# 00e90f2f 21-Feb-2002 Andi Gutmans <andi@php.net>

- Experimental support for private members.
class MyClass {
private $Hello = "Hello, World!\n";

function printHello()
print $this->Hello;

class MyClass2 extends MyClass {
function printHello()
MyClass::printHello(); /* Should print */
print $this->Hello; /* Shouldn't print out anything */

$obj = new MyClass();
print $obj->Hello; /* Shouldn't print out anything */
$obj->printHello(); /* Should print */

$obj = new MyClass2();
print $obj->Hello; /* Shouldn't print out anything */

# b9355b9a 06-Jan-2002 Andi Gutmans <andi@php.net>

- Output error when there's an uncaught exception (by Timm Friebe)

# 62dc854b 06-Jan-2002 Sebastian Bergmann <sebastian@php.net>

Happy New Year.

# 73b159e0 27-Dec-2001 Andi Gutmans <andi@php.net>

- Experimental support for destructors. We need to see if destructors
- will actually work well in the context of PHP so we should consider this
- as experimental. Possible problems might be that when the constructor is
- run PHP might not be in a stable state.

# b04acdad 26-Dec-2001 Andi Gutmans <andi@php.net>

- Print out object id for easier debugging

# 29ea3da2 26-Dec-2001 Andi Gutmans <andi@php.net>

- Pretty much finish _clone() support

# 76b9acc1 26-Dec-2001 Andi Gutmans <andi@php.net>

- Fix crash correctly.

# ee44180f 25-Dec-2001 Andi Gutmans <andi@php.net>

- Fix a crash (not a thorough fix).
- Commented old code

# 3458373e 23-Dec-2001 Andi Gutmans <andi@php.net>

- Fix a bug where function's didn't work anymore in multi-threaded
- servers after the latest startup changes.

# f4b832d2 13-Dec-2001 Andi Gutmans <andi@php.net>

- Fix crash bug in startup code.
- Start work on being able to reference global and local scope

# ce98c73f 12-Dec-2001 Andi Gutmans <andi@php.net>

- Infrastructure changes for allowing to access the global scope from
- within a class scope.
- Fix the Zend.dsp project a bit. It seems someone pretty much killed it
- when commiting their own personal configuration. Please be careful in
- future.

# 4214a056 11-Dec-2001 Andi Gutmans <andi@php.net>

- Merge from ZE1

# 4cb97fa3 11-Dec-2001 Andi Gutmans <andi@php.net>

- Rename zend_class_entry.constants -> zend_class_entry.constants_table

# d863d52a 11-Dec-2001 Sebastian Bergmann <sebastian@php.net>

Update headers.

# 84603723 08-Dec-2001 Andi Gutmans <andi@php.net>

- Fix crash with unhandled exceptions

# fe94f594 06-Dec-2001 Andi Gutmans <andi@php.net>

- Nuke the namespace work I did. It'll be redone differently.

# e858d278 30-Nov-2001 Andi Gutmans <andi@php.net>

- Initial support for class constants. There are still a few semantic
- issues which need to be looked into but basically it seems to work.
- Example:
class foo
const hey = "hello";

print foo::hey;

# 0d559f17 25-Nov-2001 Andi Gutmans <andi@php.net>

- Fix crash and leak

# d2da63f6 25-Nov-2001 Andi Gutmans <andi@php.net>

- Support static members. The following script works:
class foo
class bar
function init_values()
for ($i=1; $i<10; $i++) {
foo::bar::$hello[$i] = $i*$i;

function print_values()
for ($i=1; $i<10; $i++) {
print foo::bar::$hello[$i] . "\n";


for ($i=1; $i<10; $i++) {
print $hello[$i]?"Shouldn't be printed\n":"";

# 2eccd95c 03-Nov-2001 Andi Gutmans <andi@php.net>

- Add some initializations

# 2eabb14d 30-Sep-2001 Andi Gutmans <andi@php.net>

- Merge the NAMESPACES_BRANCH. It wasn't a good idea to have a branch when
- the whole CVS tree is work in progress

# 17352812 22-Sep-2001 Zeev Suraski <zeev@php.net>


# 483fc4c7 19-Sep-2001 Zeev Suraski <zeev@php.net>


# b06440bc 10-Sep-2001 Zeev Suraski <zeev@php.net>

MFZE1 (support return value in execute_scripts)

# 819ea51d 31-Aug-2001 Zeev Suraski <zeev@php.net>


# 4757104e 21-Aug-2001 Zeev Suraski <zeev@php.net>


# 4f6c95d1 11-Aug-2001 Zeev Suraski <zeev@php.net>


# 80b870e5 09-Aug-2001 Andi Gutmans <andi@php.net>

- Merge from Engine 1 tree

# 9d11db12 08-Aug-2001 Andi Gutmans <andi@php.net>

- Merge new $_GET, $_POST etc. patch from Engine 1 tree

# 2f6cd308 08-Aug-2001 Andi Gutmans <andi@php.net>

- Merge zend_try fix from Engine 1

# 609d58a4 06-Aug-2001 Zeev Suraski <zeev@php.net>

Merge from branch - move to standard C scanners in thread safe mode

# fcc03510 05-Aug-2001 Zeev Suraski <zeev@php.net>


# 66d9314b 03-Aug-2001 Zeev Suraski <zeev@php.net>

Implement fast memory allocation and reduced fragmentation under Windows.

# 7deb44e3 02-Aug-2001 Zeev Suraski <zeev@php.net>

Some cleanup

# d76cf1da 31-Jul-2001 Zeev Suraski <zeev@php.net>


# 4187439c 30-Jul-2001 Zeev Suraski <zeev@php.net>


# b5770382 30-Jul-2001 Zeev Suraski <zeev@php.net>

Avoid TSRMLS_FETCH()'s (still lots of work left)

# c259cb7c 29-Jul-2001 Andi Gutmans <andi@php.net>

- Object macros...

# b4f3b9d3 28-Jul-2001 Zeev Suraski <zeev@php.net>

Redesigned thread safety mechanism - nua nua

# 2c254ba7 27-Jul-2001 Zeev Suraski <zeev@php.net>

Get rid of ELS_*(), and use TSRMLS_*() instead.
This patch is *bound* to break some files, as I must have had typos somewhere.
If you use any uncommon extension, please try to build it...

# ef4fe54f 21-Jul-2001 Zeev Suraski <zeev@php.net>

Always track bailout file/lineno

# 5f2da6f2 21-Jul-2001 Zeev Suraski <zeev@php.net>

Fix Release builds

# 931ebe08 21-Jul-2001 Zeev Suraski <zeev@php.net>

Improve bailout mechanism, supports nesting of bailouts a-la try..catch

# 8084d278 20-Jul-2001 Zeev Suraski <zeev@php.net>

Implement a more granular shutdown mechanism for the executor -
prevent corruption of constants and missing destructions of resources

# 85b4df53 15-Jul-2001 Zeev Suraski <zeev@php.net>

Improved interactive mode - it is now available in all builds, without any significant slowdown

# ab30c8cc 15-Jul-2001 Zeev Suraski <zeev@php.net>

Early initialization

# b23d83cf 13-Jun-2001 Zeev Suraski <zeev@php.net>

Avoid crashing if the error reporting function is called after a bailout during shutdown

# 51303fc0 17-May-2001 Zeev Suraski <zeev@php.net>

Fix corruption issue

# 0eadc7e4 07-May-2001 Zeev Suraski <zeev@php.net>

Make zend_execute_scripts() reentrant

# bda9c83a 06-May-2001 Zeev Suraski <zeev@php.net>

Recover from a parse error in include files (before, it could result in a crash under certain circumstances). Fix bug #8663

# 7080fa5b 26-Feb-2001 Andi Gutmans <andi@php.net>

- Rename modules.h to zend_modules.h

# d2c9e807 26-Feb-2001 Andi Gutmans <andi@php.net>

- Update copyright year

# 0e08845e 15-Jan-2001 Zeev Suraski <zeev@php.net>

Add free_estring()

# 903018ef 07-Jan-2001 Zeev Suraski <zeev@php.net>

- Remove backward dependency from PHP -> Zend
- Rename get_ini_entry() as get_configuration_directive() for clarity
(it doesn't use the INI subsystem, but the module-supplied function for
retrieving configuration directives)

# 1f23e507 07-Jan-2001 Zeev Suraski <zeev@php.net>

Fix possibility of a crash during startup (very unlikely, but possible)

# 54d53055 27-Dec-2000 Zeev Suraski <zeev@php.net>

Make the INI mechanism thread safe (or at least thread safer :)

# c3340584 22-Dec-2000 Sascha Schumann <sas@php.net>

Set the floating-point exception mask on FreeBSD to 0 (as do other
FreeBSD system applications). Also bump up the module API number
as the zend_hash_get_current_key change affects source and binary

# 36eaad25 22-Dec-2000 Zeev Suraski <zeev@php.net>

Allow get_current_key() not to return the key itself, instead of a duplicate

# 63873aba 18-Dec-2000 Stanislav Malyshev <stas@php.net>

Use HashPosition iterator instead of saving/restoring internal pointer

# 9a135a2b 18-Dec-2000 Stanislav Malyshev <stas@php.net>

Preserve internal pointer over print_r (fix #8289)

# 6053f2a1 02-Nov-2000 Zeev Suraski <zeev@php.net>

Fix bug #7599

# 309827ec 25-Sep-2000 Zeev Suraski <zeev@php.net>

Fix previous update - move extension startup further down the startup sequence

# 59d3eb5f 25-Sep-2000 Zeev Suraski <zeev@php.net>

Move extension startup further down the startup sequence

# 5286b397 12-Sep-2000 Zeev Suraski <zeev@php.net>

Make compile_string() accept a description of the code

# 4acff8f3 09-Sep-2000 Zeev Suraski <zeev@php.net>

Don't use unsafe sprintf()

# d10336ec 08-Sep-2000 Stanislav Malyshev <stas@php.net>

Don't trust snprintf return

# 27de5001 31-Aug-2000 Andi Gutmans <andi@php.net>

- Use emalloc() for opened_path now. This was a potential leak before.
- This patch has potential to break stuff but I tested it as much as I
- could. Fixes should be easy.

# 1b282b35 31-Aug-2000 Andi Gutmans <andi@php.net>

- Remove support for __string_value() in print $obj

# 99af3ed8 31-Aug-2000 Zeev Suraski <zeev@php.net>

Safer shutdown process

# 7795aca4 15-Aug-2000 Zeev Suraski <zeev@php.net>

Fix warning issue (compile errors inside require()'d files were incorrectly supressed)

# 5090b1e8 13-Aug-2000 Stanislav Malyshev <stas@php.net>

Fix zend_fiel_handle handling. Should fix URL include
and various opened_path inconsistencies.

# c06692e9 09-Aug-2000 Zeev Suraski <zeev@php.net>

The patch we promised - redesigned the compilation/execution API:
- Smaller memory footprint for the op arrays
- Slightly faster compilation times (due to saved erealloc() calls and faster zend_op
- include_once() & require_once() share the same file list
- Consistency between include() and require() - this mostly means that return()
works inside require()'d files just as it does in include() files (it used to
be meaningless in require()'d files, most of the time (see below))
- Made require() consistent with itself. Before, if the argument was not a constant
string, require() took the include() behavior (with return()).
- Removed lots of duplicate code.
Bottom line - require() and include() are very similar now; require() is simply an include()
which isn't allowed to fail. Due to the erealloc() calls for large op arrays, require()
didn't end up being any faster than include() in the Zend engine.

# 7f4909d9 12-Jul-2000 Thies C. Arntzen <thies@php.net>

fix ZTS startup without filename (thanx purify!)

# 372f71eb 12-Jul-2000 Thies C. Arntzen <thies@php.net>

unset active_symbol_table on zend-shutdown.

# 1263932a 11-Jul-2000 Zeev Suraski <zeev@php.net>

Disable the hash_apply() protection on hashes that persist across requests - it's unsafe
because we may be aborted at any point

# f34b9d41 29-Jun-2000 Zeev Suraski <zeev@php.net>

Add $context argument to error handler

# a31dc47a 28-Jun-2000 Zeev Suraski <zeev@php.net>

Improve error handling code

# f311ab16 25-Jun-2000 Andi Gutmans <andi@php.net>

- I wrote a long msg but the commit didn't go through.
- So here is the short version:
- a) Start moving to binary opens in Windows
- b) Give checkuid_mode() a small face lift including the fopen-wrappers.c
- The mode to this function should at least be a #define but that is for
- another day. Anyway this whole stuff should be given more face lifts in
- the future.

# 15925864 18-Jun-2000 Sascha Schumann <sas@php.net>

fp_except check for FreeBSD 1.0-2.2.5

# 536221be 18-Jun-2000 Stanislav Malyshev <stas@php.net>

Make error callback be publicly accessible

# 4a6869c9 18-Jun-2000 Andi Gutmans <andi@php.net>

- Better FreeBSD fix. Does fp_except_t exist on 3.4?

# 53a5eccf 18-Jun-2000 Andi Gutmans <andi@php.net>

- I don't know how this happened. I tested the bloody thing and I remember
- copy&pasting from code which used ~.

# 3cda6a75 17-Jun-2000 Zeev Suraski <zeev@php.net>

Allow the symbol_table to be passed to call_user_function_ex()

# 84eb48f0 16-Jun-2000 Zeev Suraski <zeev@php.net>

Ok, this time here's some real Win32 system programming :)
Redesigned the timeout system using a single timeout thread and a single window,
and used a much quicker check.

# ef0bd3d1 16-Jun-2000 Zeev Suraski <zeev@php.net>

- Move timeout code to Zend
- Implement timeouts in Win32

# 8b794bb1 15-Jun-2000 Zeev Suraski <zeev@php.net>

Fix non thread-safe mode - asp_tags/short_tags etc weren't getting initialized properly

# 1f5ee72e 11-Jun-2000 Andi Gutmans <andi@php.net>

- Solve floating point precision crash on FreeBSD.

# 5928970d 11-Jun-2000 Andi Gutmans <andi@php.net>

- Fixes crash problem on FreeBSD when losing precision. Need to still see
- how to detect we're on FreeBSD

# 98bf43f2 06-Jun-2000 Zeev Suraski <zeev@php.net>

Enable asp_tags/short_tags/allow_call_time_pass_by_reference to work on a per-directory
basis as well

# 01d478ba 03-Jun-2000 Andi Gutmans <andi@php.net>

- Change #if to #ifdef.

# 2ffe85dd 03-Jun-2000 Zeev Suraski <zeev@php.net>

Don't take chances with new include files

# 0b7a9cea 03-Jun-2000 Zeev Suraski <zeev@php.net>

- Fix Win32 compilation (Use winsock2.h from now on)
- Add lambda() support

# 8a8c3eaf 02-Jun-2000 Zeev Suraski <zeev@php.net>

Nuke the old error code, use the new one

# 0302ee59 22-May-2000 Zeev Suraski <zeev@php.net>

- Remove ugly Ltd.

# c5cf13eb 21-May-2000 Sam Ruby <rubys@php.net>

Windows build failure

# a8b0d960 21-May-2000 Andi Gutmans <andi@php.net>

- Fix Apache php source highlighting mode. It was crashing due to the
- module shutdown functions being called when the startup functions weren't
- being called.

# 7a2d83ac 01-May-2000 Sascha Schumann <sas@php.net>

Source file does not end with a newline. Some old compilers don't like that.

# ddbcbb66 28-Apr-2000 Zeev Suraski <zeev@php.net>

Fix a bug in the resource dispencer

# 974671ec 27-Apr-2000 Zeev Suraski <zeev@php.net>

*** empty log message ***

# b80b8381 27-Apr-2000 Zeev Suraski <zeev@php.net>

More error handling work (still completely disabled)

# f4c9d96f 24-Apr-2000 Thies C. Arntzen <thies@php.net>

fixed shutdown crash if MSHUTDOWN tries to php_error() something.

# 67f69743 19-Apr-2000 Zeev Suraski <zeev@php.net>

Initial support for trapping errors (not complete and disabled; will be enabled only
post-PHP 4.0.0)

# 603d5ff5 15-Apr-2000 Zeev Suraski <zeev@php.net>


# 4cb9a483 15-Apr-2000 Zeev Suraski <zeev@php.net>

- Clean up resource lists namespace
- Prepare extended resource list destructor APIs (currently unused)

# 5dba4774 25-Mar-2000 Zeev Suraski <zeev@php.net>

- Some header dependencies cleanup
- Generalize zval_print() and zval_print_r()

# 13e74131 21-Mar-2000 Andi Gutmans <andi@php.net>

- Change zend_startup to accept a flag for starting builtin functions

# 3092c10e 18-Mar-2000 Thies C. Arntzen <thies@php.net>

renamed _string_value_() to __string_value().

# a4bf3815 16-Mar-2000 Thies C. Arntzen <thies@php.net>

renamed "to_string" -> "_string_value_"

# 6ef9f9fe 06-Mar-2000 Andi Gutmans <andi@php.net>

- Missed one

# fc173b6a 06-Mar-2000 Sam Ruby <rubys@php.net>

Unresolved externs

# 5e55e47f 06-Mar-2000 Zeev Suraski <zeev@php.net>

It's official now...

# 56251a72 05-Mar-2000 Zeev Suraski <zeev@php.net>

Wrap some commonly unused callbacks

# 4dd71d4c 01-Mar-2000 Andi Gutmans <andi@php.net>

- Upgrade to year 2000

# 0ac9536d 19-Feb-2000 Zeev Suraski <zeev@php.net>

(c) patch

# f1a2ee55 17-Feb-2000 Andi Gutmans <andi@php.net>


# 9f51f154 05-Feb-2000 Zeev Suraski <zeev@php.net>

- Stop passing list/plist to internal functions
- Add a typedef for the pCopyConstructor function pointer
- Minor hacks

# 8c4ab98e 01-Feb-2000 Thies C. Arntzen <thies@php.net>

added missing break.

# fafbf6d8 24-Jan-2000 Zeev Suraski <zeev@php.net>

- Implement declare() with declarables framework
- Implement ticks - Germany&Norway - 5 points!

# ee08b81a 16-Jan-2000 Zeev Suraski <zeev@php.net>

- Make zend_hash_apply() (and friends) reentrant and much, much quicker
- Introduce zend_hash_graceful_destroy(), which allows the destructor functions to
use zend_hash_apply() and/or zend_hash_graceful_destroy()
- Switch to zend_hash_graceful_destroy() in the resource list shutdowns

# dc0e6632 16-Jan-2000 Zeev Suraski <zeev@php.net>

Allow module startup to be separate from the compiler/executor startup

# bdefd5da 04-Jan-2000 Andi Gutmans <andi@php.net>

- Change IS_UNSET -> IS_NULL

# f2d703e9 31-Dec-1999 Zeev Suraski <zeev@php.net>

- Nuke undefined_variable_string
- Introduce IS_UNSET

# 5864b57e 30-Dec-1999 Zeev Suraski <zeev@php.net>

This should enable people to use ALLOC_ZVAL() in code outside the php4.dll

# 9cf1a98d 27-Dec-1999 Thies C. Arntzen <thies@php.net>

fix UMR in ZTS mode

# 5ba5f00f 22-Dec-1999 Zeev Suraski <zeev@php.net>


# 80bab9d9 21-Dec-1999 Andrei Zmievski <andrei@php.net>

We're using ZVAL's now.

# 213d0e2f 19-Dec-1999 Andi Gutmans <andi@php.net>

- More fixes related to the return references patch
- eval_string() and call_user_function_ex() still don't work.
- The libzend tree is untested and might not be stabl yet.

# 70df2d74 05-Dec-1999 Sascha Schumann <sas@php.net>

Fix some warnings

# 9baad804 04-Dec-1999 Zeev Suraski <zeev@php.net>

- Break the zend->PHP dependency introduced by the .php extension for use(),
by providing an API
- Enable Stig's patch for use() extensions (it wasn't refered to by the parser)
- Fix a memory leak in that code

# 93536507 01-Dec-1999 Stig S. Bakken <stig@php.net>

Fix warnings surfacing in maintainer-mode.

# 5463dd5b 30-Nov-1999 Andi Gutmans <andi@php.net>

- Add use support (behaves like require, but will not use the same file twice)
- Add import support (behaves like include, but requires parentheses; will not
use the same file twice; Currently, it is not yet properly implemented, and
only behaves like include)

# 13d840bc 20-Sep-1999 Zeev Suraski <zeev@php.net>

Add a file in which we can put Zend builtin functions

# 5f1793e2 12-Sep-1999 Zeev Suraski <zeev@php.net>

Make this class instanciatable

# 99947a25 05-Sep-1999 Andi Gutmans <andi@php.net>

- Shift around header files.

# 6313238c 20-Aug-1999 Zeev Suraski <zeev@php.net>

Fix for Thies's UMR

# acd6114f 17-Aug-1999 Andi Gutmans <andi@php.net>

- Add some ZENDAPI's

# 8d1de13a 19-Jul-1999 Zeev Suraski <zeev@php.net>

0.91 update

# b5b11177 16-Jul-1999 Zeev Suraski <zeev@php.net>

License update

# 91d7ba76 15-Jul-1999 Andi Gutmans <andi@php.net>

Change true/false back to 1/""

# 762158aa 14-Jul-1999 Andi Gutmans <andi@php.net>

Fix thread unsafe constants startup

# fec59d3b 14-Jul-1999 Andi Gutmans <andi@php.net>

- License update
- Fix multithreaded constants startup

# fb7a4b64 10-Jul-1999 Andi Gutmans <andi@php.net>

Fix assignments of reference variables

# 81d901b1 09-Jul-1999 Zeev Suraski <zeev@php.net>

Step 1 in nuking the garbage collector:
- Change the hash destructor to return int
- Don't kill the bucket on hash_destroy if the destructor returns 0

# d035af4a 19-Jun-1999 Zeev Suraski <zeev@php.net>

*** empty log message ***

# 99fd17df 11-Jun-1999 Zeev Suraski <zeev@php.net>

Change __print into to_string()

# da9faa2c 11-Jun-1999 Zeev Suraski <zeev@php.net>

* Make the output handling of variables much, much cooler.
Uses zend_make_printable_zval() instead of convert_to_string() now:

$foo = true;
print "\$foo is $foo";
will now print
$foo is true
(instead of "$foo is 1", earlier).

Also, with objects, it automatically tries to call __print() and use it as a printing

For example:

class foo {
function __print() { return "Foo Object"; }

$foo = new foo;
print $foo;

will print "Foo Object".

# ed06a70f 05-Jun-1999 Zeev Suraski <zeev@php.net>

* Centralized shutdown
* Change shutdown order again

# 9108abc2 04-Jun-1999 Zeev Suraski <zeev@php.net>

Minor updates (mostly __declspec() stuff)

# b0bfa458 15-May-1999 Zeev Suraski <zeev@php.net>

* Fix all hash checks that checked Bucket.arKey for NULL, when it was changed
to char[1], these checks should have been changed to Bucket.nKeyLength==0
* Support runtime declaration of functions. I ended up changing the grammar
to catch top level functions vs. nested functions. The reason is simple -
if we don't have functions properly declared at compile-time, function calls
cannot be resolved at compile time, and have to be resolved at runtime, which
ends up being much much slower (without the optimizer, that is).
It's no biggy though, the grammar change isn't that bad.

# 6bc6dacf 11-May-1999 Zeev Suraski <zeev@php.net>

* Avoid closing stdin (I could have sworn I've committed that already)
* unclean_shutdown patches

# 74a9ed7b 10-May-1999 Zeev Suraski <zeev@php.net>

Weed out all BoundsChecker-found bugs (including a serious file descriptor leak
in the C++ scanner)

# bfbe8618 09-May-1999 Zeev Suraski <zeev@php.net>

Almost forgot to commit those

# fcaf734f 02-May-1999 Andi Gutmans <andi@php.net>

- Don't support interactive mode when thread safe.

# 7c4a0838 26-Apr-1999 Zeev Suraski <zeev@php.net>

Various thread safety fixes and DLL updates

# df6134bc 26-Apr-1999 Andi Gutmans <andi@php.net>

-More commits

# e06a1ed2 24-Apr-1999 Zeev Suraski <zeev@php.net>

Thread safety fixes

# a9f9ae79 21-Apr-1999 Zeev Suraski <zeev@php.net>

Thread safety patch. It works now with 'just in time' resource initialization!

# 7a87fcbb 21-Apr-1999 Zeev Suraski <zeev@php.net>

Thread safety patch. We're still not quite there but it compiles again, and
more logic has been implemented.

# 342c6e0b 18-Apr-1999 Zeev Suraski <zeev@php.net>

* updated alloc_persist to use critical sections
* changed extension shutdown to two-phase
* updated dependencies
* PR support (don't remember if there was any really)

# 7656c77c 10-Apr-1999 Zeev Suraski <zeev@php.net>

We need to initialize the utility values after we initialize the INI file, which in
turn, is after we initialize Zend. Set the utility values separately from Zend's

# a6043d3e 07-Apr-1999 Rasmus Lerdorf <rasmus@php.net>

*** empty log message ***

# 573b4602 07-Apr-1999 Andi Gutmans <andi@php.net>

Zend Library