Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^10: Curious about Perl's strengths in 2018

by dave_the_m (Monsignor)
on Apr 21, 2018 at 13:08 UTC ( #1213330=note: print w/replies, xml ) Need Help??


in reply to Re^9: Curious about Perl's strengths in 2018
in thread Curious about Perl's strengths in 2018

My "management strategy" would be to get people involved.
Well, that's very nice and all that, but it's been tried before, many times, in many different ways, under various leaderships. And to a certain extent it's worked. Apart from Abigail, none of the 10 top committers in 2017 was around in 2000, so we've all been recruited since.
I think many people would like to contribute if they understood the system better.
There is copious documentation on the perl internals, and people on p5p are always willing to help answer questions. But fundamentally, perl is an exceedingly complex language, with many weird and wonderful features (like ties) all interacting with each other in unexpected and exponentially complex ways. To a large extent the internals are complex because they reflect this. They're also complex because they were originally written that way. And because much of the internals are exposed via the XS API (and since XS can and sometimes does access non-API internals too) it's very hard to rewrite the internals into a clean, modern form that would be easy to learn, without breaking everything; even if we had the manpower to do so.

Dave.

  • Comment on Re^10: Curious about Perl's strengths in 2018

Replies are listed 'Best First'.
Re^11: Curious about Perl's strengths in 2018
by LanX (Archbishop) on Apr 23, 2018 at 11:03 UTC
    Thanks, but I don't know how these things apply to subroutine signatures.

    For instance how does the XS interface hinder the implementation of proper signatures?

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    Wikisyntax for the Monastery

      Thanks, but I don't know how these things apply to subroutine signatures. For instance how does the XS interface hinder the implementation of proper signatures?
      Well, I was talking in general terms about why perl5 doesn't tend to get new features, in response to your general compliant about the management of perl5.

      But specifically for signatures, there are many things that can break in XS. For example, if we introduce new op types to handle signature processing, then XS modules which manipulate the optree, or which assume certain ops at the start of a sub, or which modify op behaviour by changing their pp_addr function pointer, may all break. Or modules which use keyword plugins and make certain assumptions about allowed syntax. Or XS code which directly manipulates @_. Or code which attempts to hook into subroutine entry and exit. Or profilers that think they know all valid op types.

      There are many things that can break just that I can think of; when deployed, there will be other things that break that hadn't even occurred to me.

      Dave.

        These examples sound like XS code exploiting undocumented or internal features, without being widely used.

        Manipulating the OP Tree? Does really anyone seriously use B::Generate ?

        I'd be interested to see official API which would break with signatures

        I can't see how 3rd party modules like Function::Parameters break XS code while implementing most of Perl6 semantics.*

        It's a matter of management to introduce an experimental feature and give module maintainers exploiting undocumented stuff a time span to fix their code (or not).

        The benefits of decent signatures outweighs any possible damage.

        And not all modules are as important as JSON::XS and not all maintainers are reluctant to improvement like Schmorp is.

        I hope you see my point.

        Cheers Rolf
        (addicted to the Perl Programming Language and ☆☆☆☆ :)
        Wikisyntax for the Monastery

        *) and it might be worth checking if cperl's implementation of signatures broke any official XS API.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1213330]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2019-07-18 06:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?