<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/tests, 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>Return error_zval form get_property_ptr_ptr on exception</title>
<updated>2019-10-10T13:14:04+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-10-10T13:14:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=5a076e670a13decf76524e6f0c13abfce5532021'/>
<id>5a076e670a13decf76524e6f0c13abfce5532021</id>
<content type='text'>
This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a.
After looking around a bit, it seems that we already check for
Z_ISERROR_P() on the get_property_ptr_ptr return value in other places.
So do this in zend_fetch_property_address() as well, and also make
sure that EG(error_zval) is indeed returned on exception in
get_property_ptr_ptr.

In particular, this fixes the duplicate exceptions that we used to
get because first get_property_ptr_ptr threw one and then
read_property throws the same exception again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a.
After looking around a bit, it seems that we already check for
Z_ISERROR_P() on the get_property_ptr_ptr return value in other places.
So do this in zend_fetch_property_address() as well, and also make
sure that EG(error_zval) is indeed returned on exception in
get_property_ptr_ptr.

In particular, this fixes the duplicate exceptions that we used to
get because first get_property_ptr_ptr threw one and then
read_property throws the same exception again.
</pre>
</div>
</content>
</entry>
<entry>
<title>Explicitly check for exceptions in by-ref obj prop assign</title>
<updated>2019-10-10T12:41:35+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-10-10T12:41:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=4463acb9513dfb62206760c49b3da1fe4d92f40a'/>
<id>4463acb9513dfb62206760c49b3da1fe4d92f40a</id>
<content type='text'>
Relying on setting ERROR if an exception happened during the
property address fetch is both a bit fragile and may pessimize
other codepaths that will check for exceptions in the VM. Adding
an extra exception check instead, which should also allow us to
drop the use of ERROR in this area in master.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relying on setting ERROR if an exception happened during the
property address fetch is both a bit fragile and may pessimize
other codepaths that will check for exceptions in the VM. Adding
an extra exception check instead, which should also allow us to
drop the use of ERROR in this area in master.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix borked SKIPIFs</title>
<updated>2019-09-30T15:51:41+00:00</updated>
<author>
<name>Fabien Villepinte</name>
<email>fabien.villepinte@gmail.com</email>
</author>
<published>2019-09-28T19:29:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=0aa3acc6c420ef19a33ee80e65c4fb2f2ee128d0'/>
<id>0aa3acc6c420ef19a33ee80e65c4fb2f2ee128d0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow throwing exception while loading parent class</title>
<updated>2019-09-12T14:41:18+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-09-11T13:31:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=4b9ebd837b6fc20bd907ae858375737e91365ede'/>
<id>4b9ebd837b6fc20bd907ae858375737e91365ede</id>
<content type='text'>
This is a fix for symfony/symfony#32995.

The behavior is:

* Throwing exception when loading parent/interface is allowed
  (and we will also throw one if the class is simply not found).
* If this happens, the bucket key for the class is reset, so
  it's possibly to try registering the same class again.
* However, if the class has already been used due to a variance
  obligation, the exception is upgraded to a fatal error, as we
  cannot safely unregister the class stub anymore.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a fix for symfony/symfony#32995.

The behavior is:

* Throwing exception when loading parent/interface is allowed
  (and we will also throw one if the class is simply not found).
* If this happens, the bucket key for the class is reset, so
  it's possibly to try registering the same class again.
* However, if the class has already been used due to a variance
  obligation, the exception is upgraded to a fatal error, as we
  cannot safely unregister the class stub anymore.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup of remaining E_STRICT in tests</title>
<updated>2019-07-23T09:27:23+00:00</updated>
<author>
<name>George Peter Banyard</name>
<email>girgias@php.net</email>
</author>
<published>2019-07-14T01:45:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=6d6d954d0d28f488f743e6c9d0cd9ab01e1c4e41'/>
<id>6d6d954d0d28f488f743e6c9d0cd9ab01e1c4e41</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate alternative array access syntax</title>
<updated>2019-07-19T08:06:10+00:00</updated>
<author>
<name>rjhdby</name>
<email>andrewgrom@rambler.ru</email>
</author>
<published>2019-03-13T10:51:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=d574df63dc375f5fc9202ce5afde23f866b6450a'/>
<id>d574df63dc375f5fc9202ce5afde23f866b6450a</id>
<content type='text'>
RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
</pre>
</div>
</content>
</entry>
<entry>
<title>Swap implode() argument order in some tests</title>
<updated>2019-07-12T10:54:10+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-07-12T08:43:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=2e56e14e39ee7917d255e22656f3f96cc7c89842'/>
<id>2e56e14e39ee7917d255e22656f3f96cc7c89842</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch to using shell-less proc_open() in various server tests</title>
<updated>2019-07-11T13:48:10+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-07-01T11:07:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=17f7fb76053cabe20225472debe4d1801221ef9f'/>
<id>17f7fb76053cabe20225472debe4d1801221ef9f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Throw notice on array access on illegal type</title>
<updated>2019-07-10T10:02:14+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-07-10T08:28:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=c42b7dd6d32b43304b76452add158a2ef325d494'/>
<id>c42b7dd6d32b43304b76452add158a2ef325d494</id>
<content type='text'>
No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

    while ([$key, $value] = yield $it-&gt;next()) { ... }

where silent null access may be desirable.

No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

    while ([$key, $value] = yield $it-&gt;next()) { ... }

where silent null access may be desirable.

No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
</pre>
</div>
</content>
</entry>
<entry>
<title>Make busy wait busier</title>
<updated>2019-07-08T11:35:29+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-07-08T11:26:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=392398bfe63b43288a0fbd301491b564eb24dfe9'/>
<id>392398bfe63b43288a0fbd301491b564eb24dfe9</id>
<content type='text'>
Another stab in the dark to fix the intermittent failures of timeout
tests on macos CI: We're using ITIMER_PROF, which means that the
timer counts against user+system time. The "busy" wait loop counts
against real time. Currently it calls microtime() on every iteration.
If that call is implemented as a syscall rather than going through
vDSO or commpage we might be seeing many context switches here which
drive up the real time, but not user or system time.

See if making the loop busier and calling microtime() less helps the
situation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Another stab in the dark to fix the intermittent failures of timeout
tests on macos CI: We're using ITIMER_PROF, which means that the
timer counts against user+system time. The "busy" wait loop counts
against real time. Currently it calls microtime() on every iteration.
If that call is implemented as a syscall rather than going through
vDSO or commpage we might be seeing many context switches here which
drive up the real time, but not user or system time.

See if making the loop busier and calling microtime() less helps the
situation.
</pre>
</div>
</content>
</entry>
</feed>
