Modified:
trunk/docs/pdds/pdd03_calling_conventions.pod
Log:
Undeprecate the MAYBE_FLAT bit, which (contrary to my mistaken memory) is
not unused, but is in fact very often used for Perl 6.
New features: (1) When a hash value is flatted for MAYBE_FLAT, it must be
flattened as a list of pair PMCs; and (2) the proper pair PMC class to use
for this purpose must be indexed by HLL.
Modified: trunk/docs/pdds/pdd03_calling_conventions.pod
==============================================================================
--- trunk/docs/pdds/pdd03_calling_conventions.pod (original)
+++ trunk/docs/pdds/pdd03_calling_conventions.pod Mon Mar 13 15:41:32 2006
@@ -123,15 +123,19 @@
The meaning of this bit is undefined when applied to integer,
number, and string values.
- 6 MAYBE_FLAT ((DEPRECATED))
- DEPRECATED - DO NOT USE
- If:
- (a) this bit is set on a PMC value; and,
- (b) the PMC is an aggregate or a scalar containing a reference
- to an aggregate; and,
- (c) the called function has a slurpy flag on the corresponding
- parameter;
- then, pretend FLAT bit was set.
+ 6 MAYBE_FLAT
+ If this bit is set on a PMC value, and:
+ (a) the PMC is either an aggregate or a scalar containing a
+ reference to an aggregate, and
+ (b) the target register has the SLURPY bit set,
+ then pass the PMC value as a list of values, in these ways:
+ (a) if the value is an array, pass its elements in the normal
+ way (FLAT style);
+ (b) if the value is a hash, pass its elements as a list of
+ key/value pairs contained in HLL-specific 'pair' PMCs.
+ The meaning of this bit is undefined when applied to integer,
+ number, and string values. It may not be combined with the
+ NAMED bit.
7 (unused)