<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/ext/opcache/shared_alloc_win32.c, branch php-7.4.0RC4</title>
<subtitle>git.php.net: repository/php-src.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/'/>
<entry>
<title>Allow multiple cache instances per user/host on Windows</title>
<updated>2019-07-17T17:51:07+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-07-16T19:14:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=e2ed7e6716f9564fcd8b13b823519baaa7256662'/>
<id>e2ed7e6716f9564fcd8b13b823519baaa7256662</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Turn system_id into a true global</title>
<updated>2019-06-18T08:27:35+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-06-17T16:43:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=04a6aac59beaac2ef2e91b9e3c07299f7321eae7'/>
<id>04a6aac59beaac2ef2e91b9e3c07299f7321eae7</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix ASLR related invalid opline handler issues</title>
<updated>2019-05-21T12:33:33+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-05-20T13:59:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=8ba10b8fbc020dc225d3b19d8f088f1351a3e304'/>
<id>8ba10b8fbc020dc225d3b19d8f088f1351a3e304</id>
<content type='text'>
Opcache stores `opline-&gt;handler`s in shared memory.  These pointers are
invalid, if the main PHP DLL is loaded at another base address due to
ASLR.  We therefore store the address of `execute_ex` in the mmap base
file, and check on startup whether it matches its current address.  If
not, we fall back on the file cache if enabled, and bail out otherwise.

This still does not address cases where the opline handler is located
inside of another DLL (e.g. for some profilers, debuggers), but there
seems to be no general solution for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Opcache stores `opline-&gt;handler`s in shared memory.  These pointers are
invalid, if the main PHP DLL is loaded at another base address due to
ASLR.  We therefore store the address of `execute_ex` in the mmap base
file, and check on startup whether it matches its current address.  If
not, we fall back on the file cache if enabled, and bail out otherwise.

This still does not address cases where the opline handler is located
inside of another DLL (e.g. for some profilers, debuggers), but there
seems to be no general solution for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove copyright years.</title>
<updated>2019-02-05T07:33:28+00:00</updated>
<author>
<name>Dmitry Stogov</name>
<email>dmitry@zend.com</email>
</author>
<published>2019-02-05T07:33:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=da919a8b658bf65ff0705bc03c28c7be085d6329'/>
<id>da919a8b658bf65ff0705bc03c28c7be085d6329</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Future-proof email addresses...</title>
<updated>2018-11-01T16:30:28+00:00</updated>
<author>
<name>Zeev Suraski</name>
<email>zeev@php.net</email>
</author>
<published>2018-11-01T16:30:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=67e0138c0dfd966624223911a0821f6c294ad1c6'/>
<id>67e0138c0dfd966624223911a0821f6c294ad1c6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix localized error messages and memory leaks</title>
<updated>2018-09-17T08:56:50+00:00</updated>
<author>
<name>Anatol Belski</name>
<email>ab@php.net</email>
</author>
<published>2018-09-17T07:48:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=321c0cc3493998f731f0666127c093eff4e119eb'/>
<id>321c0cc3493998f731f0666127c093eff4e119eb</id>
<content type='text'>
The FormatMessage API needs to LocalFree the delivered error messages.
In cases where messages are delivered in non ASCII compatible encoding,
the messages might be unreadable. This aligns the error message encoding
with the encoding settings in PHP, the focus is UTF-8 as default.

Initialize error buffer

Avoid code duplication
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The FormatMessage API needs to LocalFree the delivered error messages.
In cases where messages are delivered in non ASCII compatible encoding,
the messages might be unreadable. This aligns the error message encoding
with the encoding settings in PHP, the focus is UTF-8 as default.

Initialize error buffer

Avoid code duplication
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS</title>
<updated>2018-09-03T13:09:23+00:00</updated>
<author>
<name>Anatol Belski</name>
<email>ab@php.net</email>
</author>
<published>2018-09-03T13:09:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=f26172f9343cf49d62bbefff355bb76d6adf7ebe'/>
<id>f26172f9343cf49d62bbefff355bb76d6adf7ebe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use string literal as format</title>
<updated>2018-03-12T14:17:08+00:00</updated>
<author>
<name>Anatol Belski</name>
<email>ab@php.net</email>
</author>
<published>2018-03-12T14:17:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=eaa5b1f9115685980e726f32086b06fa42a72ea1'/>
<id>eaa5b1f9115685980e726f32086b06fa42a72ea1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed "opcache.file_cache_fallback" mode.</title>
<updated>2018-03-05T13:01:43+00:00</updated>
<author>
<name>Dmitry Stogov</name>
<email>dmitry@zend.com</email>
</author>
<published>2018-03-05T13:01:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=350082ed7146fd889d04c8864d8d649bea73dd01'/>
<id>350082ed7146fd889d04c8864d8d649bea73dd01</id>
<content type='text'>
It's not safe to change value of ZCG(accel_directives).file_cache_only, becuse it might be altered by INI subsystem.
Use global variable instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's not safe to change value of ZCG(accel_directives).file_cache_only, becuse it might be altered by INI subsystem.
Use global variable instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>year++</title>
<updated>2018-01-02T04:53:31+00:00</updated>
<author>
<name>Xinchen Hui</name>
<email>laruence@gmail.com</email>
</author>
<published>2018-01-02T04:53:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=ccd4716ec77c60391d63a1a6af72f96a09b1c617'/>
<id>ccd4716ec77c60391d63a1a6af72f96a09b1c617</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
