[PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-24 Thread Nikita Popov
On Mon, Jun 22, 2020 at 5:56 PM Björn Larsson wrote: > Hi Nikita, > > Den 2020-06-19 kl. 12:32, skrev Nikita Popov: > > On Tue, Jun 9, 2020 at 3:33 PM Nikita Popov > wrote: > > > >> On Tue, May 12, 2020 at 10:26 AM Nikita Popov > >> wrote: > >> > >>> On Wed, Mar 11, 2020 at 10:50 AM Nikita

[PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-22 Thread Björn Larsson
Hi Nikita, Den 2020-06-19 kl. 12:32, skrev Nikita Popov: On Tue, Jun 9, 2020 at 3:33 PM Nikita Popov wrote: On Tue, May 12, 2020 at 10:26 AM Nikita Popov wrote: On Wed, Mar 11, 2020 at 10:50 AM Nikita Popov wrote: Hi internals, Userland classes that implement Traversable must do so

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-19 Thread Levi Morrison via internals
> I went ahead and changed the implementation to use IteratorForExtensions. > Is anyone overly unhappy with that one? I don't particularly care what color we paint this bike shed. The feature is valuable to me and look forward to it in PHP 8. > @Michal: "ExtensionsIterator" to me sounds like an

[PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-19 Thread Nikita Popov
On Tue, Jun 9, 2020 at 3:33 PM Nikita Popov wrote: > On Tue, May 12, 2020 at 10:26 AM Nikita Popov > wrote: > >> On Wed, Mar 11, 2020 at 10:50 AM Nikita Popov >> wrote: >> >>> Hi internals, >>> >>> Userland classes that implement Traversable must do so either through >>> Iterator or

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-09 Thread Michał Brzuchalski
wt., 9 cze 2020, 15:33 użytkownik Nikita Popov napisał: > On Tue, May 12, 2020 at 10:26 AM Nikita Popov > wrote: > > > On Wed, Mar 11, 2020 at 10:50 AM Nikita Popov > > wrote: > > > >> Hi internals, > >> > >> Userland classes that implement Traversable must do so either through > >> Iterator

[PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-09 Thread Nikita Popov
On Tue, May 12, 2020 at 10:26 AM Nikita Popov wrote: > On Wed, Mar 11, 2020 at 10:50 AM Nikita Popov > wrote: > >> Hi internals, >> >> Userland classes that implement Traversable must do so either through >> Iterator or IteratorAggregate. The same requirement does not exist for >> internal

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-06-09 Thread Nikita Popov
On Tue, May 12, 2020 at 2:49 PM Sara Golemon wrote: > On Tue, May 12, 2020 at 3:26 AM Nikita Popov wrote: > > // WeakMap::getIterator(): Iterator > > ZEND_METHOD(WeakMap, getIterator) > > { > > if (zend_parse_parameters_none() == FAILURE) { > > return; > > } > >

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Nicolas Grekas
> I do not believe we should expose the Zend term into userland. > Dunno if it helps or not, but there is a precedent here: ReflectionZendExtension Nicolas

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Derick Rethans
On Tue, 12 May 2020, Sara Golemon wrote: > On Tue, May 12, 2020 at 3:26 AM Nikita Popov wrote: > > // WeakMap::getIterator(): Iterator > > ZEND_METHOD(WeakMap, getIterator) > > { > > if (zend_parse_parameters_none() == FAILURE) { > > return; > > } > >

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Dan Ackroyd
On Tue, 12 May 2020 at 13:49, Sara Golemon wrote: > > This might be one of those rare occasions where > exposing "Zend" into userspace makes sense. I think 'Engine' would be easier for userland people to grok. Also, for those brave souls who are implementing PHP in other technologies, avoiding

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Bob Weinand
Hey Sara, > Am 12.05.2020 um 14:49 schrieb Sara Golemon : > > On Tue, May 12, 2020 at 3:26 AM Nikita Popov wrote: >> // WeakMap::getIterator(): Iterator >> ZEND_METHOD(WeakMap, getIterator) >> { >>if (zend_parse_parameters_none() == FAILURE) { >>return; >>} >>

Re: [PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Sara Golemon
On Tue, May 12, 2020 at 3:26 AM Nikita Popov wrote: > // WeakMap::getIterator(): Iterator > ZEND_METHOD(WeakMap, getIterator) > { > if (zend_parse_parameters_none() == FAILURE) { > return; > } > zend_create_internal_iterator_zval(return_value, ZEND_THIS); > } > Given that the

[PHP-DEV] Re: Making all Traversables an Iterator or IteratorAggregate

2020-05-12 Thread Nikita Popov
On Wed, Mar 11, 2020 at 10:50 AM Nikita Popov wrote: > Hi internals, > > Userland classes that implement Traversable must do so either through > Iterator or IteratorAggregate. The same requirement does not exist for > internal classes: They can implement the internal get_iterator mechanism, >