[EMAIL PROTECTED] wrote:
So are you suggesting that Ponie be written in Perl 6 or Perl 5?  If you
want to remain consistent with the self hosting approach and maximize
the Perl 5 userbase, the Ponie compiler Perl should be written in Perl
5, and thus self hosted as well via itself on Parrot.  If this were the
case, work on bootstrapping Ponie in Perl 5 could begin now.


No, not at all. I personally dont think it would be a good idea or a wise use of time to make Perl 5 self hosting. One goal of Ponie is to maintain support with XS and embedding. This involves the perl internals APIs and XS, which are implemented and accessed at the C level. Part of the existing Perl 5 internals code base is simply being ported over to and wrapped around Parrot, as I understand it. this is to maintain compatability with the complex and peculiar XS and Perl internals APIs, this is the best way to maintain compatability with XS and Perl modules.

I further said it would be nice to have *Perl 6* self-hosting *eventually*. Although, Pugs as a Perl 6 compiler would be sufficient initially until a Perl 6 one can be written. The most important thing is to have a Perl 6 implementation to use, although I believe it is good that it is being written in a high level language like Haskell, rather than a medium level one like C.

Perl 5 will still be around via Ponie, but i suspect most major new perl language features are being implemented on Perl 6, this will be the platform for adding new perl language features to and extended Perl further. So it makes sense to make Perl 6 compiler easily readable by the same developers who use it, by making it self hosting. For me, that is the benefit of having it self hosting. I dont think that it would be a valuable use of time to make Perl 5 self hosting, requiring a major rewrite of it, when Perl 6 is the platform where major new language features will be implemented. Ponies method of refactoring the Perl 5 C code fits the goal well, which is to provide support for existing Perl 5 language XS, internals and language, on Parrot, but not necessarily a platform for implementing major new language features (but who knows, someone still could add some new features to the Ponie C source).

On Sun, 26 Jun 2005 15:46:21 -0400, "Millsa Erlas"
<[EMAIL PROTECTED]> said:


Being a Perl 5 user myself, I believe that it would be the best idea to
write the final Perl 6 compiler targetting Parrot ideally in Perl 6 or
at least some other higher-high level language such as Haskell. The
reason behind this is this would allow the compiler to be maintained by
Perl 6 developers who do not have a lot of experience with lower-high
level or medium level languages such as C/C++ or PIR/IMC. I believe a
Perl 6 compiler written in C would be a bad idea and would in fact
repeat one of the major problems with Perl 5. It would lock out Perl
developers (like me) who do not know C from being able to understand and
improve upon the compiler. C is not an easy language for many to use or
learn and there are many people who are not proficient in it. C for me
and many Perl developers is not a pretty or a pleasant language to deal
with.

A self-hosting Perl 6 will require of course an implementation of Perl 6
in another language. Pugs seems to be quite far ahead in this respect,
quite a bit has already been accomplished with Pugs so it would seem to
me to be most efficient and quick to turn Pugs into a Parrot targetting
compiler.

Sure, Perl 6 being self hosting will require a previous version of Perl
6 to compile the new version. But I really dont see this as a problem,
many other languages are self hosting, like C, where the exact same
thing is done. I just dont think its a problem at all. It is a reasonable trade-off for having a compiler that is eisier to read, understand, debug, and which can be read and improved
by the same Perl community that uses it, which I think is essential.

I believe, in order for Perl 6 and Parrot to be more widely used, needed
is a fully functional Perl 6 compiler targetting Parrot, and the Ponie
project to allow all existing Perl 5 and XS modules to be accessed from
Perl 6 and for Perl 6 modules to be accessed from Perl 5. Perl 5 and
Perl 6 should be able to co-exist alongside each other, sharing the same
library of modules, and being able to use modules written in either
language, or XS. This is essential, and quite important, and the most
efficient thing to do, since the work done on existing Perl 5 modules,
including XS ones, would not need to be duplicated, and people would be
able to use the full collection of Perl 5 and XS libraries with Parrot,
Perl 5 and Perl 6, which is one of the things that I need, and I suspect
most people need, to be able to start using Parrot and Perl 6, and
prevents needless duplication of the same functionality in multiple
languages. Once Ponie is completed, new versions of Perl 5 could use the
Parrot VM, and Perl 5 and Perl 6 would be able to share the same Parrot
VM.

I believe Ponie and a Parrot targetting Perl 6 compiler (Pugs initially), is probably one of the most important and essential parts of Parrot and Perl 6 and getting these into a useable state as soon as possible.

Reply via email to