Re: [PHP-DEV] [DISCUSS] Should RFCs for new functions include a userland polyfill/reference implementation?
Nicolas Grekas <[email protected]>
| Newsgroups | gmane.comp.php.devel |
|---|---|
| Message-ID | <CAOWwgpkND=Cw0L=EyH=qULCSuNdKxWHgUrwZ0HkpceX9k8up9Q@mail.gmail.com> |
Hi Sepehr Le mar. 25 août 2026 à 13:21, سپهر محمودی <[email protected]> a écrit : > Hi internals, > > While reviewing various RFCs that introduce new functions, I noticed an > inconsistency: some authors include a userland polyfill (reference > implementation) in their RFCs, while others do not. > > I wanted to open a discussion on whether we should strongly encourage RFC > authors to provide a PHP userland implementation when proposing new > standard library functions, **where technically feasible**. > > Of course, I understand that this isn't possible for every new > function—especially those that interact with low-level OS APIs, memory > management, or internal engine features. However, for functions dealing > with arrays, strings, math, or general logic, I believe this has a couple > of major benefits: > > 1. It clarifies the exact intended behavior, including edge cases and type > coercions, making the proposal easier to understand without diving into the > C implementation. > 2. It immensely helps the community (e.g., the Symfony polyfill team) to > quickly and accurately port the function to older PHP versions once the RFC > is accepted. > > Should we consider adding this as a standard recommendation (e.g., > "Reference Implementation") in the official RFC template for applicable > functions? > > I would love to hear your thoughts on this. > > Best regards, > Sepehr > > In case you didn't know, every polyfill-able feature ends up eventually in one of the symfony/polyfill-* packages, all centralized in the https://github.com/symfony/polyfill monorepo. In my experience, this works quite well and I wouldn't require RFCs to ship a polyfill: authors should be focused on the C implementation. The PHP polyfill is not always trivial to achieve, and polyfills proposed in RFCs don't necessarily end up being the ones shipped via symfony/polyfill, eg because edge cases or perf improvements. Polyfill needs a separate workflow. Cheers, Nicolas