Commit graph

776 commits

Author SHA1 Message Date
Christoph M. Becker
54401001a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow multiple cache instances per user/host on Windows
2019-07-17 19:52:49 +02:00
Christoph M. Becker
e2ed7e6716 Allow multiple cache instances per user/host on Windows
Formerly, there was at most a single OPcache instance per user and the
so called system ID (which is determined from the PHP version).
Sometimes multiple OPcaches might be desired, though, particularly for
unrelated CLI scripts, which may even be necessary (e.g. for our test
suite in parallel mode).

We therefore introduce a new INI directive `opcache.cache_id` which
allows to configure independent OPcache instances for the same user.

We also use `GetUserNameW()` instead of `php_win32_get_username()`,
because the latter retrieves the user name encoded in the
`default_charset`, which can obviously yield different results for
different charsets, leading to OPcache "incompatibilities".  Slightly
worse, some characters may not even be encodeable in the
`default_charset` and would be replaced by question marks, which could
result in different users sharing the same OPcache.

We also refactor, and re-use existing APIs to avoid duplicated code.
2019-07-17 19:51:07 +02:00
Nikita Popov
c4a6998c62 Merge branch 'PHP-7.4' 2019-07-16 17:45:03 +02:00
Nikita Popov
b317f0eb59 Remove ZEND_HANDLE_MAPPED
The buf/len members are now simply used in addition to the main
stream, without changing the handle kind.
2019-07-16 17:44:32 +02:00
Nikita Popov
3faa903d47 Merge branch 'PHP-7.4' 2019-07-16 16:44:46 +02:00
Nikita Popov
49bac9b77b Introduce zend_stream_init_filename()
Avoid more ad-hoc initialization of zend_file_handle structures.
2019-07-16 16:44:37 +02:00
Nikita Popov
06cf349dc3 Merge branch 'PHP-7.4' 2019-07-16 15:48:24 +02:00
Nikita Popov
e08cc4d921 Remove ZEND_HANDLE_FD
This handle type was unused.
2019-07-16 15:47:10 +02:00
Nikita Popov
f8d8b96e92 Merge branch 'PHP-7.4' 2019-07-05 10:47:01 +02:00
Nikita Popov
d3c4841b18 Preloading: Don't move conditional functions to back to scripts
Conditional function declaration may be referenced by functions or
classes that have been preloaded, so we should not move them back
to scripts.

What we probably should be doing though is to discard conditional
functions that are not used in the optimizer. This is probably
reasonably common for polyfills, where we will be able to const-eval
the conditions and drop the BBs declaring the functions, but won't
delete the function declarations themselves.
2019-07-05 10:46:41 +02:00
Nikita Popov
8c647946ff Merge branch 'PHP-7.4' 2019-07-04 12:20:40 +02:00
Nikita Popov
b250f89b92 Preloading: Relax known type restrictions
Check whether there is a parent/interface/trait method with the same
name and only then require the type to be known. This reduces the
number of cases where this triggers in practice a lot.
2019-07-04 12:20:32 +02:00
Nikita Popov
4a2646cf45 Preloading: Also handle trait methods outside main script 2019-07-04 12:20:31 +02:00
Nikita Popov
6473ec30a1 Merge branch 'PHP-7.4' 2019-07-04 11:07:14 +02:00
Nikita Popov
df243f19be Preloading: Prevent autoloading while resolving constants 2019-07-04 11:05:01 +02:00
Nikita Popov
f124bf22e0 Merge branch 'PHP-7.4' 2019-07-03 14:05:31 +02:00
Nikita Popov
f857648270 Improve unlinked class diagnostics during preloading 2019-07-03 14:05:10 +02:00
Nikita Popov
ad81aae8bf Merge branch 'PHP-7.4' 2019-07-02 12:28:51 +02:00
Nikita Popov
4a08885ed9 Merge branch 'PHP-7.3' into PHP-7.4 2019-07-02 12:28:46 +02:00
Nikita Popov
7174c44557 Merge branch 'PHP-7.2' into PHP-7.3 2019-07-02 12:28:37 +02:00
Alex Scott
a4acff3e21 Fix bug #78138: opcache.validate_permission incorrectly works with PHAR files
opcache incorrectly handles PHAR files when opcache.validate_permission
option enabled, because it calls

  access("phar://path-to/file.phar/path/inside.php", R_OK);

rather than

  access("path-to/file.phar", R_OK)
2019-07-02 12:25:50 +02:00
Nikita Popov
2f7c3971cc Merge branch 'PHP-7.4' 2019-07-02 11:59:21 +02:00
David Carlier
7f1fef9fe0 Fix opcache huge page mapping on FreeBSD
Too much room were given process mappings and were not unmapped.

Closes GH-4345.
2019-07-02 11:59:08 +02:00
Nikita Popov
4e1a225e3e Merge branch 'PHP-7.4' 2019-07-01 16:55:39 +02:00
David Carlier
994a01ea43 opcache huge pages: Little fix for FreeBSD
Calculating the vm entries size beforehand, as we could
possibly miss few entries.

Closes GH-4344.
2019-07-01 16:55:23 +02:00
Dmitry Stogov
ca22c456ca Merge branch 'PHP-7.4'
* PHP-7.4:
  Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
2019-06-25 11:32:03 +03:00
Dmitry Stogov
759f4ecd8b Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time 2019-06-25 11:30:58 +03:00
Dmitry Stogov
e18c60cd8d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug 78175 (Preloading must store default values of static variables and properties)
2019-06-24 20:34:05 +03:00
Dmitry Stogov
0f29fb5cd8 Fixed bug 78175 (Preloading must store default values of static variables and properties) 2019-06-24 20:32:27 +03:00
Dmitry Stogov
1707f6645a Additional fix for bug #78185 (File cache no longer works) 2019-06-21 10:06:35 +03:00
Dmitry Stogov
e177791df1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78185 (File cache no longer works)
2019-06-20 09:08:09 +03:00
Dmitry Stogov
05c8f1ff2e Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fixed bug #78185 (File cache no longer works)
2019-06-20 09:07:39 +03:00
Dmitry Stogov
35acda856a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #78185 (File cache no longer works)
2019-06-20 09:05:50 +03:00
Dmitry Stogov
cd6a6e4cf2 Fixed bug #78185 (File cache no longer works) 2019-06-20 09:04:14 +03:00
Dmitry Stogov
c8d27777d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78175 (Preloading segfaults at preload time and at runtime)
2019-06-18 17:19:19 +03:00
Dmitry Stogov
148eb20226 Fixed bug #78175 (Preloading segfaults at preload time and at runtime) 2019-06-18 17:18:49 +03:00
Joe Watkins
41067a22e9
Merge branch 'PHP-7.4'
* PHP-7.4:
  Turn system_id into a true global
2019-06-18 10:27:50 +02:00
Christoph M. Becker
04a6aac59b
Turn system_id into a true global
The system_id is identical for all threads and can be computed during
module startup, so there is no need to calculate and store it for each
thread.
2019-06-18 10:27:35 +02:00
Dmitry Stogov
96a6f7f7f5 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Backport 96a12578c1
2019-06-14 13:29:30 +03:00
Dmitry Stogov
28808ca96d Backport 96a12578c1 2019-06-14 13:29:13 +03:00
Dmitry Stogov
a5b39abd86 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Backport 91a6cdbff5
2019-06-14 13:25:06 +03:00
Dmitry Stogov
40f463b560 Backport 91a6cdbff5 2019-06-14 13:24:47 +03:00
Dmitry Stogov
29902e0e46 Merge branch 'PHP-7.4'
* PHP-7.4:
  More edge case fixes that may cause bug #78106
2019-06-14 13:10:39 +03:00
Dmitry Stogov
96a12578c1 More edge case fixes that may cause bug #78106 2019-06-14 13:10:02 +03:00
Dmitry Stogov
ca486893ba Merge branch 'PHP-7.4'
* PHP-7.4:
  Attempt to fix edge conditions that may cause bug #78106
2019-06-14 12:48:00 +03:00
Dmitry Stogov
91a6cdbff5 Attempt to fix edge conditions that may cause bug #78106 2019-06-14 12:47:22 +03:00
Nikita Popov
026023bd71 Merge branch 'PHP-7.4' 2019-06-13 12:54:17 +02:00
Nikita Popov
e5be58f57c Merge branch 'PHP-7.3' into PHP-7.4 2019-06-13 12:54:10 +02:00
Nikita Popov
bada2049ca Merge branch 'PHP-7.2' into PHP-7.3 2019-06-13 12:52:32 +02:00
Nikita Popov
f1a8138055 Fixed bug #78106
When disabling opcache during the request via opcache.enable ini
setting, make sure we also disable ZCG(accelerator_enabled).
2019-06-13 12:51:35 +02:00