Re: r15330 - in trunk: . compilers/imcc docs docs/pdds include/parrot src

2006-11-11 Thread Chip Salzenberg
On Fri, Nov 10, 2006 at 10:51:14PM -0500, Bob Rogers wrote:
From: [EMAIL PROTECTED]
Date: Fri, 10 Nov 2006 11:12:21 -0800 (PST)
 
Author: chip
Date: Fri Nov 10 11:12:20 2006
New Revision: 15330
 
. . .
 
Log:
Remove the :maybe_flat feature, which was intended to help Perl 6, but
  they never used it.
Substantially improve editorial quality of pdd03 (++particle).
 
 This seems to make t/op/calling.t test #15 fail (titled maybe flatten +
 slurpy param); the passed arrays are not flattened.  Is it OK to just
 flush it?

I've now done so, thanks.
-- 
Chip Salzenberg [EMAIL PROTECTED]


[svn:parrot-pdd] r15330 - in trunk: . compilers/imcc docs docs/pdds include/parrot src

2006-11-10 Thread chip
Author: chip
Date: Fri Nov 10 11:12:20 2006
New Revision: 15330

Modified:
   trunk/docs/pdds/pdd03_calling_conventions.pod

Changes in other areas also in this revision:
Modified:
   trunk/   (props changed)
   trunk/compilers/imcc/imcc.l
   trunk/compilers/imcc/imcc.y
   trunk/compilers/imcc/pcc.c
   trunk/compilers/imcc/symreg.h
   trunk/docs/pcc_state.pod
   trunk/include/parrot/enums.h
   trunk/include/parrot/op.h
   trunk/src/bignum.c
   trunk/src/inter_call.c

Log:
Remove the :maybe_flat feature, which was intended to help Perl 6, but
  they never used it.
Substantially improve editorial quality of pdd03 (++particle).


Modified: trunk/docs/pdds/pdd03_calling_conventions.pod
==
--- trunk/docs/pdds/pdd03_calling_conventions.pod   (original)
+++ trunk/docs/pdds/pdd03_calling_conventions.pod   Fri Nov 10 11:12:20 2006
@@ -59,10 +59,11 @@
  get_opcode (..., 0x200, flags0, ...), ..., name, REG0, ...
 
 The flags string is a literal quoted string denoting a list of zero or more
-comma-separated integers.  The list as a whole may be surrounded by
-parentheses.  Integers may be specified either in decimal, or if prefixed with
-0b/0x, in binary/hexadecimal.  There must be exactly one integer for each
-value or register given.
+comma-separated integers.  Integers may be specified either in decimal, or if
+prefixed with 0b/0x, in binary/hexadecimal.  There must be exactly one
+integer for each value or register given.
+
+(DEPRECATED: The list as a whole may be surrounded by parentheses.)
 
 For documentation purposes we'll number the bits 0 (low) through 30 (high).
 Bit 31 (and higher, where available) will not be used.
@@ -109,63 +110,29 @@
 The value is a literal constant, not a register.  (Don't set this bit
 yourself; the assembler will do it.)
 
-=item 5 CFLAT
-
-If this bit is set on a PMC value, then the PMC must be an aggregate or a
-scalar containing a reference to an aggregate.  The contents of the aggregate,
-rather than the aggregate itself, will be passed.
-
- If the NAMED bit is also set, the aggregate will be used as a
- hash; its contents, as key/value pairs, will be passed as
- named parameters.  The PMC must implement the full hash
- interface.  {{ TODO: Limit the required interface. }}
- 
- array; its contents will be used as positional parameters.
-
-The meaning of this bit is undefined when applied to integer, number, and
-string values.
-
-=item 6 CMAYBE_FLAT
-
-If this bit is set on a PMC value, and:
+=item 5 CFLAT (P only)
 
-=over 4
-
-=item a
+If this bit is set on a PMC value, then the PMC must be an aggregate.  The
+contents of the aggregate, rather than the aggregate itself, will be passed.
 
-the PMC is either an aggregate or a scalar containing a reference to
-an aggregate, and
+If the CNAMED bit is also set, the aggregate will be used as a hash; its
+contents, as key/value pairs, will be passed as named parameters.  The PMC
+must implement the full hash interface.  {{ TODO: Limit the required
+interface. }}
 
-=item b
-
-the target register has the SLURPY bit set,
-
-=back
-
-then pass the PMC value as a list of values, in these ways:
-
-=over 4
-
-=item a
-
-if the value is an array, pass its elements in the normal way (FLAT
-style);
-
-=item b
-
-if the value is a hash, pass its elements as a list of key/value
-pairs contained in HLL-specific 'pair' PMCs.
-
-=back
+If the CNAMED bit is not set, the aggregate will be used as an array; its
+contents will be passed as positional parameters.
 
 The meaning of this bit is undefined when applied to integer, number, and
-string values.  It may not be combined with the NAMED bit.
+string values.
+
+=item 6 (unused)
 
-=item 7 C(unused)
+=item 7 (unused)
 
-=item 8 C(unused)
+=item 8 (unused)
 
-=item 9 CNAMED (FLAT or string constant only)
+=item 9 CNAMED (CFLAT or string constant only)
 
 When the FLAT bit is also set, behavior is as described above in the FLAT
 section.  Otherwise, this bit may only be set on a unique string constant
@@ -195,9 +162,9 @@
 
 =over 4
 
-=item 4 C(unused)
+=item 4 (unused)
 
-=item 5 CSLURPY (P only)
+=item 5 CSLURPY (P only)
 
 If this bit is set on a P register, then it will be populated with an
 aggregate that will contain all of the remaining values that have not already
@@ -206,15 +173,13 @@
 All such values will be converted to PMCs according to the detailed rules
 below, and those PMCs will be stored into the new aggregate.
 
- If the NAMED bit is also set, the aggregate will be an
- HLL-specific hash type and the contents will be all
- unassigned _named_ parameters.
-
- If the NAMED bit is not set, the aggregate will be an
- HLL-specific array type and the contents will be all
- unassigned positional parameters.
+If the CNAMED bit is also set, the aggregate will be the HLL-specific hash
+type and the contents will be all unassigned _named_ parameters.
+
+If