Permalink
Browse files

[rakudo]: conversion from 'perl6' to 'Rakudo'

~ some clarifications in documentation

git-svn-id: http://svn.perl.org/parrot/trunk/languages/perl6@24922 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information...
1 parent 8a89299 commit 2dceda54f6bc225a3d0924db15dc28d01a739add @particle particle committed Jan 16, 2008
Showing with 61 additions and 55 deletions.
  1. +18 −18 README
  2. +13 −13 ROADMAP
  3. +17 −17 docs/compiler_overview.pod
  4. +10 −4 docs/glossary.pod
  5. +3 −3 perl6.pir
View
36 README
@@ -1,21 +1,21 @@
## $Id$
-=head1 Perl 6 on Parrot
+=head1 Rakudo Perl 6
-This is the Perl 6 compiler for Parrot, called "perl6". It's still
-fairly primitive -- only simple expressions and functions are
-available, but it's rapidly expanding. See L<docs/STATUS> for a
-list of what has been implemented thus far.
+This is the Perl 6 compiler for Parrot, called "Rakudo Perl 6,"
+or "Rakudo" for short. It's still fairly primitive -- only simple
+expressions and functions are available, but it's rapidly expanding.
+See L<docs/STATUS> for a list of what has been implemented thus far.
-=head2 Building and invoking perl6
+=head2 Building and invoking Rakudo
To build the compiler, start by building Parrot, then change
to the languages/perl6/ subdirectory and type "make". This
will create the compiler as a file called "perl6.pbc". The ".pbc"
stands for "Parrot bytecode", and represents an executable Parrot
module.
-To run a Perl 6 program with perl6, issue a command like
+To run a Perl 6 program with Rakudo, issue a command like
$ parrot perl6.pbc hello.pl
@@ -32,7 +32,7 @@ paths to the Parrot build tree (especially the dynamic libraries
and modules), so removing the build tree will cause the binary
to stop working.
-If the perl6 compiler is invoked without an explicit script to
+If the Rakudo compiler is invoked without an explicit script to
run -- i.e., as "parrot perl6.pbc" or just "perl6" -- it enters a
small interactive mode that allows Perl 6 statements to be
executed from the command line. Each line entered is treated
@@ -41,21 +41,21 @@ as a separate compilation unit, however.
=head2 Running the test suite
Entering "make test" will run the test suite that comes bundled
-with perl6 on Parrot. This is a simple suite of tests, designed
-to make sure that the perl6 compiler is basically working and that
+with Rakudo on Parrot. This is a simple suite of tests, designed
+to make sure that the Rakudo compiler is basically working and that
it's capable of running a simple test harness.
Running "make spectest" will import relevant portions of the
"official Perl 6 test suite" from the Pugs repository
(http://svn.pugscode.org/tests/spec/) and run selected tests from
there. At present we do not have any plans to directly store the
-official test suite as part of the perl6/Parrot repository,
-but will continue to fetch it from Pugs.
+official test suite as part of the Rakudo/Parrot repository,
+but will continue to fetch it from the Pugs repository.
=head2 Where to get help or answers to questions
There are several mailing lists, IRC channels, and wikis available
-with help for Perl 6 and perl6 on Parrot. Figuring out the right
+with help for Perl 6 and Rakudo on Parrot. Figuring out the right
one to use is often the biggest battle. Here are some rough
guidelines:
@@ -66,15 +66,15 @@ for the people who want to I<use> Perl 6 to write programs, as
opposed to those who are implementing or developing the Perl 6
language itself.
-Questions about the perl6 compiler for Parrot and the Parrot
+Questions about the Rakudo compiler for Parrot and the Parrot
compiler tools can go to C<perl6-compiler@perl.org>. Discussion
about Parrot itself generally takes place on C<parrot-porters@perl.org>.
-The Parrot and perl6 development team tend to hang out on IRC
+The Parrot and Rakudo development team tend to hang out on IRC
a fair bit, either on C<irc.perl.org/#parrot> or (to a somewhat
-lesser extent) C<freenode/#perl6>.
+lesser extent) C<irc.freenode.net/#perl6>.
-There are also the Perl 6 and Parrot wikis, at
+There are also Perl 6 and Parrot wikis, found at
L<http://www.perlfoundation.org/perl6/index.cgi>
L<http://www.perlfoundation.org/parrot/index.cgi>
@@ -106,7 +106,7 @@ See F<docs/compiler_overview.pod>.
=head1 AUTHOR
Patrick Michaud (pmichaud@pobox.com) is the author and maintainer
-for perl6 on Parrot .
+for Rakudo Perl 6 on Parrot.
=cut
View
26 ROADMAP
@@ -21,24 +21,24 @@ Building the Perl 6 on Parrot compiler
The compiler and toolchain that I've been focusing on is being
developed for the Parrot virtual machine ( http://www.parrotcode.org/ ).
-The Perl 6 Compiler for Parrot is called "perl6", and it currently
+The Perl 6 Compiler for Parrot is called "Rakudo", and it currently
lives in the languages/perl6/ directory of the Parrot repository.
-To build the perl6 compiler, first get a working copy of Parrot,
+To build the Rakudo compiler, first get a working copy of Parrot,
then change to the languages/perl6/ subdirectory and type "make".
This will build the compiler into a file called "perl6.pbc".
The ".pbc" stands for "Parrot bytecode", and represents an
an executable Parrot module.
-To run a program with perl6, one then issues a command like
+To run a program with Rakudo, one then issues a command like
$ parrot perl6.pbc hello.pl
Parrot does not yet support a #! syntax that allows us to run
Perl 6 scripts directly from the command line, but that will
undoubtedly be coming soon.
-If the perl6 compiler is invoked without a script argument
+If the Rakudo compiler is invoked without a script argument
(i.e., "parrot perl6.pbc"), it enters a small interactive
mode that allows Perl 6 statements to be executed from the
command line.
@@ -62,7 +62,7 @@ Structure of the compiler as of 2007-11-01
Before describing where we're going, it may be useful to briefly
outline where we've been. As of early November 2007, the
-perl6 compiler is divided up into four major components:
+Rakudo compiler is divided up into four major components:
1. the parsing grammar (src/parser/Grammar.pg)
2. some parsing support subroutines (src/parser/*.pir)
@@ -91,7 +91,7 @@ are expected to be bootstrapped using Perl 6.
Where things are headed next
----------------------------
-While the design and implementation of the perl6 compiler has
+While the design and implementation of the Rakudo compiler has
remained fairly static throughout 2007, a number of other things
have been occurring that will spark a substantial redesign.
@@ -102,12 +102,12 @@ work on the compiler.
Another significant change has been the development of a
standard grammar for Perl 6, known as STD.pm [1]. Larry started
the STD.pm grammar earlier this year based on the grammars written
-for Pugs and perl6, and partially as a result of this grammar
+for Pugs and Rakudo, and partially as a result of this grammar
there's been some substantial redesign and improvement to
Synopsis 5 (Regexes).
So, one of the things we will be doing soon is to redesign the
-perl6 compiler using a grammar that is much closer to STD.pm .
+Rakudo compiler using a grammar that is much closer to STD.pm.
We aren't quite ready to use STD.pm directly, because it relies
somewhat on having a working Perl 6 implementation, as well
as some new constructs that aren't implemented by Parrot's
@@ -124,7 +124,7 @@ phase, instead of requiring a separate phase.
Furthermore, the methods for generating the AST can initially be
in "NQP" instead of Parrot assembly. NQP is a lightweight form
of Perl 6 designed especially for compiling simple programs in
-Parrot [2]. As a result, most of the source code for the perl6
+Parrot [2]. As a result, most of the source code for the Rakudo
compiler will end up looking a lot like Perl 6, which may make
it easier for others to hack on.
@@ -133,17 +133,17 @@ So, here's the current plan for the next couple of weeks:
* NQP will get one or two more language constructs added to it,
to support generating simple class and method definitions.
-* The perl6 grammar will then be redesigned to more closely
+* The Rakudo grammar will then be redesigned to more closely
mimick STD.pm . Actually, we'll use NQP's current grammar
as a starting point, since it's been designed based on STD.pm .
- We'll want to work on this to get perl6 at least back to the
+ We'll want to work on this to get Rakudo at least back to the
level of passing tests that it has now.
* In the process we'll also be doing some redesign of the runtime
environment and built-in classes, to take advantage of Parrot's
new object model.
-As we get perl6 re-oriented in the new constellation of tools,
+As we get Rakudo re-oriented in the new constellation of tools,
we can then continue to address language features, builtin classes
and methods, and otherwise add features to flesh out the
compiler implementation. Much of this will be driven by
@@ -169,7 +169,7 @@ and although the AST transformations are currently written
in PIR, the source code for the transformations also provides
the Perl 6 equivalent. (Eventually NQP may be used to
bootstrap itself... but we're not there yet, and I'm more
-focused on getting perl6 running.)
+focused on getting Rakudo running.)
Patches and bug reports can be submitted to perl6-bug@perl.org.
Please use the moniker [PATCH], [BUG], or [TODO] (including the
View
@@ -1,13 +1,13 @@
## $Id$
-=head1 Overview of the perl6 compiler
+=head1 Overview of the Rakudo Perl 6 compiler
This document describes the architecture and layout of the
-perl6 compiler itself. See the F<README> or F<STATUS>
-files for information about how to use the compiler or
-what features have been implemented.
+Rakudo Perl 6 (a.k.a. Rakudo) compiler. See the F<README>
+or F<STATUS> files for information about how to use the compiler
+or what features have been implemented.
-The perl6 compiler is constructed from four major components:
+The Rakudo compiler is constructed from four major components:
1. the parse grammar (src/parser/grammar.pg, src/parser/*.pir)
2. a set of action methods to transform the parse tree into
@@ -60,11 +60,11 @@ rule in the grammar.
The action methods (in F<src/parser/actions.pm>) are used to
convert the nodes of the parse tree (produced by the parse grammar)
into an equivalent abstract syntax tree (PAST) representation. The
-action methods are where the perl6 compiler does the bulk of the work
+action methods are where the Rakudo compiler does the bulk of the work
of creating an executable program. Action methods are written in
Perl 6, but we use NQP to compile them into PIR as F<src/gen_actions.pir>.
-When perl6 is compiling a Perl 6 program, action methods are invoked
+When Rakudo is compiling a Perl 6 program, action methods are invoked
by the C< {*} > symbols in the parse grammar. Each C< {*} > in a rule
causes the action method corresponding to the rule's name to be
invoked, passing the current match object as an argument. If the
@@ -73,7 +73,7 @@ starting with C< #= >, any text after the comment is passed as a
separate key argument to the action method. (This is similar to
the approach that STD.pm uses to mark and distinguish actions.)
-For example, here's the parse rule for perl6's C<unless> statement
+For example, here's the parse rule for Rakudo's C<unless> statement
(in src/parser/grammar.pg):
rule unless_statement {
@@ -133,13 +133,13 @@ program -- for more details about the available node types,
see PDD 26 (L<http://svn.perl.org/parrot/trunk/docs/pdds/pdd26_ast.pod>).
One important observation to make here is that NQP is used only for
-I<building> the perl6 compiler, and then only to convert the action methods
+I<building> the Rakudo compiler, and then only to convert the action methods
in F<src/parser/actions.pm> into equivalent PIR (F<src/gen_actions.pir>).
The F<src/gen_actions.pir> file is then used to build F<perl6.pbc>.
-In particular, NQP is I<not> part of the perl6 runtime -- i.e., when
-perl6 is running, NQP is not loaded or used. Yes, this does mean that
-we can conceivably use the perl6 compiler to compile F<actions.pm> to
-PIR and eliminate the need for NQP entirely. At some point as perl6
+In particular, NQP is I<not> part of the Rakudo runtime -- i.e., when
+Rakudo is running, NQP is not loaded or used. Yes, this does mean that
+we can conceivably use the Rakudo compiler to compile F<actions.pm> to
+PIR and eliminate the need for NQP entirely. At some point as Rakudo
matures we will probably do this. However, for the time being it's
slightly easier to manage the process if we keep a distinction between
the two tools, and using NQP for this stage also helps us to limit
@@ -163,7 +163,7 @@ simply creates a new C<PCT::HLLCompiler> object, registers it
as the C<Perl6> compiler, and sets it to use the C<Perl6::Grammar>
and C<Perl6::Grammar::Actions> classes defined above.
-The C<main> subroutine in perl6.pir is used when perl6 is invoked
+The C<main> subroutine in perl6.pir is used when Rakudo is invoked
from the command line -- it simply passes control to the C<Perl6>
compiler object registered by the C<onload> subroutine.
@@ -187,16 +187,16 @@ easier to write in PIR than in Perl 6 or some other language.
In the very near future we expect to be writing much of the
additional runtime as Perl 6 code instead of PIR. In other
-words, we'll build just enough runtime to get a basic perl6
+words, we'll build just enough runtime to get a basic Rakudo
compiler running, and then use that to compile the remainder
of the runtime libraries (written in Perl 6) that a standard
Perl 6 program would expect to have available when it is run.
=head2 Still to be documented
-* perl6 PMCs
-* The relationship between Parrot classes and perl6 classes
+* Rakudo PMCs
+* The relationship between Parrot classes and Rakudo classes
* Protoobject implementation and basic class hierarchy
=head1 AUTHORS
View
@@ -1,6 +1,6 @@
## $Id$
-=head1 glossary.pod - glossary of terms used in the perl6 compiler
+=head1 glossary.pod - glossary of terms used in the Rakudo compiler
=over
@@ -37,7 +37,7 @@ representation. In most computer science circles we would
simply call this a "grammar", but in Parrot the term "grammar"
is also used occasionally to specify other sets of transformation
rules (that aren't necessarily performing parsing). Within
-the perl6 compiler the terms "parse grammar" and "grammar"
+the Rakudo compiler the terms "parse grammar" and "grammar"
are pretty much interchangeable.
=item PAST - Parrot Abstract Syntax Tree
@@ -57,6 +57,12 @@ for parsers ( C<PCT::Grammar> ), a base class for compilers
( C<PCT::HLLCompiler> ), an abstract syntax tree representation
(PAST), and a PAST compiler.
+=item Rakudo
+
+An abbreviation of "Rakuda-do," which, when translated from Japanese,
+means "The Way of the Camel". In Japanese, "Rakudo" means "Paradise."
+For more info, see L<http://use.perl.org/~pmichaud/journal/35400>.
+
=item STD.pm
STD.pm is the "standard" Perl 6 grammar definition,
@@ -70,10 +76,10 @@ the various implementations will converge on a common grammar
=item Tree Grammar Engine (TGE)
-Early versions of compilers for Parrot, including perl6, made
+Early versions of compilers for Parrot, including Rakudo, made
use of the "Tree Grammar Engine" (F<compilers/tge>) to transform
parse trees into an abstract syntax tree and then into executable
-code. For perl6, this has been obsoleted in favor of using
+code. For Rakudo, this has been obsoleted in favor of using
action methods and NQP for transformation into PAST.
=back
View
@@ -1,10 +1,10 @@
=head1 TITLE
-perl6.pir - A Perl 6 compiler.
+perl6.pir - The Rakudo Perl 6 compiler.
=head2 Description
-This is the base file for the Perl 6 compiler.
+This is the base file for the Rakudo Perl 6 compiler.
This file includes the parsing and grammar rules from
the src/ directory, loads the relevant PGE libraries,
@@ -69,7 +69,7 @@ USAGE
## set the $version attribute
.local pmc cfg
$P0 = new 'String'
- $P0 = 'This is perl6'
+ $P0 = 'This is Rakudo Perl 6'
push_eh _handler
cfg = _config() # currently works in the build tree, but not in the install tree
$P0 .= ', revision '

0 comments on commit 2dceda5

Please sign in to comment.