Perl 6
Glossary of Terms and Jargon: Revision 2
For a Perl 5 programmer who has just began exploring Perl 6, there is a lot of jargon to learn. This page is meant as a simple reference.

If there is anything you want to know that isn't explained here, then ask on the FreeNode IRC network in #perl6. You can also ask on the perl6.users mail list/newsgroup. Mention this page. (See [Mail Lists, IRC, Archives].) Then add the answer here so that others won't have to ask the same question. Thanks in advance!

Keep descriptions simple! If you feel a longer description is needed, give it a page of its own.

^^^ Local List

* *AST : Abstract Syntax Tree*, see "Parrot Abstract Syntax Tree"<>
* *Commit bit* : write access to *Subversion* source code repository of *[Pugs]*. Given liberally to anyone who expresses the will to contribute to the project on the *perl6* IRC channel. See *#perl6*.
* *[CPAN6]* : The Perl 6 version of the Comprehensive Perl Archive Network ("CPAN"<>), a large web-accessible library of free Perl 6 modules that will also include modules of other Parrot language modules (which can be shared among all languages that compile to Parrot, including Perl 6).
* *[elf]* : elf is largely written in p6
* *Haskell* : a functional programming language with capabilities for precise and type-safe function definitions. *Pugs* is written in Haskell, using mostly the free Glasgow Haskell Compiler (GHC). Perl 6 syntax and features are also influenced by "Haskell"<>.""<>
* *[HLL]: High Level Languages*. Perl 6 is a High Level Language whereas PIR is Low Level Language.
* *IRC* : see *#perl6*.
* *[KindaPerl6]* : It's a simplified dialect (subset) of Perl 6 that is executed with Perl5. It's a piece of the compiler bootstrapping effort. (Also see "NQP".)
* *@Larry* : the small team of Perl 6 language design wizards headed up by Larry Wall. See [Perl 6 People] for present and past team members.
* *m0ld:* is the smop lowlevel language (like PIR)
* *[mildew]* : an STD compiler backend targeting SMOP
* *[NQP]*: Not Quite Perl 6. It's a simplified dialect (subset) of Perl 6 that is executed with Parrot. It's a piece of the compiler bootstrapping effort. (Also see [KindaPerl6].)
* *[-Ofun]* : "Optimize for Fun", Audrey Tang's guiding policy and philosophy for *Pugs*. Originates from the -O command line switch, common in compilers. It means that the main goal of software development should be fun and not speed of execution, speed of development, merchantability, price or other non-important things. Among other things, it is manifested in liberal write access (see *commit bit*) to the Pugs *Subversion* repository and a friendly community on *perl6* and the mailing lists. For more information see "presentation about -Ofun"<> (pdf).
* *[PAST]* : "Parrot Abstract Syntax Tree"<>.
* *[Parrot]* : a register-based virtual machine _and_ related dynamic language development tools, which are optimized for hosting dynamic languages, with a focus on Perl 6, Ruby, Python, Lisp, and so on. Parrot is intended to be a modern alternative to stack-based virtual machines, such as JVM (Java) and .NET CLR (C#, etc.). Parrot also aims to support cross-language module sharing. Also see *CPAN6*.
* *Perl 5, Perl 6, perl5, perl6* : "Perl 5" and "Perl 6" are names of programming languages, whereas "perl5" and "perl6" are the corresponding names of compilers used to run Perl 5 and Perl 6 programs.
* *#perl6* : the Perl 6 IRC channel. The channel is accessible on the irc:// IRC server. You can read past conversations in the "#perl6 IRC log"<>. See [Mail Lists, IRC, Archives] to get started.
* *[PGE]* : [Parrot] Grammar Engine.
* *PIL* : [Pugs] Intermediate Language.
* *[PIR]* : [Parrot] Intermediate Representation, a human-readable, very-high-level, assembly-like language into which a program in a *Parrot*-supported language hosted is translated. It is also possible, although harder, to program in this language directly.
* *[PMC]* : [Parrot] Magic Cookie, a Parrot base type that systematically represents other non-base types.
* *[Pugs]* : the first substantially complete Perl 6 implementation, which has a native runtime written in *Haskell*, and multiple targeted backends. The Pugs project grew beyond the Haskell implementation - the name "Pugs" now refers to a number of things, including some of the CPAN modules that were created to implement Perl 6 in Perl 5 (i.e. the Pugs:: modules). Some of these projects were started in the Subversion repository that held the Haskell Pugs project, so they inherited the Pugs name. This includes the Perl 6 test suite, that is now used for various implementations of Perl 6.
* *[Rakudo]* : The Perl 6 compiler on Parrot. See "The compiler formerly known as 'perl6'"<>.
* *RT*: (as in references to an "rt ticket") is "Request Tracker", the issue (including bug) tracking and reporting system used in Perl development.
* *s1p*: former SMOP HLL
* *[SMOP]*: an alternative implementation of a C engine to run Perl 6
* *STD*: Standard Grammar. see []
* *Subversion* : a multi-user patch merging source control system. "Click here for the SVN homepage"<>
* *SVK* : a decentralized version control system built upon the robust *Subversion* source control system. Used by leading Pugs developers. It supports repository mirroring, disconnected operation, history-sensitive merging, and integrates with other version control systems, as well as popular visual merge tools. "Click here for the SVK homepage"<>.
* *SVN* : see *Subversion*.
* *[TGE]* : [Parrot]'s Tree Grammar Engine.
* *[v6]* : a Perl 5 module, that let you write Perl 6 inside your Perl 5 Program.
* *VAST:*
* *YAML*: "Yet Another Markup Language". (YAML does not stand for "YAML Ain't Markup Language".) According to (""<>), "YAML(tm) (rhymes with "camel") is a straightforward machine parsable data serialization format designed for human readability and interaction with scripting languages such as Perl and Python. YAML is optimized for data serialization, configuration settings, log files, Internet messaging and filtering."

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.