Author: allison
Date: Thu Sep 13 23:30:18 2007
New Revision: 21272

Modified:
   trunk/docs/pdds/draft/pdd17_pmc.pod

Log:
[pdd] Expanding reference information in PMC PDD.


Modified: trunk/docs/pdds/draft/pdd17_pmc.pod
==============================================================================
--- trunk/docs/pdds/draft/pdd17_pmc.pod (original)
+++ trunk/docs/pdds/draft/pdd17_pmc.pod Thu Sep 13 23:30:18 2007
@@ -56,7 +56,7 @@
         struct PMC_EXT *pmc_ext;
     };
 
-where C<cache> is a pointer to a C<UnionVal> union:
+where C<cache> is a C<UnionVal> union:
 
     typedef union UnionVal {
         struct {
@@ -821,6 +821,8 @@
 
 =item get_number_keyed_str
 
+  FLOATVAL get_number_keyed_str(INTERP, PMC* self, STRING* key)
+
 Return the native floating-point value for the element indexed by a string key.
 The key is guaranteed not to be NULL for this function.
 
@@ -845,15 +847,15 @@
 Return the string value for the element indexed by a string key.
 The key is guaranteed not to be NULL for this function.
 
-=item get_bool_keyed
+=item get_bool_keyed [deprecated?]
 
 Return the boolean value for the element indexed by a PMC key.
 
-=item get_bool_keyed_int
+=item get_bool_keyed_int [deprecated?]
 
 Return the boolean value for the element indexed by an integer key.
 
-=item get_bool_keyed_str
+=item get_bool_keyed_str [deprecated?]
 
 Return the boolean value for the element indexed by a string key.
 
@@ -986,20 +988,10 @@
 =item set_pointer_keyed
 
   void set_pointer_keyed(INTERP, PMC* self, PMC* key, void* value)
-
-Set the pointer value of the element indexed by a PMC key.
-
-=item set_pointer_keyed_int
-
   void set_pointer_keyed_int(INTERP, PMC* self, INTVAL key, void* value)
-
-Set the pointer value of the element indexed by an integer key.
-
-=item set_pointer_keyed_str
-
   void set_pointer_keyed_str(INTERP, PMC* self, STRING* key, void* value)
 
-Set the pointer value of the element indexed by a string key.
+Set the pointer value of the element indexed by a PMC, integer, or string key.
 
 =item type_keyed
 
@@ -1132,21 +1124,36 @@
 
 =item exists_keyed
 
-=item exists_keyed_int
+  INTVAL exists_keyed(INTERP, PMC* self, PMC* key)
+  INTVAL exists_keyed_int(INTERP, PMC* self, INTVAL key)
+  INTVAL exists_keyed_str(INTERP, PMC* self, STRING* key)
 
-=item exists_keyed_str
+Check if the element indexed by a PMC, integer, or string key exists.
 
 =item defined_keyed
 
-=item defined_keyed_int
+  INTVAL defined_keyed(INTERP, PMC* self, PMC* key)
+  INTVAL defined_keyed_int(INTERP, PMC* self, INTVAL key)
+  INTVAL defined_keyed_str(INTERP, PMC* self, STRING* key)
+
+Check if the element indexed by a PMC, integer, or string key is defined.
+
+=item delete_keyed
 
-=item defined_keyed_str
+  void delete_keyed(INTERP, PMC* self, PMC* key)
+  void delete_keyed_int(INTERP, PMC* self, INTVAL key)
+  void delete_keyed_str(INTERP, PMC* self, STRING* key)
 
-=item dtem delete_keyed_str
+Delete the element indexed by a PMC, integer, or string key.
 
 =item nextkey_keyed
 
-=item nextkey_keyed_itr_str
+  PMC* nextkey_keyed(INTERP, PMC* self, PMC* key, INTVAL what)
+  PMC* nextkey_keyed_int(INTERP, PMC* self, INTVAL key, INTVAL what)
+  PMC* nextkey_keyed_str(INTERP, PMC* self, STRING* key, INTVAL what)
+
+Advance to the next position while iterating through an aggregate. [NOTE: this
+feature needs review together with the Iterator PMC.]
 
 =back
 
@@ -1186,8 +1193,16 @@
 
 =item increment
 
+  void increment(INTERP, PMC* self)
+
+Increment the value of a PMC by 1.
+
 =item decrement
 
+  void decrement(INTERP, PMC* self)
+
+Decrement the value of a PMC by 1.
+
 =item multiply
 
   void multiply(INTERP, PMC* self, PMC* value, PMC* dest)
@@ -1249,41 +1264,128 @@
 
   void bitwise_or(INTERP, PMC* self, PMC* value, PMC* dest)
   void bitwise_or_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_or(INTERP, PMC* self, PMC* value)
+  void i_bitwise_or_int(INTERP, PMC* self, INTVAL value)
 
 Calculate the bitwise-OR of the value of the I<self> PMC and the value of a PMC
 or native integer and store the result in I<dest>. Note that I<dest> may be the
 same PMC as I<self>; in that case optimizations may be made.
 [Question: what happens when the I<self> and I<value> PMCs aren't integers?]
 
+The C<i_> variants perform an implace operation and store the result in
+C<self>.
+
 =item bitwise_and
 
-=item bitwise_and_int
+  PMC* bitwise_and(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_and_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_and(INTERP, PMC* self, PMC* value)
+  void i_bitwise_and_int(INTERP, PMC* self, INTVAL value)
+
+Return the result of a bitwise AND on the passed in C<value> and the C<self>
+PMC. The C<i_> variants perform an implace operation and store the result in
+C<self>.
 
 =item bitwise_xor
 
-=item bitwise_xor_int
+  PMC* bitwise_xor(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_xor_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_xor(INTERP, PMC* self, PMC* value)
+  void i_bitwise_xor_int(INTERP, PMC* self, INTVAL value)
+
+Return the result of a bitwise XOR on the passed in C<value> and the C<self>
+PMC. The C<i_> variants perform an implace operation and store the result in
+C<self>.
 
 =item bitwise_ors
 
-=item bitwise_ors_str
+  PMC* bitwise_ors(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_ors_str(INTERP, PMC* self, STRING* value, PMC* dest)
+  void i_bitwise_ors(INTERP, PMC* self, PMC* value)
+  void i_bitwise_ors_str(INTERP, PMC* self, STRING* value)
+
+Return the result of a bitwise OR over an entire string on the passed in
+C<value> and the C<self> PMC. The C<i_> variants perform an implace operation
+and store the result in C<self>.
 
 =item bitwise_ands
 
-=item bitwise_ands_str
+  PMC* bitwise_ands(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_ands_str(INTERP, PMC* self, STRING* value, PMC* dest)
+  void i_bitwise_ands(INTERP, PMC* self, PMC* value)
+  void i_bitwise_ands_str(INTERP, PMC* self, STRING* value)
+
+Return the result of a bitwise AND over an entire string on the passed in
+C<value> and the C<self> PMC. The C<i_> variants perform an implace operation
+and store the result in C<self>.
 
 =item bitwise_xors
 
-=item bitwise_xors_str
+  PMC* bitwise_xors(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_xors_str(INTERP, PMC* self, STRING* value, PMC* dest)
+  void i_bitwise_xors(INTERP, PMC* self, PMC* value)
+  void i_bitwise_xors_str(INTERP, PMC* self, STRING* value)
+
+Return the result of a bitwise XOR over an entire string on the passed in
+C<value> and the C<self> PMC. The C<i_> variants perform an implace operation
+and store the result in C<self>.
 
 =item bitwise_not
 
+  PMC* bitwise_not(INTERP, PMC* self, PMC* dest)
+  void i_bitwise_not(INTERP, PMC* self)
+
+Returns the bitwise negation of the C<self> PMC. The C<i_> variant performs an
+implace operation, storing the result in C<self>.
+
+=item bitwise_nots
+
+  PMC* bitwise_nots(INTERP, PMC* self, PMC* dest)
+  void i_bitwise_nots(INTERP, PMC* self)
+
+Returns the bitwise negation of the string C<self> PMC. The C<i_> variant
+performs an implace operation, storing the result in C<self>.
+
 =item bitwise_shl
 
-=item bitwise_shl_int
+  PMC* bitwise_shl(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_shl_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_shl(INTERP, PMC* self, PMC* value)
+  void i_bitwise_shl_int(INTERP, PMC* self, INTVAL value)
+
+Return the value of the C<self> PMC bitwise shifted left by the amount
+specified in C<value>, shifting in zeroes on the right (arithmetic/logical
+bitwise shift). A negative C<value> shifts right. The C<i_> variants perform an
+implace operation, storing the result in C<self>.
+
+The result may be promoted to a C<BigInt>.
 
 =item bitwise_shr
 
-=item bitwise_shr_int
+  PMC* bitwise_shr(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_shr_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_shr(INTERP, PMC* self, PMC* value)
+  void i_bitwise_shr_int(INTERP, PMC* self, INTVAL value)
+
+Return the value of the C<self> PMC bitwise shifted right by the amount
+specified in C<value>, shifting in copies of the sign bit on the left
+(arithmetic bitwise shift). A negative C<value> shifts left. The C<i_> variants
+perform an implace operation, storing the result in C<self>.
+
+The result may be promoted to a C<BigInt> (when C<value> is negative).
+
+=item bitwise_lsr
+
+  PMC* bitwise_lsr(INTERP, PMC* self, PMC* value, PMC* dest)
+  PMC* bitwise_lsr_int(INTERP, PMC* self, INTVAL value, PMC* dest)
+  void i_bitwise_lsr(INTERP, PMC* self, PMC* value)
+  void i_bitwise_lsr_int(INTERP, PMC* self, INTVAL value)
+
+Return the value of the C<self> PMC bitwise shifted right by the amount
+specified in C<value>, shifting in zeroes on the left (logical bitwise shift).
+A negative C<value> shifts left. The C<i_> variants perform an implace
+operation, storing the result in C<self>.
+
 
 =item is_equal
 
@@ -1355,7 +1457,9 @@
 
 =item add_role
 
-=item PMC* find_method(INTERP, PMC* self, STRING* method_name)
+=item find_method
+
+  PMC* find_method(INTERP, PMC* self, STRING* method_name)
 
 Return a subroutine PMC for the passed method name. This subroutine PMC may be
 cached, so the method I<must> return an equivalent sub PMC each time, or be
@@ -1451,12 +1555,12 @@
 {{ NOTE: is this a complete and useful implementation of complex
 numbers? }}
 
-=item ParrotClass
+=item ParrotClass [deprecated]
 
 The PMC for Parrot's class. (Note that this may go away if we ultimately make
 all classes just objects)
 
-=item ParrotObject
+=item ParrotObject [deprecated]
 
 The PMC for Parrot's base object type.
 

Reply via email to