Hi,

I'd like to add my recent iterable RFC and data structure proposals I'm working 
on as a PECL.
https://github.com/TysonAndre/pecl-teds/
(I plan to publish alpha releases initially)

This combines three things in the `Teds\` namespace:

1. The iterable any()/all()/etc RFC, where the largest objection was that it 
wasn't
   a large enough collection of functionality to add to the standard library
   https://wiki.php.net/rfc/any_all_on_iterable#vote

  https://github.com/Tysonandre/pecl-teds/#iterable-functions

  (some iterable functions are considered/planned for the PECL that will need 
to return data structures to allow arbitrary, repeatable keys,
  e.g. map_entries(), filter_entries(name to be determined))
2. A collection of data structures that are being considered for proposals to 
add data structures to PHP.
   Some have expressed interest in having a more expansive collections of data 
structures in the standard library.
   (E.g. Vector, Deque, etc. that are more efficient than the SPL doubly linked 
lists)

   **Others have mentioned that any data structures being proposed for PHP may 
be better received if they were tested and examined by others
   before an RFC is created, and creating a PECL ensures this can be done,** 
e.g. https://externals.io/message/114887#114908
3. Data structures that have less common use cases that may be more suited to a 
PECL and are not in php-ds already,
   e.g. the recently renamed ImmutableKeyValueSequence, ImmutableSequence.
   https://externals.io/message/114887#114903

Addition of php-ds's datastructures (or similar functionality) into core
had been considered several times by internals with the php-ds extension, 
https://externals.io/message/93301
and https://externals.io/message/112639#112641 - but it is possible that less 
than 2/3 of voters would disagree
with the php-ds maintainers distribution plans, and I'm unsure when a proposal 
would be made by php-ds's maintainers.
If there is disagreement, it would be useful to have an independently 
implemented collection of data structures
as an alternative.
(The collections in the proposed PECL are independently implemented based on 
spl's source code (e.g. SplFixedArray),
experience with igbinary/runkit7/ast, https://www.phpinternalsbook.com/ , etc)

- See https://github.com/php-ds/ext-ds/issues/156#issuecomment-686625945

My PECL account is https://pecl.php.net/user/tandre - I'm a lead on the 
igbinary,
ast, and runkit7 projects.

I expect this namespace/extension choice to:

1. Be different enough from `Ds\` to avoid confusion (such as 
memcache/memcached)
2. Follow the recent namespace policy RFC suggestion of a single CamelCase 
namespace name for new functionality
3. Avoid namespaces that would conflict with PHP's own potential namespace for 
future data structures
    (e.g. `Collections\`, `DataStructures\`, `StdLib\`, `Util\`)
4. Make sense for potential lazy data structures, e.g. a lazily evaluated 
alternative version of ImmutableKeyValueSequence as an iterable 
(CachedIterable?)
    (which seems better described as a data structure than a collection)

Any objections?

Thanks,
Tyson

--
PECL development discussion Mailing List (https://pecl.php.net/)
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to