On Wed, Apr 20, 2005 at 04:50:38PM -0400, Matt Creenan wrote: > To expand on this... > > How will you be able to access shared libraries with native code, such as > DLLs on windows? Is there a way to do this proposed for Perl6 yet? If > so, is it possible in PUGS?
It is possible in Pugs's Haskell backend by using the experimental, unspecced (and will probably be changed) eval_haskell() primitive to natively call Win32 DLLs. Alternatively, you can write modules using the experimental, unspecced (and will probably be changed) syntax: module SHA1-0.0.1; inline Haskell => ' import qualified SHA1 sha1 :: String -> String sha1 = SHA1.sha1 '; Inline::C support is also trivial, by translating the C signatures into Haskell FFI calls, and adding them to Pugs.External.C. In Pugs's IMC backend, I expect the same syntax to still hold; I have started investigating interop with Parrot/Tcl, and it does seem feasible. Bringing the topic back to perl6-language, I'd like to inquire how eval and inlining other languages works. Here's some thoughts: eval('printf("Hello!")', :language<C>); eval(:C('printf("Hello!")')); inline C => '...'; inline C => =<foo.c>; If there is some consensus on this, I'd like to change Pugs's existing `eval_perl5()` and `inline` syntax to agree with it. Thanks, /Autrijus/
pgpcJeRR2TD26.pgp
Description: PGP signature