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

Re^2: Modernizing the Postmodern Language?

by bliako (Monsignor)
on Jul 02, 2020 at 08:40 UTC ( [id://11118796]=note: print w/replies, xml ) Need Help??


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

a first class API into the interpreter ... insulates ... 

I find this important. Also, modernising the guts (without breaking anything, is that possible?) is equally important and will pay off in the future.

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

Replies are listed 'Best First'.
Re^3: Modernizing the Postmodern Language?
by salva (Canon) on Jul 02, 2020 at 10:07 UTC
    without breaking anything, is that possible?

    No.

    It is impossible to change the internals in any important way and keep XS code working.

    Several years ago, Nicholas Clark (a perl's internals guru) tried porting perl 5 to parrot (the Perl 6 runtime), and IIRC, he didn't get too far because of XS. See Ponie has been put out to pasture.

      Also, once you remove the XS compatibility requirement, it would be very naive to reinvent a new guts just for running Perl 7.

      When perl 5 came out, they were forced to invent everything from scratch, but now, there are lots of mature, efficient and feature rich runtimes you can reuse: .Net, JVM, MoarVM, etc.

        When perl 5 come out, they were forced to invent everything from scratch, but now, there are lots of mature, efficient and feature rich runtimes you can reuse: .Net, JVM, MoarVM, etc.

        The problem is when the semantics of the VM don't match the semantics of the language, especially with regard to memory management, dispatch, process models, etc.

        but now, there are lots of mature, efficient and feature rich runtimes you can reuse: .Net, JVM, MoarVM, etc.

        Isn't the problem always reference counting vs. tracing gc, though? If you expect DESTROY to run when your objects go out of scope, for example, most gc runtimes won't destruct objects in a timely fashion and I think some won't call destructors at all. I want to say dotNET core got rid of finalizers, for example.

        But regardless of details, I agree that runtime-independence is the kind of aspirational thing that would make the pain of retiring XS worth it.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-19 06:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found