summaryrefslogtreecommitdiff
path: root/ext/opcache/zend_persist_calc.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix wrong size calculation related to function nameNikita Popov2019-07-051-6/+4
| | | | | It would be nice if we could drop this manual function name reuse code altogether and rely on interning for it.
* Fixed bug 78175 (Preloading must store default values of static variables ↵Dmitry Stogov2019-06-241-0/+4
| | | | and properties)
* Use ZEND_HASH_FOREACH with direct callback, instead of callbacksDmitry Stogov2019-04-301-39/+65
|
* Add preloading support for typed propertiesNikita Popov2019-02-151-8/+17
| | | | | | During preloading, try to resolve all property types to CEs. Add a flag that tracks this. If not all property types can be resolved, then the class is not eligible for preloading.
* properties_info_table may be in arena or shmNikita Popov2019-02-151-1/+1
| | | | | | For immutable classes it should be shm instead of in arena. Related to bug #77615.
* Remove copyright years.Dmitry Stogov2019-02-051-1/+1
|
* Implement typed propertiesNikita Popov2019-01-111-0/+20
| | | | | | | | | | RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
* Revert HASH_FLAG_INITIALIZED into HASH_FLAG_UNINITIALIZED.Dmitry Stogov2018-12-281-1/+1
|
* Remove unused do_free parameter from ADD_INTERNED_STRINGNikita Popov2018-11-221-20/+20
|
* Future-proof email addresses...Zeev Suraski2018-11-011-3/+3
|
* Immutable clases and op_arrays.Dmitry Stogov2018-10-171-12/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit cd0c36c3f943849e5b97a8dbe2dd029fbeab3df9 Merge: 4740dabb84 ad6738e886 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 14:43:38 2018 +0300 Merge branch 'master' into immutable * master: Remove the "auto" encoding Fixed bug #77025 Add vtbls for EUC-TW encoding commit 4740dabb843c6d4f7f866b4a2456073c9eaf4c77 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 14:12:28 2018 +0300 Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes. commit ad7a78b253be970db70c2251e66f9297d8e7f829 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:46:30 2018 +0300 Added comment commit 0276ea51875bab37be01a4dc5e5a047c5698c571 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:42:43 2018 +0300 Added type cast commit c63fc5d5f19c58498108d1698055b2b442227eb3 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:36:51 2018 +0300 Moved static class members initialization into the proper place. commit b945548e9306b1826c881918858b5e5aa3eb3002 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:21:03 2018 +0300 Removed redundand assertion commit d5a41088401814c829847db212488f8aae39bcd2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:19:13 2018 +0300 Removed duplicate code commit 8dadca8864e66de70a24bdf1181bcf7dd8fb27d7 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:05:43 2018 +0300 Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros. commit 9ef07c88bd76801e2d4fbfeab3ebfd6e6a67ac5f Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 10:48:29 2018 +0300 typo commit a06f0f3d3aba53e766046221ee44fb9720389ecc Merge: 94099586ec 3412345ffe Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 10:47:07 2018 +0300 Merge branch 'master' into immutable * master: Remove unused variable makefile_am_files Classify object handlers are required/optional Add support for getting SKIP_TAGSTART and SKIP_WHITE options Remove some obsolete config_vars.mk occurrences Remove bsd_converted from .gitignore Remove configuration parser and scanners ignores Remove obsolete buildconf.stamp from .gitignore [ci skip] Add magicdata.patch exception to .gitignore Remove outdated ext/spl/examples items from .gitignore Remove unused test.inc in ext/iconv/tests commit 94099586ec599117581ca01c15b1f6c5f749e23a Author: Dmitry Stogov <dmitry@zend.com> Date: Mon Oct 15 23:34:01 2018 +0300 Immutable clases and op_arrays
* During size calculation, pointer should be kept unchangedDmitry Stogov2018-10-081-3/+1
|
* Avoid useless store and checks in xlat_table.Dmitry Stogov2018-09-261-12/+13
|
* Replace ZEND_ACC_ANON_BOUND, ZEND_ACC_UNRESOLVED_PARENT and ↵Dmitry Stogov2018-09-181-2/+2
| | | | ZEND_ACC_UNRESOLVED_INTERFACES with single ZEND_ACC_LINKED.
* Keep information about unresolved parent class in zend_class_entry->parent_nameDmitry Stogov2018-08-241-0/+3
|
* Keep information about unresolved interfaces in ↵Dmitry Stogov2018-08-231-0/+11
| | | | | | | zend_class_entry->interface_names. Move interface implementation code into ZEND_DECLARE_*CLASS opcodes. Remove ZEND_ADD_INTERFACE and ZEND_VERIFY_ABSTRACT_CLASS opcodes.
* Replace zend_class_entry->traits by persistent zend_class_entry->trait_names.Dmitry Stogov2018-08-231-26/+36
| | | | | Move trait binding code into ZEND_DECLARE_*CLASS opcodes. Remove ZEND_ADD_TRIAIT and ZEND_BIND_TRAITS opcodes.
* Changed structure of zend_class_entry.trait_aliases and ↵Dmitry Stogov2018-07-111-21/+12
| | | | zend_class_entry.trait_precedences to avoid keeping "intermediate" trait references, that are used only during inheritance.
* Lazy function copying from op_cache SHM into process memoryDmitry Stogov2018-06-251-1/+1
|
* Fixed bug #76509Nikita Popov2018-06-251-1/+3
| | | | | | | | | | | In PHP static properties are shared between inheriting classes, unless they are explicitly overwritten. However, because this functionality was implemented using reference, it was possible to break the implementation by reassigning the static property reference. This is fixed by switching the implementation from using references to using INDIRECTs, which cannot be affected by userland code.
* Use zend_string_release_ex() instread of zend_string_release() in places, ↵Dmitry Stogov2018-05-281-3/+0
| | | | where we sure about string persistence.
* Changed worst HashTable load factor from 1.0 to 0.5Dmitry Stogov2018-05-041-3/+3
|
* Optimized fast_memcpy with AVX instructionsXinchen Hui2018-02-151-2/+2
| | | | Great thanks to welting for helping :)
* Access HashTable.u.flags through HT_FLAGS() macro.Dmitry Stogov2018-01-221-2/+2
|
* A cheaper way to reset type flags.Dmitry Stogov2018-01-171-1/+1
|
* Cleanup (at persistence stage we may get only "user" functions; regular ↵Dmitry Stogov2018-01-121-15/+16
| | | | op_arrays can't be referenced from different places)
* Remove HashTable holes in functions and class tables.Dmitry Stogov2018-01-101-0/+6
|
* year++Xinchen Hui2018-01-021-1/+1
|
* Constify key access for hash and formal paramsAnatol Belski2017-10-191-1/+1
| | | | | | Keys created in shared memory and won't be modified and are free'd on restart. Otherwise, keys passed to functions should not be modified, too.
* Fixed required SHM memeory size calculation for scripts when ↵Dmitry Stogov2017-10-181-4/+6
| | | | opcache.revalidate_path is set.
* Always use IS_CONSTANT_AST (IS_CONSTANT is removed).Dmitry Stogov2017-10-101-3/+2
|
* Interned strings unification for TS/NTSAnatol Belski2017-03-041-6/+1
| | | | | | | | | | | | | 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.
* Introduced "zend_type" - an abstraction for type-hinting representation.Dmitry Stogov2017-01-131-2/+6
|
* Update copyright headers to 2017Sammy Kaye Powers2017-01-021-1/+1
|
* further normalizations, uint vs uint32_tAnatol Belski2016-11-261-3/+3
| | | | | | fix merge mistake yet one more replacement run
* Fixed compilation warningsDmitry Stogov2016-06-211-3/+3
|
* Merge branch 'PHP-7.0'Dmitry Stogov2016-02-241-2/+9
|\ | | | | | | | | * PHP-7.0: Fixed more synchronisation issues during SHM reload
| * Fixed more synchronisation issues during SHM reloadDmitry Stogov2016-02-241-2/+9
| |
* | Merge branch 'PHP-7.0'Lior Kaplan2016-01-011-1/+1
|\ \ | |/ | | | | | | | | | | * PHP-7.0: Update header to PHP Version 7 Happy new year (Update copyright to 2016) Happy new year (Update copyright to 2016)
| * Merge branch 'PHP-5.6' into PHP-7.0Lior Kaplan2016-01-011-1/+1
| |\ | | | | | | | | | | | | * PHP-5.6: Happy new year (Update copyright to 2016)
| | * Happy new year (Update copyright to 2016)Lior Kaplan2016-01-011-1/+1
| | |
| | * bump yearXinchen Hui2015-01-151-1/+1
| | |
| | * Fix bug #66015 by reverting "Removed operations on constant arrays."Bob Weinand2014-04-111-0/+2
| | |
* | | Implemented the RFC `Support Class Constant Visibility`.Dmitry Stogov2015-12-081-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit f11ca0e7a57793fa0e3e7f6d451720e6c42bb0b9 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue Dec 8 12:38:42 2015 +0300 Fixed test expectation commit 211f873f542504d0a0f72b6b5cb23908a1c99a2d Author: Dmitry Stogov <dmitry@zend.com> Date: Tue Dec 8 12:28:38 2015 +0300 Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags commit 51deab84b2cdbf9cdb1a838cf33b2ee45c61748b Author: Dmitry Stogov <dmitry@zend.com> Date: Mon Dec 7 11:18:55 2015 +0300 Fixed issues found by Nikita commit 544dbd5b47e40d38a8ccb96bc5583e9cb7fdd723 Author: Dmitry Stogov <dmitry@zend.com> Date: Sat Dec 5 02:41:05 2015 +0300 Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility @reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
* | | Break dependency between opcache and optimizer. Remove copatibility macros.Dmitry Stogov2015-11-121-8/+8
| | |
* | | We don't nees zend_op_array->brk_cont_array at run-time anymore.Dmitry Stogov2015-11-101-2/+2
|/ / | | | | | | | | | | Move zend_op_array->brk_cont_array into CG(context).brk_cont_array. Use more compact zend_op_array->live_range instead of zend_op_array->brk_cont_array. Semantic is kept unchanged.
* | Extended zend_extension API to allow storing additional data associated with ↵Dmitry Stogov2015-09-251-0/+2
| | | | | | | | op_arrays in opcache SHM. (op_array->reserved[])
* | remove unnecessary checkAnatol Belski2015-09-071-1/+0
| | | | | | | | as it's unrelated to the size pre calculation
* | Fix bug #70423 Warning Internal error: wrong size calculationAnatol Belski2015-09-071-5/+8
| |
* | Prevent HashTable compaction below HT_MIN_SIZE (this may lead to hash ↵Dmitry Stogov2015-09-021-2/+2
| | | | | | | | collisions).