Hi,

the saga continues...

in chapter 5, line
323
324
I don't see any exceptions in these examples.

In line 428, it would be better to have an example
without a deprecated operation.

In line 989:
'Since regular expressions aren't implemented yet,'
Is this information current?

Good night,
Heiko

--- docs/book/ch05_pasm.pod.org 2009-02-19 23:45:52.234375000 +0100
+++ docs/book/ch05_pasm.pod     2009-02-20 01:08:19.234375000 +0100
@@ -205,7 +205,7 @@
 N<Strings in Parrot use Copy-On-Write (COW) optimizations. When we
 call C<set S1, S0> we copy the pointer only, so both registers point
 to the same string memory. We don't actually make a copy of the string
-until one of two registers is modified.> Just after C<set> C<S1>, C<S0>,
+until one of two registers is modified.> Just after C<set S1, S0>,
 both C<S0> and C<S1> point to the same string. But assigning a constant
 string to a string register allocates a new string. When "Zaphod" is
 assigned to C<S0>, the pointer changes to point to the location of the
@@ -227,8 +227,8 @@
   end
 
 The C<new> opcode creates an instance of the C<.String> class. The
-class's vtable methods define how the PMC in C<P0> operates.  The
-first C<set> statement calls C<P0>'s vtable method
+class's VTABLE methods define how the PMC in C<P0> operates.  The
+first C<set> statement calls C<P0>'s VTABLE method
 C<set_string_native>, which assigns the string "Ford" to the PMC. When
 C<P0> is assigned to C<P1>:
 
@@ -276,7 +276,7 @@
 Z<CHP-5-SECT-2.2.3>
 
 X<typemorphing>
-The classes C<Undef>X<Undef PMC>, C<Int>,
+The classes C<Undef>X<Undef PMC>, C<Int>X<Int PMC>,
 C<Num>X<Num PMC>, and C<String>X<String PMC> implement
 Perl's polymorphic scalar behavior. Assigning a string to a number PMC
 morphs it into a string PMC. Assigning an integer value morphs it to a
@@ -303,7 +303,7 @@
 
 X<PASM (Parrot assembly language);math operations>
 PASM has a full set of math instructions. These work with integers,
-floating-point numbers, and PMCs that implement the vtable methods of
+floating-point numbers, and PMCs that implement the VTABLE methods of
 a numeric object. Most of the major math opcodes have two- and
 three-argument forms:
 
@@ -338,7 +338,7 @@
   mul P0, P1, N2
 
 X<PMCs (Polymorphic Containers);operations on>
-Operations on a PMC are implemented by the vtable method of the
+Operations on a PMC are implemented by the VTABLE method of the
 destination (in the two-argument form) or the left source argument (in
 the three argument form). The result of an operation is entirely
 determined by the PMC.  A class implementing imaginary number
@@ -373,10 +373,10 @@
 Parrot provides C<add>X<add opcode (PASM)> (addition),
 C<sub>X<sub opcode (PASM)> (subtraction), C<mul>X<mul opcode (PASM)>
 (multiplication), C<div>X<div opcode (PASM)> (division), and C<pow>X<pow
-opcode (PASM)> (exponent) opcodes, as well as two different modulus
+opcode (PASM)> (exponentiation) opcodes, as well as two different modulus
 operations. C<mod>X<mod opcode (PASM)> is Parrot's implementation of
 modulus, and C<cmod>X<cmod opcode (PASM)> is the C<%> operator from
-the C library. It also provides C<gcd>X<gcd opcode (PASM)> (greatest
+the C language. It also provides C<gcd>X<gcd opcode (PASM)> (greatest
 common divisor) and C<lcm>X<lcm opcode (PASM)> (least common
 multiple).
 
@@ -401,8 +401,8 @@
 X<trigonometric functions (PASM)> trigonometric functions are in
 radians:
 
-  sin N1, N0
-  exp N1, 2
+  sin N1, N0   # N1 = sin(N0)
+  exp N1, 2    # N1 = exp(2)
 
 The majority of the floating-point operations have a single source
 argument and a single destination argument. Even though the
@@ -412,7 +412,7 @@
 The C<atan>X<atan opcode (PASM)> opcode also has a three-argument
 variant that implements C's C<atan2()>:
 
-  atan N0, 1, 1
+  atan N0, 1, 1   # N0 = atan(1,1)
 
 =head2 Working with Strings
 
@@ -655,7 +655,7 @@
 Z<CHP-5-SECT-2.4.8>
 
 X<PASM (Parrot assembly language);string operations;formatting
-strings> The C<sprintf>X<sprintf opcode (PASM)> opcode generates a
+strings>The C<sprintf>X<sprintf opcode (PASM)> opcode generates a
 formatted string from a series of values. It takes three arguments:
 the destination register, a string specifying the format, and an
 ordered aggregate PMC (like a C<Array>) containing the values to
@@ -920,7 +920,7 @@
   print "\n"
   end
 
-The first eight lines create a C<Array> with two elements: a
+The first eight lines create an C<Array> with two elements: an
 C<Int> and a C<Num>. The format string of the C<sprintf> has
 two format fields. The first, C<%#Px>, takes a PMC argument from the
 aggregate (C<P>) and formats it as a hexadecimal integer (C<x>), with
@@ -978,7 +978,7 @@
   print S0             # prints "hi__0__1__0__parrot"
   end
 
-This example builds a C<Array> in C<P0> with the values C<"hi">,
+This example builds an C<Array> in C<P0> with the values C<"hi">,
 C<0>, C<1>, C<0>, and C<"parrot">. It then joins those values (separated
 by the string C<"__">) into a single string, and stores it in C<S0>.
 
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to