<commit_before># Copyright: 2001-2004 The Perl Foundation.  All Rights Reserved.
# $Id$

=head1 NAME

docs/pdds/pdd17_basic_types.pod - Document parrot's basic PMC types

=head1 ABSTRACT

This PDD documents the base Parrot PMC types and their behaviours.

=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 an embedded device or other restricted environment)

=head2 Scalar types

=over 4

=item Undef

=item Integer

=item Float

=item String

=item Boolean

=item BigNum

=item ParrotClass

=item ParrotObject

=back

=head2 Array types

=head2 Hash types

=over 4

=item Env

=back

=head1 IMPLEMENTATION



=head1 FOOTNOTES

List of footnotes to the text.<commit_msg>put some flesh on the skeleton docs for parrot base types<commit_after># Copyright: 2001-2004 The Perl Foundation.  All Rights Reserved.
# $Id$

=head1 NAME

docs/pdds/pdd17_basic_types.pod - Document parrot's basic PMC types

=head1 ABSTRACT

This PDD documents the base Parrot PMC types and their behaviours.

=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 an embedded device or other restricted environment)

=head2 Scalar types

=over 4

=item Undef

This is the generic no-value type. It has a numeric value of zero, a
string value of empty string, and a boolean value of false. It will,
on assignment, turn itself into a PMC of the source type, or if
assigned a basic type will turn itself into one of the wrapper PMC
types (detailed below) for the basic types.

=item Integer

The PMC wrapper for Parrot's low-level integer type. Always an
integer, with other types auto-converted to an integer when stored
into this PMC.

The boolean value for an Integer is false if zero, otherwise true.

=item Float

The PMC wrapper for Parrot's low-level floating point type. Always a
float, with other types autoconverted to a float when stored into this
PMC.

The boolean value for a Float is false if exactly zero, otherwise
true.

=item String

The PMC wrapper for Parrot's low-level string type. Always a simple
string, with other types autoconverted to a string when stored into
this PMC.

The boolean value for a String is false if empty or the string '0' (a
one character string holding a zero) otherwise true. This PMC
autoconverts to an integer or float when its integer or float value is
fetched.

=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.

=item BigNum

The PMC wrapper for Parrot's low-level BigNum type.

=item ParrotClass

The PMC for Parrot's class. (Note that this may go away if we
ultimately make all classes just objects)

=item ParrotObject

The PMC for Parrot's base object type.

=item Reference

The PMC that represents a reference to another PMC. Delegates all
functions to the referred-to PMC.

=back

=head2 Array types

=head2 Hash types

=over 4

=item Env

=back

=head1 IMPLEMENTATION



=head1 FOOTNOTES

List of footnotes to the text.
{'fraction_non_alphanumeric': 0.04389195825659914, 'fraction_numerical': 0.013505217925107428, 'mean_word_length': 4.148499210110584, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2862814', 'n_tokens_mistral': 1005, 'n_tokens_neox': 951, 'n_words': 511}