*delurk*
Dan Sugalski's Perl internals talk
(http://dev.perl.org/perl6/talks/tpc5-internals/perl%206%20internals.html),
contains the following:
Extensions (cont)
* Inline, or something like it, is probably going to be the standard
for extending perl
* XS, when you have to resort to it, will be far less nasty than it
is now
So it looks like there will be an analogue of Inline, and it will be
part of the Perl6 core. Woo, and moreover yay!
It looks like it also will be possible to dynamically reconfigure the
Perl6 parser so it accepts C, which will then be compiled to Parrot
bytecode as normal. This seems to mostly obviate the point of using C,
but it's an option. This is with the Real Official Perl6 Compiler
Thingy: what about extending Pugs?
The Pugs FAQ says:
Can Pugs work with Haskell libraries?
Pugs can be compiled with hs-plugins support, which allows it to use
Haskell libraries. It is also capable of dynamically loading Haskell
modules. Aside from this, inline Haskell can be evaluated using
eval('...', :lang<haskell>).
In addition, at the basic level, you can statically link Haskell
libraries into Pugs primitives, by modifying a few lines in Prim.hs.
Can Pugs work with C libraries?
Not yet. However, HaskellDirect seems to provide an easy way to
interface with C, CORBA and COM libraries, especially when combined
with hs-plugins described above.
So it sounds like you should be able to write some code that takes your
C, generates IDL for it, feeds that to HaskellDirect to create a Haskell
wrapper library, then links that into your Perl6.
HTH,
Miles
--
All concepts are Kan extensions.
-- Saunders Mac Lane