Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^12: Modernizing the Postmodern Language?

by bliako (Prior)
on Jul 07, 2020 at 07:28 UTC ( #11118994=note: print w/replies, xml ) Need Help??


in reply to Re^11: Modernizing the Postmodern Language?
in thread Modernizing the Postmodern Language?

A question in my mind is: can Perl's internals be re-written for more efficiency, given all this experience gained over the years in these parallel attempts? Equally important: an API to access the internals a la XS. Obviously easier, user-friendly, perhaps "isolating" the core better?

One point of view is by salva here Re^4: Modernizing the Postmodern Language?. Is yours different? Is there hope?

  • Comment on Re^12: Modernizing the Postmodern Language?

Replies are listed 'Best First'.
Re^13: Modernizing the Postmodern Language?
by chromatic (Archbishop) on Jul 07, 2020 at 17:45 UTC

    Can they be rewritten? Yes. It's just code.

    Replacing XS is a big deal though. That's a bigger break than syntax, because 30% of the CPAN won't work with new releases.

    Nicholas Clark's Ponie work shows one way where it's difficult. Artur Bergman ran an experiment around the same time to migrate SVs to something more like Parrot's PMCs, where every data type had virtual methods in well-defined slots instead of accessor macros. That didn't go very far either. These are fundamental assumptions of perl's implementation without any encapsulation beyond C macros.

    It'll be a lot of work.

    The best way I've ever figured out to do this is to introduce an abstraction layer for XS that's not XS and that lets the core gradually migrate away from the XS-ish implementation, but even that's a decades-long project I fear.

      > PMCs, where every data type had virtual methods in well-defined slots instead of accessor macros

      Well my first idea was, why not write a wrapper macro/class which applies the accessor macros in form of "virtual methods in well-defined slots"?

      > The best way I've ever figured out to do this is to introduce an abstraction layer for XS that's not XS

      Are you going into the same direction here?

      Why would we need to gradually migrate away from XS then?

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

      UPDATE s/CS/XS/ typo

        Well my first idea was, why not write a wrapper macro/class which applies the accessor macros in form of "virtual methods in well-defined slots"?

        It's been a long time since I thought about such a thing, but I don't know how much work it would be to write lvalue macros that could call set_ methods appropriately.

        Why would we need to gradually migrate away from XS then?

        CPAN/DarkPAN authors who want to support multiple language versions with a single release.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (1)
As of 2020-10-24 23:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (248 votes). Check out past polls.

    Notices?