Sawyer X <xsawyerx@gmail.com> wrote: > On 01/31/2017 08:55 PM, Eric Wong wrote: > > Sawyer X <xsawyerx@gmail.com> wrote: > >> On 01/30/2017 08:47 PM, demerphq wrote: > >>> FWIW, I don't think I have ever seen anyone write > >>> > >>> my Foo $foo= Foo->new(); > >>> > >>> in the wild. No doubt they do somewhere, but not in any code I have > >>> looked at. And if you omit the "Foo" from "my Foo" (an easy mistake > >>> IMO) then the compile time checks go away as well, and fields.pm > >>> becomes completely run-time. > >> Perlbal uses it. > > Yep, inherited from Danga::Socket and also used by MogileFS > > as a result. > > > > Being late to MogileFS and not speaking for the original D::S > > implementers; I guess 'fields' was intended to be a speed and > > space optimization in the 5.8 days which now backfires on > > newer Perls. > > A long while ago I wanted to submit a PR that removes it from everything > but it seems to take a long time to review PRs and merge them, and the > project is mostly unmaintained nowadays, if I understood it correctly. It seems removing 'fields' from Danga::Socket would break all existing users (even non-public ones), so I don't consider that acceptable. For MogileFS, I've been considering starting a similar (pure Perl, no XS or Inline) project and perhaps extracting it as a standalone project once it's matured. But I don't use proprietary or centralized messaging systems like GH, and dormando has been busy with other things in recent years. In other words, I consider the right way to make public API changes is to change the name of the project entirely. > I'm still willing to submit such a PR, if it helps. Probably not, but thanks. I much prefer we keep 'fields' supported, even in a non-performant way. The big reason I still favor Perl5 in 2017 is that it is good about preserving compatibility, warts and all...Thread Previous | Thread Next