Talk:Pugs

From Wikipedia, the free encyclopedia

[edit] Accuracy unclear

From the article:

Originally there was hope that the huge Pugs test suite would form the basis of the actual Perl 6 test suite, but now it looks more like Pugs itself will form the basis of the actual Perl 6, so the point is a bit moot.

Is this really true? I was under the impression that Perl6 is intended to be written in Perl6, with Pugs being intended by its own developers to do no more than bootstrap the first build of the final Perl6 Perl6. If that's what the statement in the article means, it needs clarifying; if it means that Pugs will actually replace the Perl6 Perl6, then I'd say a reference would be in order, since there's no mention of any such intention on any of the linked sites. — Haeleth Talk 11:59, 28 October 2005 (UTC)

Hi, I think I wrote the above sentence, when this article was but a young thing. I can't give any definitive reference unfortunately. I'm certainly not saying anyone expects Perl 6 to be written in anything other than Perl 6; however the impression I've got is that Pugs is going places in its own right, and will gradually be converted from Haskell to Perl 6 rather than just acting as a bootstrap for some other implementation of Perl 6. Feel free to delete it if you think such speculation is out of place - you're probably right!

Adetaylor 20:47, 27 January 2006 (UTC)

The final milestone of Pugs is self-hosting, that is, translating all the compiler components into Perl 6. At that point of time, if there is no other Perl 6 implementations around, it might be possible that Pugs is simply renamed to Perl 6 (see EGCS); if there is already another self-hosting Perl 6 implementation, then Pugs would retain its name, but would still be a self-hosting compiler. audreyt 16:23, 30 January 2006 (UTC)

Where does Parrot fit into this? Will Pugs/Perl6 be producing Parrot bytecode? Aaron McDaid (talk - contribs) 14:13, 17 August 2006 (UTC)
I'm just a lurker, but my understanding is that Parrot would be on even footing with any other target. That is, Pugs is very much a compiler in the GCC/EGCS sense - if there is a backend which targets Parrot, and the result of compiling to Parrot passes the Perl 6 tests, then Pugs supports Parrot and Parrot can run Perl 6. However, once Pugs can target Perl 6 and any working VM (or even a non-virtual machine target like x86), and once Perl 6 has been written in Perl 6, Pugs can run that (Perl 6 in Perl 6) on the working VM and that will be a Perl 6 system which could then compile itself. Whether that working VM is ghc running Haskel, the perl 5 runtime running perl 5 code, Parrot running PIR, Mozilla running JavaScript, .net running Visual Basic, llvm running C, gcc compiling C, Turbo Pascal compiling Pascal, some Forth engine, Common Lisp, Prolog, x86 assembler, or some DNA-based implementation of a Turing Machine (I saw it in Scientific American!), doesn't really matter.
The point of the Parrot project is to create a VM which is designed around the trade-offs associated with Perl-like languages, of which there are many, such as Ruby, Python, tcl/tk, PHP, and BASIC. These languages all presume the VM will handle memory management, most of them provide for automatic type coercian, and they all tend to support introspection.
Although the Parrot and Perl 6 projects started from the same place, it looks to me like they are diverging in a useful way. The Perl 6 project is developing a language standard (the Perl 6 test suite), and it is likely that the project will produce an implementation written in Perl 6. The Parrot project is developing a VM which many languages could share, allowing those languages to all run anywhere the Parrot VM has been ported to, and even providing some mechanisms by which those languages can "transparently" and "automatically" inter-operate. (I put these terms in quotes because there is a lot of hand-waving involved in bringing these promises to fruition.)
So in summary, Parrot is its own thing (a nifty VM for running dynamic languages), Perl 6 is its own thing (a language specification), and Pugs is its own thing (a compiler for Perl 6 with many targets, including Parrot).
Crag 19:53, 8 February 2007 (UTC)

[edit] Removed incorrect sentence re "official perl 6"

Due to licensing and concerns about the lack of copyright assignments from contributors, it is unlikely that The Perl Foundation will bless Pugs as the official implementation of Perl 6.

Perl 6 official policy is "unlike how it was with Perl 5, none of these projects is designed to be the Official Perl. Perl 6 is anything that passes the official test suite."[1](S01, n1v5, 1 Nob 2006) —The preceding unsigned comment was added by 66.30.117.127 (talk) 01:58, 31 January 2007 (UTC).