Author: allison
Date: Mon Nov 24 21:32:51 2008
New Revision: 33177

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

Log:
[pdds] Descriptions of the native integer and float types.


Modified: trunk/docs/pdds/draft/pdd14_numbers.pod
==============================================================================
--- trunk/docs/pdds/draft/pdd14_numbers.pod     (original)
+++ trunk/docs/pdds/draft/pdd14_numbers.pod     Mon Nov 24 21:32:51 2008
@@ -3,20 +3,56 @@
 
 =head1 NAME
 
-docs/pdds/pdd14_bignum.pod - Big Numbers
+docs/pdds/pdd14_numbers.pod - Parrot Numbers
 
 =head1 ABSTRACT
 
-{{ NOTE: needs to be compared to current behavior of bignum library.
-Future directions?}}
-
-This document describes the big number library, the functionality it provides
-and some internal details of interest to people making use of the library.
-Some of the areas in which the big number library meet with the rest of Parrot
-are also discussed.
+This PDD describes Parrot's numeric data types.
 
 =head1 DESCRIPTION
 
+This PDD details the basic numeric datatypes that the Parrot core knows how to
+deal with, including the core numeric PMCs.
+
+=head2 Integer data types
+
+Parrot provides a native integer data type, generally known as an "Int". The
+size of the integer is chosen at Parrot configuration time, the same size as
+platform-native integers. In C, the typedefs C<INTVAL> and C<UINTVAL> are
+native signed and unsigned integers respectively. The semantics of native
+integer data types are the same as the semantics of their C equivalents.
+
+Integer data types have a dedicated register set. In PIR, the C<I> register
+variables (C<$I0>, etc.) and C<.param>s or C<.local>s declared with the C<int>
+type are native integers. Native unsigned integers are not accessibly directly
+in PIR. Many opcodes or vtable functions are defined with variants that take
+native integer arguments. When passed to a subroutine or method call, a native
+integer may be autoboxed as an C<Integer> PMC, or as an HLL type mapped to
+C<Integer>.
+
+
+=head2 Floating-point data types
+
+Parrot provides a native floating-point data type, generally known as a "Num".
+The size of the float is chosen at Parrot configuration time, the same size as
+platform-native floats. In C, the typedef C<FLOATVAL> is a native float data
+type. The semantics of the native float data type are the same as the semantics
+of the C equivalent.
+
+Float data types have a dedicated register set. In PIR, the C<N> register
+variables (C<$N0>, etc.) and C<.param>s or C<.local>s declared with the C<num>
+type are native floats. Many opcodes or vtable functions are defined with
+variants that take native float arguments. When passed to a subroutine or
+method call, a native float may be autoboxed as a C<Float> PMC, or as an HLL
+type mapped to C<Float>.
+
+
+=head2 Integer PMC
+
+=head2 Float PMC
+
+=head2 BigNum PMC
+
 The big number library provides Parrot with both a collection of (nearly)
 infinite precision numeric types and an implementation of an extended decimal
 arithmetic (EDA).
@@ -378,48 +414,9 @@
 IBM's Standard Decimal Arithmetic, with tests
 L<http://www2.hursley.ibm.com/decimal/>
 
-Perl's Math::Big* modules.
-
-=head1 VERSION
-
-=head2 CURRENT
-
-    Maintainer: Alex Gough ([EMAIL PROTECTED])
-    Class: Internals
-    PDD Number: 14
-    Version: $Id$
-    Status: Informational
-    Last Modified: $Id$
-    PDD Format: 1
-    Language: English
+The Perl modules Math::BigInt and Math::BigFloat.
 
-=head2 HISTORY
-
-=over 4
-
-=item version 1.1
-
-The first version is more a description of the state of the art than a plan
-for the future.  The author believes this is akin to learning how to crawl
-before trying to run.  Leaving the ground is considered Right Out with
-attempts being left as an exercise for the interested reader.
-
-=back
-
-=head1 CHANGES
-
-=over 4
-
-=item Version 1.0
-
-None. First version
-
-=item Version 1.1
-
-Special values added, exception handling updated to suit EDA, more rounding
-types added, TODO added.  PDD number bagged.
-
-=back
+Alex Gough's suggestions for bigint/bignum implementation.
 
 =cut
 

Reply via email to