Re: a bugfix for Pod::Html (in diff -u format)
[p5sagit/p5-mst-13.2.git] / pod / perlcompile.pod
index 04dc019..ef3e537 100644 (file)
@@ -9,7 +9,7 @@ internal form (a parse tree) which is then optimized before being
 run.  Since version 5.005, Perl has shipped with a module
 capable of inspecting the optimized parse tree (C<B>), and this has
 been used to write many useful utilities, including a module that lets
-you turn your Perl into C source code that can be compiled into an
+you turn your Perl into C source code that can be compiled into a
 native executable.
 
 The C<B> module provides access to the parse tree, and other modules
@@ -103,9 +103,9 @@ This is why all the back ends print:
 
 before producing any other output.
 
-=head2 The Cross Referencing Back End (B::Xref)
+=head2 The Cross Referencing Back End
 
-The cross referencing back end produces a report on your program,
+The cross referencing back end (B::Xref) produces a report on your program,
 breaking down declarations and uses of subroutines and variables (and
 formats) by file and subroutine.  For instance, here's part of the
 report from the I<pod2man> program that comes with Perl:
@@ -183,9 +183,6 @@ one-liners:
       rename $was, $_ unless $was eq $_;
   }
 
-(this is the I<rename> program that comes in the I<eg/> directory
-of the Perl source distribution).
-
 The decompiler has several options for the code it generates.  For
 instance, you can set the size of each indent from 4 (as above) to
 2 with:
@@ -203,11 +200,11 @@ The B<-p> option adds parentheses where normally they are omitted:
 
 See L<B::Deparse> for more information on the formatting options.
 
-=head2 The Lint Back End (B::Lint)
+=head2 The Lint Back End
 
-The lint back end inspects programs for poor style.  One programmer's
-bad style is another programmer's useful tool, so options let you
-select what is complained about.
+The lint back end (B::Lint) inspects programs for poor style.  One
+programmer's bad style is another programmer's useful tool, so options
+let you select what is complained about.
 
 To run the style checker across your source code:
 
@@ -271,6 +268,8 @@ To produce a shared library from a Perl module (ending in C<.pm>):
 
 For more information, see L<perlcc> and L<B::CC>.
 
+=head1 Module List for the Compiler Suite
+
 =over 4
 
 =item B
@@ -306,8 +305,9 @@ I<assemble> program that produces bytecode.
 
 =item B::Bblock
 
-This module is used by the B::CC back end.  It walks "basic blocks",
-whatever they may be.
+This module is used by the B::CC back end.  It walks "basic blocks".
+A basic block is a series of operations which is known to execute from
+start to finish, with no possibility of branching or halting.
 
 =item B::Bytecode
 
@@ -337,6 +337,14 @@ programs translated into C by B::CC can execute faster than normal
 interpreted programs.  See L</"The Optimized C Back End"> for
 details about usage.
 
+=item B::Concise
+
+This module prints a concise (but complete) version of the Perl parse
+tree.  Its output is more customizable than the one of B::Terse or
+B::Debug (and it can emulate them). This module useful for people who
+are writing their own back end, or who are learning about the Perl
+internals.  It's not useful to the average programmer.
+
 =item B::Debug
 
 This module dumps the Perl parse tree in verbose detail to STDOUT.
@@ -368,12 +376,12 @@ can identify.  See L</"The Lint Back End"> for details about usage.
 =item B::Showlex
 
 This module prints out the my() variables used in a function or a
-file.  To gt a list of the my() variables used in the subroutine
+file.  To get a list of the my() variables used in the subroutine
 mysub() defined in the file myperlprogram:
 
   $ perl -MO=Showlex,mysub myperlprogram
 
-To gt a list of the my() variables used in the file myperlprogram:
+To get a list of the my() variables used in the file myperlprogram:
 
   $ perl -MO=Showlex myperlprogram
 
@@ -418,7 +426,7 @@ names.
 
 The optimized C backend outputs code for more modules than it should
 (e.g., DirHandle).  It also has little hope of properly handling
-C<goto LABEL> outside the running subroutine (C<goto &sub> is ok).
+C<goto LABEL> outside the running subroutine (C<goto &sub> is okay).
 C<goto LABEL> currently does not work at all in this backend.
 It also creates a huge initialization function that gives
 C compilers headaches.  Splitting the initialization function gives