Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: Re: Re: Perl 6 feature that scares me the most:

by Anonymous Monk
on May 30, 2003 at 13:16 UTC ( #261843=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Perl 6 feature that scares me the most:
in thread Perl 6 feature that scares me the most:

While this is not likely to be true at launch, within a year or so Parrot should be happy to load Perl5 code therefore making the majority (if not the entirety, depending on how XS dependant modules are handled) of CPAN available to Perl6.

Implementing that is definitely not trivial. I think it is more likely that they will end up providing *some* support for XS modules, with the recommendation that we use the new system. Some will not be able to rely upon this emulation layer and it will not move to perl6 until they are really motivated. Continuations and closures alone, won't cut it. If it were so, all those proprietary, never seen by CPAN but running in production environments XS modules, were written in Lisp/Scheme by now

  • Comment on Re: Re: Re: Perl 6 feature that scares me the most:

Replies are listed 'Best First'.
Re: Re: Re: Re: Perl 6 feature that scares me the most:
by Elian (Parson) on May 30, 2003 at 14:18 UTC
    You're right, a not insignificant chunk of the XS code won't be able to be build under parrot, no matter what we do. We haven't (yet) sat down and gone through the perl 5 API to see what can and can't be thunked to work on Parrot.

    Some of it, certainly, can be done with simple macros. Stuff like SvIV or newSViv is a no-brainer, and we will do those. Things like the array and hash access are trickier, but we can probably manage those as well.

    Where it becomes less trivial is with things like SAVETMPS and magic, and I'm not sure what we're going to be able to do for that. When we figure it out we may well put together a consistent transition API for both perl 5 and parrot, so people who are interested in moving over can migrate to the transition API as they get time and interest, so their code will require even fewer changes to build on Parrot...

      People who follow my XS philosophy (write as little XS as possible, don't write "Perl in C", pretend you are using Inline::C not XS, have a Perl wrapper make the data C-friendly for the XS routine if needed) probably won't have to rewrite.

      I just wanted to "gloat" since I think I get more "disrespect" for this philosophy than not. (:

      Update: You can do more than wrappers, just deal with data in C-friendly structures in your C code; don't write C code to manipulate Perl data structures.

                      - tye
        Absolutely--the people who are only writing wrapper code won't have nearly so much to worry about... <ducking>

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2022-05-28 22:32 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (101 votes). Check out past polls.