History log of /PHP_TRUNK/Zend/zend_opcode.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2d069f6 27-Sep-2014 Andrea Faulds <ajf@ajf.me> Merge branch 'coalesce_operator'

* coalesce_operator:
Extended coalesce operator test case for ordering/short-circuiting
Ensure not evaluated twice
Added test
Initial coalesce operator implementation
7cef08c 22-Sep-2014 Dmitry Stogov <dmitry@zend.com> Allocate copies of internal functions inherited in user classes at CG(arena), instead of permanent heap (malloc).
/php-src/Zend/zend_opcode.c
69e7c9d 16-Sep-2014 Nikita Popov <nikic@php.net> Initial coalesce operator implementation
/php-src/Zend/zend_opcode.c
383a077 15-Sep-2014 Anatol Belski <ab@php.net> fix signed/unsigned mismatch
/php-src/Zend/zend_opcode.c
82096dc 10-Sep-2014 Dmitry Stogov <dmitry@zend.com> Removed ZEND_QM_ASSIGN_VAR and ZEND_JMP_SET_VAR opcodes (in PHPNG they did exacly the same as ZEND_QM_ASSIGN and ZEND_JMP_SET)
/php-src/Zend/zend_opcode.c
9e75353 03-Sep-2014 Nikita Popov <nikic@php.net> Use zval_ptr_dtor_nogc to destroy literals

Also move the definition of zval_ptr_dtor_nogc to zend_variables.h
(from zend_execute.h/.c) as it's used in a few places.
/php-src/Zend/zend_opcode.c
ee552b6 27-Aug-2014 Dmitry Stogov <dmitry@zend.com> Reorder fields for better nenory consumtion and data locality on 64-bit systems
/php-src/Zend/zend_opcode.c
b1f53ca 27-Aug-2014 Dmitry Stogov <dmitry@zend.com> Use efree_size() instead of efree() where posible
/php-src/Zend/zend_opcode.c
59848e3 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.
/php-src/Zend/zend_opcode.c
6db293d 25-Aug-2014 Nikita Popov <nikic@php.net> Merge remote-tracking branch 'php-src/master' into ast

Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_globals.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_types.h
6f9f0bf 25-Aug-2014 Anatol Belski <ab@php.net> master renames phase 2
/php-src/Zend/zend_opcode.c
c3e3c98 25-Aug-2014 Anatol Belski <ab@php.net> master renames phase 1
/php-src/Zend/zend_opcode.c
8ee2a4a 16-Aug-2014 Anatol Belski <ab@php.net> first shot on merging the core fro the int64 branch
/php-src/Zend/zend_opcode.c
d4d4b69 22-Jul-2014 Nikita Popov <nikic@php.net> Merge branch 'phpng' into ast

Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

Some of dmitry's optimizations are not merged in yet!
f2a2fcc 22-Jul-2014 Dmitry Stogov <dmitry@zend.com> Merge branch 'master' into phpng

* master:
fix nmake snap when ext name is different in target dll
force atoll macro usage on windows
Enable $ replacement in exif, ldap, pdo_pgsql and tidy
See bug #67635
NEWS
NEWS
improve previous, add message during configure
Fixed bug #67635 php links to systemd libraries without using pkg-config
Improve fix for #66608
Fixed segfault with empty break
New added opcodes don't need to be resloved
Update NEWS
Update NEWS
Update NEWS
Fixed bug #66827 Session raises E_NOTICE when session name variable is array
implemented copy libs of core exts in phpize mode
fix copy the ext dll into the prefix path in phpize mode
fix default prefix in phpize mode
fix file with zero size usage in phpize mode

Conflicts:
Zend/zend_opcode.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/session/session.c
1d2f232 19-Jul-2014 Xinchen Hui <laruence@php.net> Merge branch 'PHP-5.5' into PHP-5.6
8ff00e6 19-Jul-2014 Xinchen Hui <laruence@php.net> Improve fix for #66608
/php-src/Zend/zend_opcode.c
9ce1a36 19-Jul-2014 Xinchen Hui <laruence@php.net> Fixed segfault with empty break
/php-src/Zend/zend_opcode.c
9bef96d 19-Jul-2014 Xinchen Hui <laruence@php.net> Merge branch 'PHP-5.5' into PHP-5.6
f604b61 18-Jul-2014 Xinchen Hui <laruence@php.net> New added opcodes don't need to be resloved
/php-src/Zend/zend_opcode.c
110bf9c 18-Jul-2014 Xinchen Hui <laruence@php.net> Merge remote-tracking branch 'origin/master' into phpng

Conflicts:
Zend/zend_compile.h
ext/openssl/xp_ssl.c
550b3e4 18-Jul-2014 Xinchen Hui <laruence@php.net> Merge branch 'PHP-5.5' into PHP-5.6

Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
de433d4 18-Jul-2014 Xinchen Hui <laruence@php.net> Fixed bug #66608 (Incorrect behavior with nested "finally" blocks)
/php-src/Zend/zend_opcode.c
f589713 15-Jul-2014 Nikita Popov <nikic@php.net> Preliminary function decl support

Problem: __FUNCTION__ etc don't work anymore, due to lexer/parser
interdependency.
/php-src/Zend/zend_opcode.c
1d1226a 01-Jul-2014 Xinchen Hui <laruence@php.net> Suppress warning "cast from pointer to integer of different size"
/php-src/Zend/zend_opcode.c
b7715c7 30-Jun-2014 Dmitry Stogov <dmitry@zend.com> Refactored parameter passing mechanism.

In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.

There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
/php-src/Zend/zend_opcode.c
657762e 19-Jun-2014 Nikita Popov <nikic@php.net> AST stage 2.4
/php-src/Zend/zend_opcode.c
e1b18e5 17-Jun-2014 Dmitry Stogov <dmitry@zend.com> Use arena allocator for zend_class_entry, zend_op_array and zend_property_info that live till the end of request
/php-src/Zend/zend_opcode.c
14e6ee7 11-Jun-2014 Dmitry Stogov <dmitry@zend.com> Use absolute addresses as branch targets for NEW, FE_RESET and FE_FETCH
/php-src/Zend/zend_opcode.c
6714770 25-May-2014 Nikita Popov <nikic@php.net> Fix ZTS build
/php-src/Zend/zend_opcode.c
c2082ec 25-May-2014 Xinchen Hui <laruence@php.net> Fixed apply_func_t (they should be broken before)
/php-src/Zend/zend_opcode.c
6a911e8 30-Apr-2014 Dmitry Stogov <dmitry@zend.com> Optimized JMPZNZ to avoid multiplication at runtime (may be it makes sense to use relative addresses everywere it'll lead to Position Independent Code)
/php-src/Zend/zend_opcode.c
f9927a6 25-Apr-2014 Dmitry Stogov <dmitry@zend.com> Merge mainstream 'master' branch into refactoring
During merge I had to revert:
Nikita's patch for php_splice() (it probably needs to be applyed again)
Bob Weinand's patches related to constant expression handling (we need to review them carefully)
I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway)

Conflicts:
Zend/zend.h
Zend/zend_API.c
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c
Zend/zend_hash.c
Zend/zend_highlight.c
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_variables.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/date/php_date.c
ext/dom/documenttype.c
ext/hash/hash.c
ext/iconv/iconv.c
ext/mbstring/tests/zend_multibyte-10.phpt
ext/mbstring/tests/zend_multibyte-11.phpt
ext/mbstring/tests/zend_multibyte-12.phpt
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/mysqlnd/mysqlnd_reverse_api.c
ext/mysqlnd/php_mysqlnd.c
ext/opcache/ZendAccelerator.c
ext/opcache/zend_accelerator_util_funcs.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/pcre/php_pcre.c
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c
ext/pdo_pgsql/pgsql_driver.c
ext/pgsql/pgsql.c
ext/reflection/php_reflection.c
ext/session/session.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
ext/standard/array.c
ext/standard/basic_functions.c
ext/standard/html.c
ext/standard/mail.c
ext/standard/php_array.h
ext/standard/proc_open.c
ext/standard/streamsfuncs.c
ext/standard/user_filters.c
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re
main/php_variables.c
sapi/phpdbg/phpdbg.c
sapi/phpdbg/phpdbg_bp.c
sapi/phpdbg/phpdbg_frame.c
sapi/phpdbg/phpdbg_help.c
sapi/phpdbg/phpdbg_list.c
sapi/phpdbg/phpdbg_print.c
sapi/phpdbg/phpdbg_prompt.c
f71da39 21-Apr-2014 Dmitry Stogov <dmitry@zend.com> Use ZEND_HASH_FOEACH_* instead of zend_hash_apply_*
/php-src/Zend/zend_opcode.c
e96073b 17-Apr-2014 Dmitry Stogov <dmitry@zend.com> Moved zend_literal->cache_slot right into zval.
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.
/php-src/Zend/zend_opcode.c
050d7e3 15-Apr-2014 Dmitry Stogov <dmitry@zend.com> Cleanup (1-st round)
/php-src/Zend/zend_opcode.c
98ca90c 01-Apr-2014 Dmitry Stogov <dmitry@zend.com> Fixed char*/zend_string* mess
/php-src/Zend/zend_opcode.c
47fdb9e 31-Mar-2014 Dmitry Stogov <dmitry@zend.com> fixed craches at request shutdown and memory leaks
/php-src/Zend/zend_opcode.c
9a8fbdf 27-Mar-2014 Dmitry Stogov <dmitry@zend.com> Use CV variable offset instead of CV variable number
/php-src/Zend/zend_opcode.c
ef6919e 21-Mar-2014 Dmitry Stogov <dmitry@zend.com> Fixed static data cleanup
/php-src/Zend/zend_opcode.c
598a518 21-Feb-2014 Dmitry Stogov <dmitry@zend.com> Fixed improper deallocation
/php-src/Zend/zend_opcode.c
47fb198 21-Feb-2014 Xinchen Hui <laruence@gmail.com> Revert "Use zend_string for arg_info to fixed segfault in Zend/tests/argument_restriction_003.phpt"

This reverts commit b96318105b8a908ec3cb294b8133e36d1b8cba7a.
/php-src/Zend/zend_opcode.c
b963181 21-Feb-2014 Xinchen Hui <laruence@gmail.com> Use zend_string for arg_info to fixed segfault in Zend/tests/argument_restriction_003.phpt
/php-src/Zend/zend_opcode.c
557994d 18-Feb-2014 Dmitry Stogov <dmitry@zend.com> Use better data structures (incomplete)
/php-src/Zend/zend_opcode.c
a0fe8e5 17-Feb-2014 Dmitry Stogov <dmitry@zend.com> Use better data structures (incomplete)
/php-src/Zend/zend_opcode.c
2b9b9af 17-Feb-2014 Dmitry Stogov <dmitry@zend.com> Use better data structures (incomplete)
/php-src/Zend/zend_opcode.c
f4cfaf3 10-Feb-2014 Dmitry Stogov <dmitry@zend.com> Use better data structures (incomplete)
/php-src/Zend/zend_opcode.c
aff56f3 19-Nov-2013 datibbaw <datibbaw@php.net> add T_POW (**) operator

Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, but always a float

Yanked code from pow() implementation.

Should not handle negative long as exponent ourselves

Added test cases from pow()

Moved precedence higher than '~'

Added GMP operator overloading

Added ZEND_ASSIGN_POW (**=) operator.

Added pow() as a language construct.

Adjusted test cases for changed precedence.

Reduced pow() to shell function around ZEND_API pow_function()

Reduced test case to only contain edge cases
Added overloading test case

Moved unary minus above T_POW

Revert "Added pow() as a language construct."

Bad bad bad idea.

This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.

Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)

Rebase against master

Fixed tokenizer test case
/php-src/Zend/zend_opcode.c
c081ce6 03-Jan-2014 Xinchen Hui <laruence@php.net> Bump year
/php-src/Zend/zend_opcode.c
47c9027 03-Jan-2014 Xinchen Hui <laruence@php.net> Bump year
/php-src/Zend/zend_opcode.c
6f95a07 13-Dec-2013 Xinchen Hui <laruence@gmail.com> Merge branch 'PHP-5.5' into PHP-5.6
ef73f85 13-Dec-2013 Xinchen Hui <laruence@php.net> Use zend_error_noreturn here
/php-src/Zend/zend_opcode.c
54213b4 12-Dec-2013 Xinchen Hui <laruence@gmail.com> Disallowed JMP into a finally block.
/php-src/Zend/zend_opcode.c
794a888 12-Dec-2013 Xinchen Hui <laruence@gmail.com> Fixed bug #65784 (Segfault with finally).
/php-src/Zend/zend_opcode.c
64caedd 19-Oct-2013 Nikita Popov <nikic@php.net> Use zend_error_noreturn for all E_COMPILE_ERRORs
/php-src/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-src/Zend/zend_opcode.c
a666285 01-Jan-2013 Xinchen Hui <laruence@php.net> Happy New Year
/php-src/Zend/zend_opcode.c
0a7395e 01-Jan-2013 Xinchen Hui <laruence@php.net> Happy New Year
/php-src/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-src/Zend/zend_opcode.c
9c96fe5 12-Dec-2012 Dmitry Stogov <dmitry@zend.com> Restored proper generators behaviour in conjunction with "finally". (Nikita)
/php-src/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-src/Zend/zend_opcode.c
eb4825b 22-Nov-2012 Dmitry Stogov <dmitry@zend.com> Improved "finally" im[plementation
/php-src/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-src/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-src/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-src/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-src/Zend/zend_opcode.c
703a4e3 22-Aug-2012 Xinchen Hui <laruence@php.net> stash
/php-src/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-src/Zend/zend_opcode.c
72b9b8f 18-Aug-2012 Xinchen Hui <laruence@php.net> Make the codes clearer, and also check continue statement
/php-src/Zend/zend_opcode.c
f2a8912 17-Aug-2012 Xinchen Hui <laruence@php.net> Refactor examing of jumping out of finally block
/php-src/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-src/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-src/Zend/zend_opcode.c
8775a37 01-Jan-2012 Felipe Pena <felipe@php.net> - Year++
/php-src/Zend/zend_opcode.c
4e19825 01-Jan-2012 Felipe Pena <felipe@php.net> - Year++
/php-src/Zend/zend_opcode.c
ea5a61e 18-Oct-2011 Arnaud Le Blanc <lbarnaud@php.net> Improved ternary operator performance when returning arrays
/php-src/Zend/zend_opcode.c
07b7ba8 18-Oct-2011 Arnaud Le Blanc <lbarnaud@php.net> Improved ternary operator performance when returning arrays
/php-src/Zend/zend_opcode.c
4a25a77 13-Sep-2011 Dmitry Stogov <dmitry@php.net> Fixed ZE specific compile warnings (Bug #55629)
/php-src/Zend/zend_opcode.c
e43ff13 13-Sep-2011 Dmitry Stogov <dmitry@php.net> Fixed ZE specific compile warnings (Bug #55629)
/php-src/Zend/zend_opcode.c
0203cc3 01-Jan-2011 Felipe Pena <felipe@php.net> - Year++
/php-src/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-src/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-src/Zend/zend_opcode.c
3cf5ab9 05-Aug-2010 Dmitry Stogov <dmitry@php.net> Use interned strings for class names
/php-src/Zend/zend_opcode.c
3ea3bba 06-Jul-2010 Felipe Pena <felipe@php.net> - Fix ZTS build
/php-src/Zend/zend_opcode.c
1a1178a 06-Jul-2010 Dmitry Stogov <dmitry@php.net> eliminated unnecessary iterations during request startup/shutdown
/php-src/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-src/Zend/zend_opcode.c
f23e857 24-May-2010 Dmitry Stogov <dmitry@php.net> Fixed ZTS build
/php-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/Zend/zend_opcode.c
08659c2 31-Dec-2008 Sebastian Bergmann <sebastian@php.net> MFH: Bump copyright year, 3 of 3.
/php-src/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-src/Zend/zend_opcode.c
5521912 07-May-2008 Dmitry Stogov <dmitry@php.net> Use IS_CV for dirrent access to $this variable
/php-src/Zend/zend_opcode.c
f66f55e 28-Mar-2008 Felipe Pena <felipe@php.net> MFH: Implemented "jump label" operator (limited "goto")
[DOC]
/php-src/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-src/Zend/zend_opcode.c
d1dded8 31-Dec-2007 Sebastian Bergmann <sebastian@php.net> MFH: Bump copyright year, 2 of 2.
/php-src/Zend/zend_opcode.c
45f6b4c 21-Nov-2007 Johannes Schlüter <johannes@php.net> - MFH Improved version of ternary shortcut (Marcus)
/php-src/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-src/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-src/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-src/Zend/zend_opcode.c
e1814f0 16-Apr-2007 Dmitry Stogov <dmitry@php.net> WIN64 support
/php-src/Zend/zend_opcode.c
0291ad5 15-Feb-2007 Dmitry Stogov <dmitry@php.net> Fixed bug #40236 (php -a function allocation eats memory)
/php-src/Zend/zend_opcode.c
4223aa4 01-Jan-2007 Sebastian Bergmann <sebastian@php.net> MFH: Bump year.
/php-src/Zend/zend_opcode.c
64e7be9 10-Apr-2006 Dmitry Stogov <dmitry@php.net> Fixed possible crash in interactive mode
/php-src/Zend/zend_opcode.c
161ae71 14-Mar-2006 Dmitry Stogov <dmitry@php.net> zend_hash_apply() doesn't use ZEND_HASH_APPLY_... macros
/php-src/Zend/zend_opcode.c
ad10a53 13-Mar-2006 Dmitry Stogov <dmitry@php.net> Optimized cleanup loops on request shutdown
/php-src/Zend/zend_opcode.c
61e93cc 04-Jan-2006 Andi Gutmans <andi@php.net> - Update copyright notices to 2006
/php-src/Zend/zend_opcode.c
8768ab9 01-Dec-2005 Dmitry Stogov <dmitry@php.net> Fixed bug #34729 (Crash in ZTS mode under Apache)
/php-src/Zend/zend_opcode.c
248345d 01-Sep-2005 Dmitry Stogov <dmitry@php.net> Support for class constants and static members for internal classes
/php-src/Zend/zend_opcode.c
916815b 03-Aug-2005 foobar <sniper@php.net> Bump up the year
/php-src/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-src/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-src/Zend/zend_opcode.c
96ab56e 09-Sep-2004 Andi Gutmans <andi@php.net> - Roll back VM commit
/php-src/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-src/Zend/zend_opcode.c
d96e7a1 29-Jul-2004 Sara Golemon <pollita@php.net> Revert goto opcode
/php-src/Zend/zend_opcode.c
5865b36 29-Jul-2004 Sara Golemon <pollita@php.net> Add goto operator by popular request.
/php-src/Zend/zend_opcode.c
fb5cb59 06-Jun-2004 Stefan Esser <sesser@php.net> Fixed Zend Function Destructor to use correct TSRM handle.
/php-src/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-src/Zend/zend_opcode.c
acf7a5e 20-Feb-2004 foobar <sniper@php.net> ws fix
/php-src/Zend/zend_opcode.c
7236415 04-Feb-2004 Zeev Suraski <zeev@php.net> Optimize
/php-src/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-src/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-src/Zend/zend_opcode.c
6f53e48 04-Aug-2003 Zeev Suraski <zeev@php.net> This check shouldn't be necessary
/php-src/Zend/zend_opcode.c
1f8fd69 03-Aug-2003 Marcus Boerger <helly@php.net> Fix crash
/php-src/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-src/Zend/zend_opcode.c
237116a 23-Jul-2003 Stanislav Malyshev <stas@php.net> Remove namespace leftovers
/php-src/Zend/zend_opcode.c
288dacc 30-Jun-2003 Andi Gutmans <andi@php.net> - ZE coding style requires if ( instead of if(
/php-src/Zend/zend_opcode.c
f68c7ff 10-Jun-2003 James Cox <imajes@php.net> updating license information in the headers.
/php-src/Zend/zend_opcode.c
f7f5a5e 02-Jun-2003 Stanislav Malyshev <stas@php.net> MEGA-patch: namespaces are R.I.P.
/php-src/Zend/zend_opcode.c
a023c10 01-Jun-2003 Marcus Boerger <helly@php.net> Bugfix #23670: implements and extends cause Apache 2 crash
/php-src/Zend/zend_opcode.c
48b3303 18-Apr-2003 Sterling Hughes <sterling@php.net> Patch by Marcus Börger to fix some memleaks
/php-src/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-src/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-src/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-src/Zend/zend_opcode.c
26dd849 05-Mar-2003 Zeev Suraski <zeev@php.net> Add support for interfaces
/php-src/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-src/Zend/zend_opcode.c
955636a 18-Feb-2003 Zeev Suraski <zeev@php.net> Avoid using a C++ reserved word
/php-src/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-src/Zend/zend_opcode.c
17439aa 05-Feb-2003 Zeev Suraski <zeev@php.net> Rework static class properties - now supports access restrictions
/php-src/Zend/zend_opcode.c
471947b 04-Feb-2003 Zeev Suraski <zeev@php.net> Reimplement PPP properties
/php-src/Zend/zend_opcode.c
333406b 01-Feb-2003 foobar <sniper@php.net> - Added some missing CVS $Id$ tags, headers and footers.
/php-src/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-src/Zend/zend_opcode.c
2c5d4b8 31-Dec-2002 Sebastian Bergmann <sebastian@php.net> Bump year.
/php-src/Zend/zend_opcode.c
671fff2 30-Nov-2002 Andi Gutmans <andi@php.net> h WHitespace
/php-src/Zend/zend_opcode.c
023836a 24-Oct-2002 Andi Gutmans <andi@php.net> - Also tune jmpz_ex
/php-src/Zend/zend_opcode.c
8010931 24-Oct-2002 Andi Gutmans <andi@php.net> - Improve performance of part of the jmps. More to follow.
/php-src/Zend/zend_opcode.c
536d4d8 19-Oct-2002 Andi Gutmans <andi@php.net> - Improve opcode dispatching
/php-src/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-src/Zend/zend_opcode.c
51e797f 23-Apr-2002 Harald Radi <phanto@php.net> some type cleanup work
/php-src/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-src/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-src/Zend/zend_opcode.c
c8c629b 12-Mar-2002 Andi Gutmans <andi@php.net> - Fix bug introduced with latest class hash table change.
/php-src/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-src/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-src/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-src/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-src/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-src/Zend/zend_opcode.c
62dc854 06-Jan-2002 Sebastian Bergmann <sebastian@php.net> Happy New Year.
/php-src/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-src/Zend/zend_opcode.c
4cb97fa 11-Dec-2001 Andi Gutmans <andi@php.net> - Rename zend_class_entry.constants -> zend_class_entry.constants_table
/php-src/Zend/zend_opcode.c
d863d52 11-Dec-2001 Sebastian Bergmann <sebastian@php.net> Update headers.
/php-src/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-src/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-src/Zend/zend_opcode.c
0a682c6 29-Oct-2001 Andi Gutmans <andi@php.net> - Fix internal classes
/php-src/Zend/zend_opcode.c
26578c3 29-Oct-2001 Andi Gutmans <andi@php.net> - Initial support for nested class definitions
/php-src/Zend/zend_opcode.c
d76cf1d 31-Jul-2001 Zeev Suraski <zeev@php.net> More TSRMLS_FETCH work
/php-src/Zend/zend_opcode.c
b577038 30-Jul-2001 Zeev Suraski <zeev@php.net> Avoid TSRMLS_FETCH()'s (still lots of work left)
/php-src/Zend/zend_opcode.c
b4f3b9d 28-Jul-2001 Zeev Suraski <zeev@php.net> Redesigned thread safety mechanism - nua nua
/php-src/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-src/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-src/Zend/zend_opcode.c
3380fa1 08-May-2001 Andi Gutmans <andi@php.net> - Fix crash bug reported by DBG author Dmitri Dmitrienko.
/php-src/Zend/zend_opcode.c
d2c9e80 26-Feb-2001 Andi Gutmans <andi@php.net> - Update copyright year
/php-src/Zend/zend_opcode.c
1860303 30-Dec-2000 Zeev Suraski <zeev@php.net> Fix possible corruption in line number information
/php-src/Zend/zend_opcode.c
86a13dd 11-Nov-2000 Andi Gutmans <andi@php.net> - Beautify by using the standard #define.
/php-src/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-src/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-src/Zend/zend_opcode.c
03c8443 17-May-2000 Andi Gutmans <andi@php.net> Fix order
/php-src/Zend/zend_opcode.c
30da5fd 08-May-2000 Andi Gutmans <andi@php.net> Thoroughly initialize IS_UNUSED for proper cleanup
/php-src/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-src/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-src/Zend/zend_opcode.c
e0a48fe 29-Apr-2000 Zeev Suraski <zeev@php.net> Beautify
/php-src/Zend/zend_opcode.c
207167c 19-Apr-2000 Andi Gutmans <andi@php.net> - Export pass_include() for Windows
/php-src/Zend/zend_opcode.c
521c8af 29-Mar-2000 Torben Wilson <torben@php.net> Added !== (is not identical) operator.
/php-src/Zend/zend_opcode.c
b763b25 26-Mar-2000 Andi Gutmans <andi@php.net> - Include Andrea's fix for alloca.h
/php-src/Zend/zend_opcode.c
7000362 26-Mar-2000 Thies C. Arntzen <thies@php.net> fix cast
/php-src/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-src/Zend/zend_opcode.c
f30765e 15-Mar-2000 Zeev Suraski <zeev@php.net> - Fix warning (I thought I fixed this one before)
/php-src/Zend/zend_opcode.c
5e55e47 06-Mar-2000 Zeev Suraski <zeev@php.net> It's official now...
/php-src/Zend/zend_opcode.c
0ac9536 19-Feb-2000 Zeev Suraski <zeev@php.net> (c) patch
/php-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/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-src/Zend/zend_opcode.c
8d1de13 19-Jul-1999 Zeev Suraski <zeev@php.net> 0.91 update
/php-src/Zend/zend_opcode.c
b5b1117 16-Jul-1999 Zeev Suraski <zeev@php.net> License update
/php-src/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-src/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-src/Zend/zend_opcode.c
5f62c34 09-Jul-1999 Zeev Suraski <zeev@php.net> Step 2:
Rename is_ref to EA
/php-src/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-src/Zend/zend_opcode.c
1b4b5c4 04-Jun-1999 Zeev Suraski <zeev@php.net> New $GLOBALS init
/php-src/Zend/zend_opcode.c
9108abc 04-Jun-1999 Zeev Suraski <zeev@php.net> Minor updates (mostly __declspec() stuff)
/php-src/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-src/Zend/zend_opcode.c
5dd7f27 30-Apr-1999 Andi Gutmans <andi@php.net> - Free refcount when destroying the last class reference.
/php-src/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-src/Zend/zend_opcode.c
7c4a083 26-Apr-1999 Zeev Suraski <zeev@php.net> Various thread safety fixes and DLL updates
/php-src/Zend/zend_opcode.c
5a5806e 24-Apr-1999 Zeev Suraski <zeev@php.net> Cleanups, remove old ts code
/php-src/Zend/zend_opcode.c
551fe77 22-Apr-1999 Zeev Suraski <zeev@php.net> Make token names uniform, they all begin with T_ now.
/php-src/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-src/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-src/Zend/zend_opcode.c
39f9487 14-Apr-1999 Andi Gutmans <andi@php.net> -Tiny patches
/php-src/Zend/zend_opcode.c
17bdb70 08-Apr-1999 Zeev Suraski <zeev@php.net> $GLOBALS support
/php-src/Zend/zend_opcode.c
573b460 07-Apr-1999 Andi Gutmans <andi@php.net> Zend Library
/php-src/Zend/zend_opcode.c