=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