Author: allison Date: Fri Aug 4 00:44:48 2006 New Revision: 13835 Modified: trunk/docs/pdds/clip/pdd17_basic_types.pod
Changes in other areas also in this revision: Modified: trunk/ (props changed) Log: [pdd]: A partial pass through PDD 17 "Basic Types". Notes some questions for general discussion. Modified: trunk/docs/pdds/clip/pdd17_basic_types.pod ============================================================================== --- trunk/docs/pdds/clip/pdd17_basic_types.pod (original) +++ trunk/docs/pdds/clip/pdd17_basic_types.pod Fri Aug 4 00:44:48 2006 @@ -1,23 +1,29 @@ -# Copyright (C) 2001-2004, The Perl Foundation. +# Copyright (C) 2001-2006, The Perl Foundation. # $Id$ =head1 NAME -docs/pdds/pdd17_basic_types.pod - Document parrot's basic PMC types +docs/pdds/pdd17_basic_types.pod - Parrot's Core PMC types {{ NOTE: could use a better name to differentiate it from PDD 04 -datatypes. Or perhaps the two should be merged. }} +datatypes. Possibly pdd17_core_pmcs.pod. }} =head1 ABSTRACT -This PDD documents the base Parrot PMC types and their behaviours. +This PDD documents the core Parrot PMC types and their behavior. + +=head1 VERSION + +$Revision$ =head1 DESCRIPTION -Parrot has a number of basic PMC types that all programs can guarantee will be -available to them. (With the possible exception of parrot programs executing on +Parrot has a number of core PMC types that all programs can guarantee will be +available to them. (With the possible exception of Parrot programs executing on an embedded device or other restricted environment) +=head1 IMPLEMENTATION + =head2 Scalar types =over 4 @@ -72,13 +78,28 @@ =item Boolean -The PMC wrapper for Parrot's low-level true/false value. Returns 0 for false, 1 -for true when fetched as an integer or float, empty string for false and '1' -for true when fetched as a string. +A true/false value. Returns 0 for false, 1 for true when fetched as an +integer or float, empty string for false and '1' for true when fetched +as a string. + +{{ IMPLEMENTATION NOTE: move the definitions of the Python constants +"True" and "False" out of src/pmc/boolean.pmc. They belong in +HLL-specific code, not in the core boolean type. }} + +=item BigInt + +An arbitrary precision integer. =item BigNum The PMC wrapper for Parrot's low-level BigNum type. +{{ NOTE: this type doesn't seem to exist. }} + +=item Complex + +A complex number, consisting of a real part and an imaginary part. +{{ NOTE: is this a complete and useful implementation of complex +numbers? }} =item ParrotClass @@ -89,11 +110,16 @@ The PMC for Parrot's base object type. -=item Reference +=item Ref The PMC that represents a reference to another PMC. Delegates all functions to the referred-to PMC. +=item Random + +A singleton PMC that generates a random number. {{ NOTE: Why do we have +this? }} + =back =head2 Array types @@ -102,11 +128,18 @@ the VTABLE_set_integer_native() method. Assigning an integer to the array as a whole sets the array to that size. -Note that size-changing operations, such as push, pop, shift, unshift, and -splice, on fixed arrays will result in an exception. +Size-changing operations (such as push, pop, shift, unshift, and splice) +on statically-sized arrays will throw an exception. =over 4 +=item Array + +The base class for all array types (a statically sized array for any +arbitrary type). New array types can be derived from the base Array. +In user code it is recommended to use one of the specific array types +below, rather than the base type. + =item FixedBooleanArray A statically sized array which holds only Boolean values. @@ -147,6 +180,8 @@ A dynamically sized array which holds only String values. +=item Exception + =back =head2 Hash types @@ -169,61 +204,85 @@ new P1, .Env set S1, P1['TERM'] -Note that an embedding system may override this behaviour. +Note that an embedding system may override this behavior. -=back +=item Namespace -=head2 Binary Math operations +=item OrderedHash -The following is a list of what should happen with the basic types when used in -a binary math operation: +=item AddrRegistry + +Simulates reference counting for dead-object detection and garbage +collection. + +=back + +=head2 Subroutine types =over 4 -=item Integer x Integer +=item Sub -The operation is an integer. +=item Closure -=back +A closure: subroutine object plus captured lexical scope. -=head1 IMPLEMENTATION +=item Coroutine -=head1 FOOTNOTES +=item Continuation -List of footnotes to the text. +=item CSub -=head1 REFERENCES +=item Eval -=head1 VERSION +=item Exception_Handler -=head2 CURRENT +=item MultiSub - Maintainer: Dan Sugalski - Class: Internals - PDD Number: 17 - Version: 1.0 - Status: Developing - Last Modified: 2004/06/11 - PDD Format: 1 - Language: English +=item NCI -=head2 HISTORY +A native call interface wrapper around a C function. -=over 4 +=item Bound_NCI + +An internal NCI method call bound to a particular call instance. +{{ NOTE: where are these used? }} -=item version 1 +=item Compiler -None. First version +A subroutine implementing a language compiler. (Derived from NCI.) =back -=head1 CHANGES +=head2 Binary Math operations + +{{ NOTE: this section is barely a stub, and not particularly useful. I +suggest deleting it. Any objections? }} + +The following is a list of what should happen with the basic types when used in +a binary math operation: =over 4 -=item Version 1.0 +=item Integer x Integer -None. First version +The operation is an integer. -=back +=back + +=head1 LANGUAGE NOTES + +=head1 FOOTNOTES + +List of footnotes to the text. + +=head1 REFERENCES + + src/pmc/*.pmc + +=cut +__END__ +Local Variables: + fill-column:78 +End: