
=encoding utf8

=head1 TITLE

DRAFT: Synopsis 21: Calling Foreign Code

=head1 AUTHORS

    Tim Nelson <wayland@wayland.id.au>
    Larry Wall <larry@wall.org>

=head1 VERSION

    Created: 27 Feb 2009

    Last Modified: 27 Feb 2009
    Version: 1

The document is a draft.

If you read the HTML version, it is generated from the pod in the pugs
repository under /docs/Perl6/Spec/S21-calling-foreign-code.pod so edit it there in
the SVN repository if you would like to make changes.

=head1 Overview

Unfortunately, calling foreign code properly is quite platform dependent.  This means that
parts of the external calling conventions can't be standardised.  But the parts that can
be standardised are specified here.

=head1 Specification
X<use>

The C<use> statement allows an external language to be specified in
addition to (or instead of) an authority, so that you can use modules
from other languages.  The C<from> adverb also parses any additional
parts as short-form arguments.  For instance:

    use Whiteness:from<perl5>:name<Acme::Bleach>:auth<cpan:DCONWAY>:ver<1.12>;
    use Whiteness:from<perl5 Acme::Bleach cpan:DCONWAY 1.12>;  # same thing

    use libc:from<C>;

=head1 Other Considerations

=head2 Linking to common platforms

XXX We need a discussion of how to link to some of the common platforms

=head1 Additions

Please post errors and feedback to perl6-language.  If you are making
a general laundry list, please separate messages by topic.

