=head1 Perl 5 support in Pugs

This document describes the bi-directional Perl 5 compatibility support.

=head1 TODO

=head2 Perl 6 calling Perl 5

=over

=item Exportation

C<perl5_apply> needs to push itself to additional caller stack, so
C<Exporter> will try to modify a tied namespace, which then export
them to actual caller P6 namespace.

=item Reference access from perl5

=over 

=item scalar

Make C<Getopt::Long> work.  C<MkValRef> gets dereferenced value, pending the fix to this.

=item array

C<STORE> / C<PUSH> fails, the array is correct in the accessor applied
in perl5 tie, but not properly propogate back.  perhaps because args
not marked as rw at the beginning.

=item hash

Requires C<eval_apply> to return multiple value so we can store the
list for key iterator.

=back

=back

=head2 Perl 5 calling Perl 6

=over

=item C<libpugs.so>

To be natively embedded in Perl 5.

=item Exportation

Get the C<is export> functions and refer to them in the Perl 5 symbol table.

=back

=cut
