8000 An attempt to implemnt "preloading" ability. by dstogov · Pull Request #3538 · php/php-src · GitHub
[go: up one dir, main page]

Skip to content

An attempt to implemnt "preloading" ability. #3538

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 65 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
9409958
Immutable clases and op_arrays
dstogov Oct 15, 2018
0810ce0
An attempt to implemnt "preloading" ability.
dstogov Oct 15, 2018
f76a955
Fixed incorrect signal handlers overriding
dstogov Oct 16, 2018
c78277a
Preloadsing support for opcache restart
dstogov Oct 16, 2018
a06f0f3
Merge branch 'master' into immutable
dstogov Oct 17, 2018
9ef07c8
typo
dstogov Oct 17, 2018
8dadca8
Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_…
dstogov Oct 17, 2018
d5a4108
Removed duplicate code
dstogov Oct 17, 2018
b945548
Removed redundand assertion
dstogov Oct 17, 2018
c63fc5d
Moved static class members initialization into the proper place.
dstogov Oct 17, 2018
0276ea5
Added type cast
dstogov Oct 17, 2018
ad7a78b
Added comment
dstogov Oct 17, 2018
21e0beb
Merge branch 'immutable' into preload
dstogov Oct 17, 2018
4740dab
Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_p…
dstogov Oct 17, 2018
d33908a
Merge branch 'immutable' into preload
dstogov Oct 17, 2018
cd0c36c
Merge branch 'master' into immutable
dstogov Oct 17, 2018
632b30b
Merge branch 'immutable' into preload
dstogov Oct 17, 2018
ac8f45f
Merge branch 'master' into preload
dstogov Oct 17, 2018
a609520
Merge branch 'master' into preload
dstogov Oct 17, 2018
b0139dc
Merge branch 'master' into preload
dstogov Oct 19, 2018
b67e283
Don't preload functions declared at run-time.
dstogov Oct 19, 2018
a2ba970
Added test
dstogov Oct 19, 2018
093e8b1
Added warning message
dstogov O 8000 ct 19, 2018
811f20a
Added information about preloading to opcache_get_status()
dstogov Oct 22, 2018
e4a7ef0
Merge branch 'master' into preload
dstogov Oct 24, 2018
b5ffba0
Merge branch 'master' into preload
dstogov Oct 24, 2018
d9fc51b
Merge branch 'master' into preload
dstogov Oct 24, 2018
aabe685
Merge branch 'master' into preload
dstogov Oct 25, 2018
d70cb10
cleanup
dstogov Oct 25, 2018
26587a9
eol
dstogov Oct 25, 2018
4f57c1e
Cleanup (move preload_shutdown() call to better place)
dstogov Oct 25, 2018
e3c65db
Merge branch 'master' into preload
dstogov Oct 25, 2018
ab9a40f
Added support for preloaded classes/functions in ZTS build
dstogov Oct 25, 2018
a594a61
Cleanup
dstogov Oct 25, 2018
4531fbf
Disable linking and preloading of classes those parent or one of inte…
dstogov Oct 25, 2018
e6b76ec
Merge branch 'master' into preload
dstogov Oct 25, 2018
3a2d1bc
Support for builds without ZEND_SIGNALS
dstogov Oct 25, 2018
0fe9ea1
Removed dead code
dstogov Oct 26, 2018
d7fbb4d
Restore preload state if it was already loaded in another process.
dstogov Oct 26, 2018
386c9d3
Merge branch 'master' into preload
dstogov Oct 29, 2018
6d4b22c
Override SAPI.ub_write and SAPI.flush for preloading
dstogov Oct 29, 2018
17a3cb4
Execute zend_post_startup() with module_initialized flag set.
dstogov Oct 29, 2018
0a24d7b
Avoid use-after-free in main thread
dstogov Oct 29, 2018
310631c
Stop Apache if PHP wasn't started successful.
dstogov Oct 29, 2018
c559f22
Merge branch 'master' into preload
dstogov Oct 29, 2018
2f697ef
typo
dstogov Oct 29, 2018
e806cb7
Fixed double-free
dstogov Oct 29, 2018
5620495
Merge branch 'master' into preload
dstogov Oct 30, 2018
eb6e2c5
Merge branch 'master' into preload
dstogov Oct 30, 2018
38ab7ef
Merge branch 'master' into preload
dstogov Oct 30, 2018
68c4f99
Added test
dstogov Oct 30, 2018
4a57b5d
Fixed preloading of classes linked with traits
dstogov Oct 30, 2018
7a20781
Added test
dstogov Oct 30, 2018
36b644f
Merge branch 'master' into preload
dstogov Nov 1, 2018
aea85c6
Prevent inlining of method copied from trait
dstogov Nov 1, 2018
3a9d90f
Fexed resolution of method clones
dstogov Nov 1, 2018
b610467
Merge branch 'master' into preload
dstogov Nov 2, 2018
0bd17bd
EG(*) may be not initializd at this point - use CG(*).
dstogov Nov 2, 2018
9b0a53e
We don't need preload_restart() here
dstogov Nov 2, 2018
7ae3a47
Merge branch 'master' into preload
dstogov Nov 6, 2018
8d3429c
Fixed preloading of references to internal classes.
dstogov Nov 6, 2018
08ffc9a
Resolve constants only in linked classes
dstogov Nov 7, 2018
cef0d67
Support for class aliasses
dstogov Nov 7, 2018
34645ae
Don't preload constants defined during preload script excution.
dstogov Nov 8, 2018
45fdd03
Properly resolve magic method of preloaded classes inherited from int…
dstogov Nov 9, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
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
  • Loading branch information
dstogov committed Oct 17, 2018
commit a06f0f3d3aba53e766046221ee44fb9720389ecc
27 changes: 25 additions & 2 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ PHP 7.4 INTERNALS UPGRADE NOTES
d. Removed zend_check_private()
e. php_win32_error_to_msg() memory management
f. get_properties_for() handler / Z_OBJDEBUG_P
g. Immutable classes and op_arrays
g. Required object handlers
h. Immutable classes and op_arrays

2. Build system changes
a. Abstract
Expand Down Expand Up @@ -99,7 +100,29 @@ PHP 7.4 INTERNALS UPGRADE NOTES
// ...
zend_release_properties(ht);

g. Opcache may make classes and op_arrays immutable. Such classes are marked
g. The following object handlers are now required (must be non-NULL):

* free_obj
* dtor_obj
* read_property
* write_property
* read_dimension
* write_dimension
* get_property_ptr_ptr
* has_property
* unset_property
* has_dimension
* unset_dimension
* get_properties
* get_method
* get_constructor
* get_class_name
* get_gc

It is recommended to initialize object handler structures by copying the
std object handlers and only overwriting those you want to change.

h. Opcache may make classes and op_arrays immutable. Such classes are marked
by ZEND_ACC_IMMUTABLE flag, they are not going to be copied from opcache
shard memory to process memory and must not be modified at all.
Few related data structures were changed to allow addressing mutable data
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.
0