Re: Looking to get Involved

[email protected] (Darren Duncan) Mon, 16 Feb 2009 00:20:01 -0800
Newsgroups perl.dbi2.dev
Message-ID <[email protected]>
Jonathan Leffler wrote:
> On Sat, Feb 14, 2009 at 12:15 PM, Steven Lembark <[email protected]>wrote:
>> Jonathan Leffler wrote:
>>
>> It depends, in part, on Perl 6 stabilizing.
>>
>> How stable?
>>
>> Rakudo more-or-less works -- at least enough to start
>> serious planning based on the spec.
> 
> Beware - you have to 'Reply-All' to get messages to the mailing list.
> 
> Dunno - but more stable than it was in 2006 (which it undoubtedly is).
> 
> I'm not sure how well the extension interfaces are defined.  How do you do
> the analogue of XS in Perl 6?  Or, how do you get at C code form Perl 6?
> 
> I've forgotten how Perl 6 relates to Parrot, or Rakudo, or ... any of the
> myriad other code names lurking around.  So, what does "Rakudo more-or-less
> works" mean?
> 
> I'm not the leader...I'm just a pleb DBD developer aiming to keep abreast of
> what happens.  So anything I say should be taken with a pinch of salt and
> treated as non-definitive.

I'm not deeply involved at the moment but keep abreast in various Perl 6 things.

Basically, Perl 6 is a language that has multiple implementations, for example 
Pugs is an implementation over Haskell and Rakudo is the name of the 
implementation over Parrot; if you want to ignore any non-Parrot stacks, then 
just say that Rakudo is the name of the program you compile Perl 6 code with.

Now, last I recall from the roadmaps, Parrot is planning to hit version 1.0 
around March 2009 or sometime; the significance of Parrot 1.0 being that the 
Parrot VM should then be a feature complete relatively stable target for writers 
of compilers, such as Rakudo, to target.  This doesn't mean Rakudo will be at 
1.0 though; that would probably take a lot longer, perhaps until after the Perl 
6 auxiliary synopsis are all written.

To answer your XS analogy question, Parrot has something called NCI (native call 
interface), which essentially lets you invoke C library APIs directly without 
needing any library specific glue code like XS is; so essentially you don't need 
XS anymore.  Now I don't recall it actually being in a synopsis document, but 
what was discussed in the past is that Perl 6 does have a native facility for 
just invoking routines and other entities of foreign languages directly without 
glue code, basically just by way of a special Perl namespace prefix.

And so, presumably any DBI for Parrot or Perl 6 won't need any components 
written in C in general, and you could probably just write it all in Perl 6. 
Which also means in general that any Perl 6 DBI with similar functionality to 
the Perl 5 DBI will require a much smaller codebase.

That is what I understand.

-- Darren Duncan