I suggest you read more about Parrot... it's designed to allow these things. There is a project (Ponie) to make Perl 5 run on Parrot, and there will be other languages as well - which will be able to call each others libraries. Making the Perl 5 libraries available to Perl 6 being a primary motivation. I'm not sure about how well XS will work on Ponie, but I assume that it will be made to work if at all possible.

Milscvaer wrote:
Hello,
I believe it would be a very good idea and quite
essential, if Perl6 is not simply a superset of Perl5
and thus by default back compatable with Perl5, for
Parrot/Perl6 to also contain complete, 100% backwards
compatability capability with perl5 code, either in a
seperate perl5 parser distributed with perl6 or built
into the perl6 parser. Perl5 code and all of the perl5
language should be able to run on parrot with no
modifications.
Furthermore, on parrot, modules written in perl 6
should be accessible
from perl5 (forward compatability), and perl5 modules
should be
accessible from perl6 (backward compatability). The
symbol spaces and so on
so on for Perl5 libraries should be accessible as
well from Perl6 and
vice versa, as they are now from one perl5 module to
another. This is
absolutely essential since there is a very large
library of existing
Perl5 libraries and it would be completely
unreasonable to expect
all of these to be converted to Perl6, if such would
be required. There are
alot of us furthermore who like the Perl5 language as
it is, quirks
and all, and want to continue to be able to use perl5
yet also have
access to new libraries written with perl6. perl6
programmers will
want to have access to modules written with perl5.
Programmers should
be able to use both perl5 and perl6 in the same
program. Those who
like Perl5 as it is should have the freedom to be
able to continue to
use it on Parrot and have a 100% perl5 compatable
language. Every quirk and feature of perl5 really needs be
supported in the perl5
support on parrot, as I code I have written really
does depend on all of them.
Furthermore, it is very important as well that
compatabality with the Perl5
internals and XS be maintained on Parrot/Perl6. This
is to allow Perl
modules for Perl5 to be used from Perl6 programs and
on Parrot. If Parrot internals and XS
use a different API from the Perl5 ones, then a
compatability layer must be
provided to allow Perl 5 XS programs to be compiled
and run for Parrot.


This is very important as there is a very large
library of XS modules for
Perl5 and it is totally unreasonable to require that
they all be rewritten for
Parrot to be able to be used. I know the XS interface
and the Perl5
internals can be rather ugly, and its fine if Parrot
wants to provide an
improved API, but its still important to provide a
compatability layer for the old one in order to
allow compatability with existing modules and prevent
unneeded and
unreasonable amounts of work it would require, and
wasted time, to port old
modules to a new API. It would require much less work
and effort to
simply provide a compatability interface and allow
Perl5 XS modules to run
on Parrot and to be accessible from Perl6, than to
attempt to rewrite all of
the modules one would want to have access to on Perl6.
Perl5 and Perl5 XS
compatability will furthermore prevent the
fragmentation of the Perl
community into Perl5 and Perl6 camps, by assuring that
Perl5 modules can be
loaded from Perl6 and vice versa. It also assures that
the rich selection of
modules and packages avialable for Perl5 will be
immediately and instantly
avialable from Perl6, thus continueing the inertia
generated by Perl5 into
Perl6.It allows Perl5 programs to as well benefit from
new Perl6 modules, so both Perl5 and Perl6 can be a
part of the same community rather than being fractured
off into seperate communities.


One reason I use Perl is the vast collection of
modules avialable from CPAN and the choice in modules.

Perl needs to preserve avialability of all of these
modules. Remember that a module, or any feature, that
is useless to one person is essential to another
person.


Running the old Perl5 interpretor and the Parrot in
the same process is not
a great solution, since this would mean that there
would be two completely
seperate interpretor codebases to support. A big part of Parrot is to allow several
languages to use the same interpretor, thus allowing
them all to benefit
from the same solid foundation. It would be quite
ridiculous if Perl did not completely support a past
version of itself on Parrot given we are writing
parsers for numerous other languages for Parrot (a
good idea, indeed, but lets make sure Perl5 has a
Parrot parser too).


I urge complete 100% Perl5 support including XS and
internals to be included
with Parrot.

This would seem to be a pretty natural feature for
Parrot, which is
designed to host several language and should also be
extended to other
languages Parrot supports, why not allow a programmer
use Parrot to
run code for all of the languages avialable on it in
one program, and
allow code in one language to call code written in
other languages
loaded onto Parrot.
Sincerely,
U. Ruirarchzatrea



Reply via email to