History log of /PHP_5_5/Zend/zend_opcode.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
47c9027 03-Jan-2014 Xinchen Hui <laruence@php.net> Bump year
/PHP_5_5/Zend/zend_opcode.c
ef73f85 13-Dec-2013 Xinchen Hui <laruence@php.net> Use zend_error_noreturn here
/PHP_5_5/Zend/zend_opcode.c
54213b4 12-Dec-2013 Xinchen Hui <laruence@gmail.com> Disallowed JMP into a finally block.
/PHP_5_5/Zend/zend_opcode.c
a2d6d27 21-May-2013 Dmitry Stogov <dmitry@zend.com> Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
Fixed bug #64720 (SegFault on zend_deactivate)

Conflicts:
NEWS
77fffff 21-May-2013 Dmitry Stogov <dmitry@zend.com> Fixed bug #64720 (SegFault on zend_deactivate)
/PHP_5_5/Zend/zend_opcode.c
a666285 01-Jan-2013 Xinchen Hui <laruence@php.net> Happy New Year
/PHP_5_5/Zend/zend_opcode.c
0a7395e 01-Jan-2013 Xinchen Hui <laruence@php.net> Happy New Year
/PHP_5_5/Zend/zend_opcode.c
b8c719c 25-Dec-2012 Dmitry Stogov <dmitry@zend.com> Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
Traits refactoring
3f8c729 25-Dec-2012 Dmitry Stogov <dmitry@zend.com> Traits refactoring
/PHP_5_5/Zend/zend_opcode.c
9c96fe5 12-Dec-2012 Dmitry Stogov <dmitry@zend.com> Restored proper generators behaviour in conjunction with "finally". (Nikita)
/PHP_5_5/Zend/zend_opcode.c
70f83f3 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.
/PHP_5_5/Zend/zend_opcode.c
eb4825b 22-Nov-2012 Dmitry Stogov <dmitry@zend.com> Improved "finally" im[plementation
/PHP_5_5/Zend/zend_opcode.c
2b7bddd 05-Sep-2012 Pierre Joye <pierre.php@gmail.com> Merge branch 'PHP-5.4'

* PHP-5.4:
- fix build, there was no tsrm context there, doing a fetch but this is horribly slow, this fix needs improvement (or simply add a TSRM context in the signature in master
954e7a3 05-Sep-2012 Pierre Joye <pierre.php@gmail.com> - fix build, there was no tsrm context there, doing a fetch but this is horribly slow, this fix needs improvement (or simply add a TSRM context in the signature in master
/PHP_5_5/Zend/zend_opcode.c
bceec03 05-Sep-2012 Dmitry Stogov <dmitry@zend.com> Merge branch 'PHP-5.4'

* PHP-5.4:
Fixed bug #62907 (Double free when use traits)

Conflicts:
NEWS
6c0508f 05-Sep-2012 Dmitry Stogov <dmitry@zend.com> Fixed bug #62907 (Double free when use traits)
/PHP_5_5/Zend/zend_opcode.c
68c1e1c 24-Aug-2012 Nikita Popov <nikic@php.net> Add dedicated opcode for returns from a generator

Generators don't have a return value, so it doesn't make sense to have
a shared implementation here.
/PHP_5_5/Zend/zend_opcode.c
6517ed0 24-Aug-2012 Nikita Popov <nikic@php.net> Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
60a2979 22-Aug-2012 Xinchen Hui <laruence@php.net> Fixed bug that jmp in try block jmp over finally block

Refactor the implemention, make codes clear
/PHP_5_5/Zend/zend_opcode.c
703a4e3 22-Aug-2012 Xinchen Hui <laruence@php.net> stash
/PHP_5_5/Zend/zend_opcode.c
1823b16 20-Aug-2012 Nikita Popov <nikic@php.net> Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

Merging master to fix Windows build

Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
b2a74b5 18-Aug-2012 Felipe Pena <felipensp@gmail.com> - Remove unused vars
/PHP_5_5/Zend/zend_opcode.c
72b9b8f 18-Aug-2012 Xinchen Hui <laruence@php.net> Make the codes clearer, and also check continue statement
/PHP_5_5/Zend/zend_opcode.c
f2a8912 17-Aug-2012 Xinchen Hui <laruence@php.net> Refactor examing of jumping out of finally block
/PHP_5_5/Zend/zend_opcode.c
f4ce364 13-Aug-2012 Nikita Popov <nikic@php.net> Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

This is just an intial merge. It does not yet make generators and finally
work together.

Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_execute.skl
Zend/zend_vm_opcodes.h
1340893 22-Jul-2012 Nikita Popov <nikic@php.net> Throw error also for return occuring before yield

Previously only an error was thrown when return occured after yield. Also
returns before the first yield would fail for by-ref generators.

Now the error message is handled in pass_two, so all returns are checked.
/PHP_5_5/Zend/zend_opcode.c
2ae8d2f 21-May-2012 Dmitry Stogov <dmitry@zend.com> Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution)
/PHP_5_5/Zend/zend_opcode.c
8775a37 01-Jan-2012 Felipe Pena <felipe@php.net> - Year++
/PHP_5_5/Zend/zend_opcode.c
4e19825 01-Jan-2012 Felipe Pena <felipe@php.net> - Year++
/PHP_5_5/Zend/zend_opcode.c
ea5a61e 18-Oct-2011 Arnaud Le Blanc <lbarnaud@php.net> Improved ternary operator performance when returning arrays
/PHP_5_5/Zend/zend_opcode.c
07b7ba8 18-Oct-2011 Arnaud Le Blanc <lbarnaud@php.net> Improved ternary operator performance when returning arrays
/PHP_5_5/Zend/zend_opcode.c
4a25a77 13-Sep-2011 Dmitry Stogov <dmitry@php.net> Fixed ZE specific compile warnings (Bug #55629)
/PHP_5_5/Zend/zend_opcode.c
e43ff13 13-Sep-2011 Dmitry Stogov <dmitry@php.net> Fixed ZE specific compile warnings (Bug #55629)
/PHP_5_5/Zend/zend_opcode.c
0203cc3 01-Jan-2011 Felipe Pena <felipe@php.net> - Year++
/PHP_5_5/Zend/zend_opcode.c
aaa2f1c 14-Oct-2010 Hartmut Holzgraefe <hholzgra@php.net> marked char pointer arguments as const in lots of
places where strings pointed to are not modified
to prevent compiler warnings about discarded qualifiers ...
/PHP_5_5/Zend/zend_opcode.c
f2df6a4 15-Sep-2010 Dmitry Stogov <dmitry@php.net> - Improved memory usage
. zend_function.pass_rest_by_reference is replaced by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
. zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags
. zend_arg_info.required_num_args removed. it was needed only for internal
functions. Now the first arg_info for internal function (which has special
meaning) is represented by zend_internal_function_info structure.
. zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count moved into CG(context), because they are used only during
compilation.
. zend_op_array.start_op is moved into EG(start_op), because it's used
only for 'interactive' execution of single top-level op-array.
. zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. zend_class_entry.constants_updated is replaced by
ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
. the size of zend_class_entry is reduced by sharing the same memory space
by different information for internal and user classes.
See zend_class_inttry.info union.
/PHP_5_5/Zend/zend_opcode.c
3cf5ab9 05-Aug-2010 Dmitry Stogov <dmitry@php.net> Use interned strings for class names
/PHP_5_5/Zend/zend_opcode.c
3ea3bba 06-Jul-2010 Felipe Pena <felipe@php.net> - Fix ZTS build
/PHP_5_5/Zend/zend_opcode.c
1a1178a 06-Jul-2010 Dmitry Stogov <dmitry@php.net> eliminated unnecessary iterations during request startup/shutdown
/PHP_5_5/Zend/zend_opcode.c
743a2e2 10-Jun-2010 Dmitry Stogov <dmitry@php.net> Fixed bug #51822i (Segfault with strange __destruct() for static class variables)
/PHP_5_5/Zend/zend_opcode.c
f23e857 24-May-2010 Dmitry Stogov <dmitry@php.net> Fixed ZTS build
/PHP_5_5/Zend/zend_opcode.c
c5237d8 24-May-2010 Dmitry Stogov <dmitry@php.net> Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties
/PHP_5_5/Zend/zend_opcode.c
fe49882 02-May-2010 Stefan Marr <gron@php.net> Refactored part of the Traits implementation.
# - renamed php_runkit_function_copy_ctor to _duplicate_function
# REM: runkit does not compile with trunk at the moment, fixing it would introduce even more version #ifs, don't know what the best way is to fix it
# - extracted traits related stuff from destroy_zend_class into _destroy_zend_class_traits_info
# - need to investigate implementation/handling of internal classes further before enabling internal traits
/PHP_5_5/Zend/zend_opcode.c
cd6415f 22-Apr-2010 Stefan Marr <gron@php.net> Implemented Traits for PHP as proposed in the RFC [TRAITS]

# RFC http://wiki.php.net/rfc/horizontalreuse#traits_-_reuse_of_behavior
# Ok, here we go, I guess that will result in more discussion, which is fine
# by me. But now, the patch is here, and properly archived.
#
# See below a list of notes to the patch, it also includes a list of
# points which should be fixed
#
# Internals of the Traits Patch
# -----------------------------
#
# Open TODOs
# """"""""""
#
# - Reflection API
# - support for traits for internal classes
# - currently destroy_zend_class does not handle that case
#
# Introduced Structures
# """""""""""""""""""""
#
# Data structures to encode the composition information specified in the
# source:
# - zend_trait_method_reference
# - zend_trait_precedence
# - zend_trait_alias
#
# Changes
# """""""
#
# zend_class_entry
# - uses NULL terminated lists of pointers for
# - trait_aliases
# - trait_precedences
# - do you prefer an explicit counter?
# - the information is only necessary during class composition
# but might be interesting for reflection
# - did not want to blow up class further with not really necessary length counters
#
# added keywords
# - trait
# - insteadof
#
# Added opcodes
# ZEND_ADD_TRAIT
# - similar to ZEND_ADD_INTERFACE
# - adds the trait to the list of traits of a class, no actual composition done
# ZEND_BIND_TRAITS
# - emitted in zend_do_end_class_declaration
# - concludes the class definition and will initiate the trait composition
# when the class definition is encountered during runtime
#
# Added Flags
# ZEND_ACC_TRAIT = 0x120
# ZEND_ACC_IMPLEMENT_TRAITS = 0x400000
# ZEND_FETCH_CLASS_TRAIT = 14
#
# zend_vm_execute.h
# - not sure whether the handler initialization (ZEND_ADD_TRAIT_SPEC_HANDLER,
# ZEND_BIND_TRAITS_SPEC_HANDLER) is correct, maybe it should be more selective
#
# zend_compile.c
# - refactored do_inherit_method_check
# split into do_inherit_method_check and do_inheritance_check_on_method
# - added helper functions use a '_' as prefix and are not mentioned in the
# headers
# - _copy_functions
# prepare hash-maps of functions which should be merged into a class
# here the aliases are handled
# - _merge_functions
# builds a hash-table of the methods which need to be added to a class
# does the conflict detection
# - reused php_runkit_function_copy_ctor
# - it is not identical with the original code anymore, needed to update it
# think I fixed some bugs, not sure whether all have been reported back to runkit
# - has to be renamed, left the name for the moment, to make its origin obvious
# - here might be optimization potential
# - not sure whether everything needs to be copied
# - copying the literals might be broken
# - added it since the literals array is freed by efree and gave problems
# with doubled frees
# - all immutable parts of the zend_op array should not be copied
# - am not sure which parts are immutable
# - and not sure how to avoid doubled frees on the same arrays on shutdown
# - _merge_functions_to_class
# does the final merging with the target class to handle inherited
# and overridden methods
# - small helper for NULL terminated lists
# zend_init_list, zend_add_to_list
#
# zend_language_parser.y
# - reused class definition for traits
# - there should be something with regard to properties
# - if they get explicitly defined, it might be worthwhile to
# check that there are no collisions with other traits in a composition
# (however, I would not introduce elaborate language features to control that
# but a notice for such conflicts might be nice to the developers)
/PHP_5_5/Zend/zend_opcode.c
dd5c478 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.
/PHP_5_5/Zend/zend_opcode.c
94dd837 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
/PHP_5_5/Zend/zend_opcode.c
d2281d1 05-Jan-2010 Sebastian Bergmann <sebastian@php.net> sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php
/PHP_5_5/Zend/zend_opcode.c
cb7a21a 05-Jun-2009 Brian Shire <shire@php.net> MFH: Make pass_two visible to extensions with ZEND_API (required for optimizer).
/PHP_5_5/Zend/zend_opcode.c
08659c2 31-Dec-2008 Sebastian Bergmann <sebastian@php.net> MFH: Bump copyright year, 3 of 3.
/PHP_5_5/Zend/zend_opcode.c
22a5aea 29-Aug-2008 Matt Wilmas <mattwil@php.net> MFH: - Updated unary_op_type typedef with TSRMLS_DC
- Added binary_op_type typedef
- Added missing ZEND_BOOL_XOR to get_binary_op()
/PHP_5_5/Zend/zend_opcode.c
5521912 07-May-2008 Dmitry Stogov <dmitry@php.net> Use IS_CV for dirrent access to $this variable
/PHP_5_5/Zend/zend_opcode.c
f66f55e 28-Mar-2008 Felipe Pena <felipe@php.net> MFH: Implemented "jump label" operator (limited "goto")
[DOC]
/PHP_5_5/Zend/zend_opcode.c
8c885b8 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);
CG(compiler_options) |= ZEND_COMPILE_IGNORE_INTERNAL_CLASSES |
ZEND_COMPILE_DELAYED_BINDING;
$op_array = orig_compile_file($filename);
CG(compiler_options) = orig_copiler_options;
...
} else {
$op_array = restore_from_cache($filename);
}
zend_do_delayed_early_binding($op_array);
}
/PHP_5_5/Zend/zend_opcode.c
d1dded8 31-Dec-2007 Sebastian Bergmann <sebastian@php.net> MFH: Bump copyright year, 2 of 2.
/PHP_5_5/Zend/zend_opcode.c
45f6b4c 21-Nov-2007 Johannes Schlüter <johannes@php.net> - MFH Improved version of ternary shortcut (Marcus)
/PHP_5_5/Zend/zend_opcode.c
991f1d8 18-Nov-2007 Derick Rethans <derick@php.net> - MFH: Initialize the reserved resource bits so that they can be reliably used.
/PHP_5_5/Zend/zend_opcode.c
4b4d634 07-Oct-2007 Yiduo (David) Wang <davidw@php.net> MFH: Added macros for managing zval refcounts and is_ref statuses
/PHP_5_5/Zend/zend_opcode.c
6c810b0 27-Sep-2007 Dmitry Stogov <dmitry@php.net> Improved memory usage by movig constants to read only memory. (Dmitry, Pierre)
/PHP_5_5/Zend/zend_opcode.c
e1814f0 16-Apr-2007 Dmitry Stogov <dmitry@php.net> WIN64 support
/PHP_5_5/Zend/zend_opcode.c
0291ad5 15-Feb-2007 Dmitry Stogov <dmitry@php.net> Fixed bug #40236 (php -a function allocation eats memory)
/PHP_5_5/Zend/zend_opcode.c
4223aa4 01-Jan-2007 Sebastian Bergmann <sebastian@php.net> MFH: Bump year.
/PHP_5_5/Zend/zend_opcode.c
64e7be9 10-Apr-2006 Dmitry Stogov <dmitry@php.net> Fixed possible crash in interactive mode
/PHP_5_5/Zend/zend_opcode.c
161ae71 14-Mar-2006 Dmitry Stogov <dmitry@php.net> zend_hash_apply() doesn't use ZEND_HASH_APPLY_... macros
/PHP_5_5/Zend/zend_opcode.c
ad10a53 13-Mar-2006 Dmitry Stogov <dmitry@php.net> Optimized cleanup loops on request shutdown
/PHP_5_5/Zend/zend_opcode.c
61e93cc 04-Jan-2006 Andi Gutmans <andi@php.net> - Update copyright notices to 2006
/PHP_5_5/Zend/zend_opcode.c
8768ab9 01-Dec-2005 Dmitry Stogov <dmitry@php.net> Fixed bug #34729 (Crash in ZTS mode under Apache)
/PHP_5_5/Zend/zend_opcode.c
248345d 01-Sep-2005 Dmitry Stogov <dmitry@php.net> Support for class constants and static members for internal classes
/PHP_5_5/Zend/zend_opcode.c
916815b 03-Aug-2005 foobar <sniper@php.net> Bump up the year
/PHP_5_5/Zend/zend_opcode.c
db507dd 04-Oct-2004 Andi Gutmans <andi@php.net> - Commit the variable fetch optimization.
- Extensions which delete global variables need to use new special function
- delete_global_variable() (I'm about to rename it) to remove them.
- Will post to internals@ or via commit messages if there's anything else.
/PHP_5_5/Zend/zend_opcode.c
f82ed13 23-Sep-2004 Andi Gutmans <andi@php.net> - Commit new VM architecture. This one allows people (aka Derick) to
- ask the engine to use function handler mode. Will update the README
- about that.
/PHP_5_5/Zend/zend_opcode.c
96ab56e 09-Sep-2004 Andi Gutmans <andi@php.net> - Roll back VM commit
/PHP_5_5/Zend/zend_opcode.c
8eb8850 08-Sep-2004 Andi Gutmans <andi@php.net> - Some architectural changes:
a) We specialize opcodes according to op_type fields. Each opcode has to
be marked with which op_type's it uses.
b) We support different execution methods. Function handlers, switch()
and goto dispatching. goto seems to be the fastest but it really
depends on the compiler and how well it optimizes. I suggest playing
around with optimization flags.

- Warning: Things might break so keep us posted on how things are going.
(Dmitry, Andi)
/PHP_5_5/Zend/zend_opcode.c
d96e7a1 29-Jul-2004 Sara Golemon <pollita@php.net> Revert goto opcode
/PHP_5_5/Zend/zend_opcode.c
5865b36 29-Jul-2004 Sara Golemon <pollita@php.net> Add goto operator by popular request.
/PHP_5_5/Zend/zend_opcode.c
fb5cb59 06-Jun-2004 Stefan Esser <sesser@php.net> Fixed Zend Function Destructor to use correct TSRM handle.
/PHP_5_5/Zend/zend_opcode.c
36a7518 25-Feb-2004 Zeev Suraski <zeev@php.net> - Abstract methods cannot have defaults for arguments
- Make function foo($a, $b=null) satisfy both foo($a) and foo($a, $b)
prototypes
/PHP_5_5/Zend/zend_opcode.c
acf7a5e 20-Feb-2004 foobar <sniper@php.net> ws fix
/PHP_5_5/Zend/zend_opcode.c
7236415 04-Feb-2004 Zeev Suraski <zeev@php.net> Optimize
/PHP_5_5/Zend/zend_opcode.c
9e60cb5 03-Feb-2004 Zeev Suraski <zeev@php.net> Rewrote exception support. Fixes a few limitations and bugs in the old
implementation, and allows exceptions to 'fire' much earlier than before.

Instructions on how to use the new mechanism will follow on internals@
shortly...

Note - this (most probably) breaks the current implementation of
set_exception_handler()
/PHP_5_5/Zend/zend_opcode.c
ccfc46b 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?
/PHP_5_5/Zend/zend_opcode.c
6f53e48 04-Aug-2003 Zeev Suraski <zeev@php.net> This check shouldn't be necessary
/PHP_5_5/Zend/zend_opcode.c
1f8fd69 03-Aug-2003 Marcus Boerger <helly@php.net> Fix crash
/PHP_5_5/Zend/zend_opcode.c
f8bbafd 03-Aug-2003 Zeev Suraski <zeev@php.net> ntroduce infrastructure for supplying information about arguments,
including:

- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance

Both user and builtin functions share the same data structures.

To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:

ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
ZEND_ARG_OBJ_INFO(0, someone, Person, 1)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();

and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.

The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.

The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.
/PHP_5_5/Zend/zend_opcode.c
237116a 23-Jul-2003 Stanislav Malyshev <stas@php.net> Remove namespace leftovers
/PHP_5_5/Zend/zend_opcode.c
288dacc 30-Jun-2003 Andi Gutmans <andi@php.net> - ZE coding style requires if ( instead of if(
/PHP_5_5/Zend/zend_opcode.c
f68c7ff 10-Jun-2003 James Cox <imajes@php.net> updating license information in the headers.
/PHP_5_5/Zend/zend_opcode.c
f7f5a5e 02-Jun-2003 Stanislav Malyshev <stas@php.net> MEGA-patch: namespaces are R.I.P.
/PHP_5_5/Zend/zend_opcode.c
a023c10 01-Jun-2003 Marcus Boerger <helly@php.net> Bugfix #23670: implements and extends cause Apache 2 crash
/PHP_5_5/Zend/zend_opcode.c
48b3303 18-Apr-2003 Sterling Hughes <sterling@php.net> Patch by Marcus Börger to fix some memleaks
/PHP_5_5/Zend/zend_opcode.c
62f9eb8 01-Apr-2003 Andrei Zmievski <andrei@php.net> Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
okay with engine folks.
/PHP_5_5/Zend/zend_opcode.c
5657b83 31-Mar-2003 Andrei Zmievski <andrei@php.net> Multi-purpose patch:
- The fields of zend_namespace were not completely initialized which
led to a variety of problems.
- The occurrence of class/interface/namespace definition is now
captured.
- Functions/classes/interfaces/namespaces can be preceded by doc
comments which are stored for use by extensions.
/PHP_5_5/Zend/zend_opcode.c
3fc8528 26-Mar-2003 Sebastian Bergmann <sebastian@php.net> Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry().
/PHP_5_5/Zend/zend_opcode.c
26dd849 05-Mar-2003 Zeev Suraski <zeev@php.net> Add support for interfaces
/PHP_5_5/Zend/zend_opcode.c
e645f20 20-Feb-2003 Stanislav Malyshev <stas@php.net> Allow namespaces to have a number of parts. I.e., now you can do:
namespace foo {
function abc() {}
}
...
namespace foo {
functio def() {}
}
/PHP_5_5/Zend/zend_opcode.c
955636a 18-Feb-2003 Zeev Suraski <zeev@php.net> Avoid using a C++ reserved word
/PHP_5_5/Zend/zend_opcode.c
a4c3b2c 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).
/PHP_5_5/Zend/zend_opcode.c
17439aa 05-Feb-2003 Zeev Suraski <zeev@php.net> Rework static class properties - now supports access restrictions
/PHP_5_5/Zend/zend_opcode.c
471947b 04-Feb-2003 Zeev Suraski <zeev@php.net> Reimplement PPP properties
/PHP_5_5/Zend/zend_opcode.c
333406b 01-Feb-2003 foobar <sniper@php.net> - Added some missing CVS $Id$ tags, headers and footers.
/PHP_5_5/Zend/zend_opcode.c
03f88ac 29-Jan-2003 Stanislav Malyshev <stas@php.net> Add additional stage to post-session cleanup.
We need separate cleanup stage because of the following problem:
Suppose we destroy class X, which destroys function table,
and in function table we have function foo() that has static $bar. Now if
object of class X was assigned to $bar, its destructor will be called and will
fail since X's function table is in mid-destruction.
So we want first of all to clean up all data and then move to tables
destruction.
Note that only run-time accessed data need to be cleaned up, pre-defined
data can not contain objects and thus are not probelmatic.
# Looks like we are having a lots of pain in the various parts of the body
# because of the destructors...
/PHP_5_5/Zend/zend_opcode.c
2c5d4b8 31-Dec-2002 Sebastian Bergmann <sebastian@php.net> Bump year.
/PHP_5_5/Zend/zend_opcode.c
671fff2 30-Nov-2002 Andi Gutmans <andi@php.net> h WHitespace
/PHP_5_5/Zend/zend_opcode.c
023836a 24-Oct-2002 Andi Gutmans <andi@php.net> - Also tune jmpz_ex
/PHP_5_5/Zend/zend_opcode.c
8010931 24-Oct-2002 Andi Gutmans <andi@php.net> - Improve performance of part of the jmps. More to follow.
/PHP_5_5/Zend/zend_opcode.c
536d4d8 19-Oct-2002 Andi Gutmans <andi@php.net> - Improve opcode dispatching
/PHP_5_5/Zend/zend_opcode.c
bc5ea87 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.
/PHP_5_5/Zend/zend_opcode.c
51e797f 23-Apr-2002 Harald Radi <phanto@php.net> some type cleanup work
/PHP_5_5/Zend/zend_opcode.c
0ce019f 15-Mar-2002 Andi Gutmans <andi@php.net> - Fix issues with $this when using it by itself without indirection such as
- $this->foo.
/PHP_5_5/Zend/zend_opcode.c
fb6976e 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.
/PHP_5_5/Zend/zend_opcode.c
c8c629b 12-Mar-2002 Andi Gutmans <andi@php.net> - Fix bug introduced with latest class hash table change.
/PHP_5_5/Zend/zend_opcode.c
92dd5e6 12-Mar-2002 Stanislav Malyshev <stas@php.net> - make class tables contain class_entry *, not class_entry
- fix isset($this)
/PHP_5_5/Zend/zend_opcode.c
d1eea3d 01-Mar-2002 Andi Gutmans <andi@php.net> - Fix bug in nested try/catch's
- Infrastructure for implementing imports of methods.
/PHP_5_5/Zend/zend_opcode.c
00e90f2 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 */
$obj->printHello();
?>
/PHP_5_5/Zend/zend_opcode.c
7309a6e 25-Jan-2002 Andi Gutmans <andi@php.net> - First destructor hell fix. There was a situation where an object's
- destructor could be run after its class was already dead. Right now
- object destructors is the first thing whic happens during shutdown in
- order to prevent this problem. It's very likely that destructors will
- cause more grief and we'll have to outline exactly when you should use
- them and what kind of logic you're allowed to do inside of them.
- This bug was reported by sebastian.
/PHP_5_5/Zend/zend_opcode.c
2131b01 20-Jan-2002 Andi Gutmans <andi@php.net> - Improve performance of functions that use $GLOBALS[]
- Please check this and make sure it doesn't break anything.
/PHP_5_5/Zend/zend_opcode.c
62dc854 06-Jan-2002 Sebastian Bergmann <sebastian@php.net> Happy New Year.
/PHP_5_5/Zend/zend_opcode.c
f4b832d 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
/PHP_5_5/Zend/zend_opcode.c
4cb97fa 11-Dec-2001 Andi Gutmans <andi@php.net> - Rename zend_class_entry.constants -> zend_class_entry.constants_table
/PHP_5_5/Zend/zend_opcode.c
d863d52 11-Dec-2001 Sebastian Bergmann <sebastian@php.net> Update headers.
/PHP_5_5/Zend/zend_opcode.c
e858d27 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:
<?php
class foo
{
const hey = "hello";
}

print foo::hey;
?>
/PHP_5_5/Zend/zend_opcode.c
d2da63f 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";
}
}
}
}

foo::bar::init_values();
foo::bar::print_values();

for ($i=1; $i<10; $i++) {
print $hello[$i]?"Shouldn't be printed\n":"";
}
?>
/PHP_5_5/Zend/zend_opcode.c
0a682c6 29-Oct-2001 Andi Gutmans <andi@php.net> - Fix internal classes
/PHP_5_5/Zend/zend_opcode.c
26578c3 29-Oct-2001 Andi Gutmans <andi@php.net> - Initial support for nested class definitions
/PHP_5_5/Zend/zend_opcode.c
d76cf1d 31-Jul-2001 Zeev Suraski <zeev@php.net> More TSRMLS_FETCH work
/PHP_5_5/Zend/zend_opcode.c
b577038 30-Jul-2001 Zeev Suraski <zeev@php.net> Avoid TSRMLS_FETCH()'s (still lots of work left)
/PHP_5_5/Zend/zend_opcode.c
b4f3b9d 28-Jul-2001 Zeev Suraski <zeev@php.net> Redesigned thread safety mechanism - nua nua
/PHP_5_5/Zend/zend_opcode.c
85b4df5 15-Jul-2001 Zeev Suraski <zeev@php.net> Improved interactive mode - it is now available in all builds, without any significant slowdown
/PHP_5_5/Zend/zend_opcode.c
d8c11e6 11-May-2001 Andi Gutmans <andi@php.net> - Fix crash bug when opcodes array is erealloc()'ed to a different memory
area before it reaches the loop.
- Some whitespace stuff
/PHP_5_5/Zend/zend_opcode.c
3380fa1 08-May-2001 Andi Gutmans <andi@php.net> - Fix crash bug reported by DBG author Dmitri Dmitrienko.
/PHP_5_5/Zend/zend_opcode.c
d2c9e80 26-Feb-2001 Andi Gutmans <andi@php.net> - Update copyright year
/PHP_5_5/Zend/zend_opcode.c
1860303 30-Dec-2000 Zeev Suraski <zeev@php.net> Fix possible corruption in line number information
/PHP_5_5/Zend/zend_opcode.c
86a13dd 11-Nov-2000 Andi Gutmans <andi@php.net> - Beautify by using the standard #define.
/PHP_5_5/Zend/zend_opcode.c
5475424 15-Oct-2000 Andi Gutmans <andi@php.net> - Increase op_array size faster and make eralloc() it in the end to save
memory.
/PHP_5_5/Zend/zend_opcode.c
c06692e 09-Aug-2000 Zeev Suraski <zeev@php.net> The patch we promised - redesigned the compilation/execution API:
Advantages:
- Smaller memory footprint for the op arrays
- Slightly faster compilation times (due to saved erealloc() calls and faster zend_op
initialization)
- 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.
/PHP_5_5/Zend/zend_opcode.c
03c8443 17-May-2000 Andi Gutmans <andi@php.net> Fix order
/PHP_5_5/Zend/zend_opcode.c
30da5fd 08-May-2000 Andi Gutmans <andi@php.net> Thoroughly initialize IS_UNUSED for proper cleanup
/PHP_5_5/Zend/zend_opcode.c
5ef03c4 29-Apr-2000 Zeev Suraski <zeev@php.net> Pass the op_array to the ctor/dtor, instead of just the resource
/PHP_5_5/Zend/zend_opcode.c
42d1529 29-Apr-2000 Zeev Suraski <zeev@php.net> Fix possible bug with extension dtors being called without the ctors being called first
/PHP_5_5/Zend/zend_opcode.c
e0a48fe 29-Apr-2000 Zeev Suraski <zeev@php.net> Beautify
/PHP_5_5/Zend/zend_opcode.c
207167c 19-Apr-2000 Andi Gutmans <andi@php.net> - Export pass_include() for Windows
/PHP_5_5/Zend/zend_opcode.c
521c8af 29-Mar-2000 Torben Wilson <torben@php.net> Added !== (is not identical) operator.
/PHP_5_5/Zend/zend_opcode.c
b763b25 26-Mar-2000 Andi Gutmans <andi@php.net> - Include Andrea's fix for alloca.h
/PHP_5_5/Zend/zend_opcode.c
7000362 26-Mar-2000 Thies C. Arntzen <thies@php.net> fix cast
/PHP_5_5/Zend/zend_opcode.c
5dba477 25-Mar-2000 Zeev Suraski <zeev@php.net> - Some header dependencies cleanup
- Generalize zval_print() and zval_print_r()
/PHP_5_5/Zend/zend_opcode.c
f30765e 15-Mar-2000 Zeev Suraski <zeev@php.net> - Fix warning (I thought I fixed this one before)
/PHP_5_5/Zend/zend_opcode.c
5e55e47 06-Mar-2000 Zeev Suraski <zeev@php.net> It's official now...
/PHP_5_5/Zend/zend_opcode.c
0ac9536 19-Feb-2000 Zeev Suraski <zeev@php.net> (c) patch
/PHP_5_5/Zend/zend_opcode.c
b6197bc 04-Feb-2000 Zeev Suraski <zeev@php.net> Maintain a state of whether we're compiling and/or executing
/PHP_5_5/Zend/zend_opcode.c
4585f7b 26-Jan-2000 Andi Gutmans <andi@php.net> - Allow is_ref to become 0 in case the refcount is back to 1.
/PHP_5_5/Zend/zend_opcode.c
62114c1 17-Jan-2000 Zeev Suraski <zeev@php.net> Destructors no longer return ints, the low level problem it was intended to solve is long gone now...
/PHP_5_5/Zend/zend_opcode.c
b7a5b3c 27-Dec-1999 Zeev Suraski <zeev@php.net> - Generalize the fast cache mechanism
- Add the HashTable struct to the fast cache mechanism
/PHP_5_5/Zend/zend_opcode.c
b996436 23-Dec-1999 Zeev Suraski <zeev@php.net> Fix a class inheritence leak, when using static varibles in a parent class member function
/PHP_5_5/Zend/zend_opcode.c
ced9cee 15-Dec-1999 Zeev Suraski <zeev@php.net> - Implement return by reference:
- In function declaration instead of the return statement
- In the assignment phase
- Implement ability to turn off support for call-time pass by reference
/PHP_5_5/Zend/zend_opcode.c
7a205f6 19-Oct-1999 Andi Gutmans <andi@php.net> - Preliminary submit of Thie's patch. Will fix the rest on Windows
as this was added on UNIX with patch. Changed IS_SAME -> IS_IDENTICAL
/PHP_5_5/Zend/zend_opcode.c
86357a9 01-Oct-1999 Andi Gutmans <andi@php.net> - Move is_ref back to being an unsigned char and not a bit field.
/PHP_5_5/Zend/zend_opcode.c
babad26 20-Sep-1999 Andi Gutmans <andi@php.net> - First step in fixing locking problem. Array fetches are now always done last.
Later on we will want to delay the write fetches even longer until after their
resulting expression is parsed. The way it is now, will make it very easy
to delay as long as we need.
/PHP_5_5/Zend/zend_opcode.c
e5fbf44 19-Aug-1999 Andi Gutmans <andi@php.net> - Make sure expr_list and echo_list are either empty or comma seperated
expressions
/PHP_5_5/Zend/zend_opcode.c
bbe27ff 03-Aug-1999 Andi Gutmans <andi@php.net> - Initialize extended value's and put the fetch_type in it's own variable
name.
/PHP_5_5/Zend/zend_opcode.c
8d1de13 19-Jul-1999 Zeev Suraski <zeev@php.net> 0.91 update
/PHP_5_5/Zend/zend_opcode.c
b5b1117 16-Jul-1999 Zeev Suraski <zeev@php.net> License update
/PHP_5_5/Zend/zend_opcode.c
2a6da78 09-Jul-1999 Zeev Suraski <zeev@php.net> Step 4:
Move to a 7-bit counter (not fully implemented yet)
/PHP_5_5/Zend/zend_opcode.c
6ec1acb 09-Jul-1999 Zeev Suraski <zeev@php.net> Phase 3:
Use a single bit to mark IS_REF variables
/PHP_5_5/Zend/zend_opcode.c
5f62c34 09-Jul-1999 Zeev Suraski <zeev@php.net> Step 2:
Rename is_ref to EA
/PHP_5_5/Zend/zend_opcode.c
81d901b 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
/PHP_5_5/Zend/zend_opcode.c
1b4b5c4 04-Jun-1999 Zeev Suraski <zeev@php.net> New $GLOBALS init
/PHP_5_5/Zend/zend_opcode.c
9108abc 04-Jun-1999 Zeev Suraski <zeev@php.net> Minor updates (mostly __declspec() stuff)
/PHP_5_5/Zend/zend_opcode.c
8802964 30-May-1999 Sascha Schumann <sas@php.net> * fix some casts
* introduce unary_op_type - cleaner than casting data voids to function ptrs
/PHP_5_5/Zend/zend_opcode.c
5dd7f27 30-Apr-1999 Andi Gutmans <andi@php.net> - Free refcount when destroying the last class reference.
/PHP_5_5/Zend/zend_opcode.c
2493f68 27-Apr-1999 Zeev Suraski <zeev@php.net> * Fix debugger+interactive mode bug
* Recognize whether an extension is with debug information or not
/PHP_5_5/Zend/zend_opcode.c
7c4a083 26-Apr-1999 Zeev Suraski <zeev@php.net> Various thread safety fixes and DLL updates
/PHP_5_5/Zend/zend_opcode.c
5a5806e 24-Apr-1999 Zeev Suraski <zeev@php.net> Cleanups, remove old ts code
/PHP_5_5/Zend/zend_opcode.c
551fe77 22-Apr-1999 Zeev Suraski <zeev@php.net> Make token names uniform, they all begin with T_ now.
/PHP_5_5/Zend/zend_opcode.c
7a87fcb 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.
/PHP_5_5/Zend/zend_opcode.c
342c6e0 18-Apr-1999 Zeev Suraski <zeev@php.net> Whatnot:
* 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)
/PHP_5_5/Zend/zend_opcode.c
39f9487 14-Apr-1999 Andi Gutmans <andi@php.net> -Tiny patches
/PHP_5_5/Zend/zend_opcode.c
17bdb70 08-Apr-1999 Zeev Suraski <zeev@php.net> $GLOBALS support
/PHP_5_5/Zend/zend_opcode.c
573b460 07-Apr-1999 Andi Gutmans <andi@php.net> Zend Library
/PHP_5_5/Zend/zend_opcode.c