Parrot Virtual Machine/Built-In PMCs
Built-in PMCs Edit
Parrot ships with a number of PMC data types built in. This means that these standard types are always available. This page is going to serve as a reference to these PMC types. We will not attempt to cover all the PMC types that are added specifically for other HLLs, libraries, or programs. (For information on using these PMC types, and on defining new PMC types, see the Parrot Virtual Machine/Polymorphic Containers (PMCs) chapter).
The entries in this list should (A) contain a link to the relevant PMC documentation, and (B) provide a brief overview of the PMC and it's methods.
AddrRegistry Edit
Array Edit
A simple array class, serves as the base class for other array PMCs. This type of PMC is rarely used directly. Instead, more versatile array PMC types, such as ResizablePMCArray are used. Array specifies an interface that all other Array classes must share. It also provides a number of defaults that other array-like PMCs may default to.
BigInt Edit
A PMC type for storing an arbitrarily large number, or a number with arbitrary precision. Not currently implemented.
Boolean Edit
A boolean True/False PMC.
Bound_NCI Edit
Capture Edit
Closure Edit
Compiler Edit
A Compiler PMC for a particular language. Can be used to convert an HLL into PIR and eventually into Parrot Bytecode.
Complex Edit
A PMC for Complex numbers.
Continuation Edit
A Continuation PMC allows Parrot to take a snapshot of the current state of the system to return to later.
Coroutine Edit
A sub-like PMC that implements a coroutine.
Default Edit
Deleg_PMC Edit
Delegate Edit
Enumerate Edit
Env Edit
Allows access to the system's environment variables, as a hash.
Eval Edit
Exception Edit
An Exception PMC holds information about system errors for recovery.
Exception_Handler Edit
A sub-like routine that catches and resolves exceptions
Exporter Edit
File Edit
A read/write interface for files
FixedBooleanArray Edit
An array of fixed size of Boolean values.
FixedFloatArray Edit
An array of fixed size for FLOATVAL floating point numbers
FixedPMCArray Edit
An array of fixed size for PMC values
FixedStringArray Edit
An array of fixed size for STRING values
Float Edit
A floating point number PMC. Used similarly to a FLOATVAL, except has methods and vtable methods. FLOATVALs become Float PMCs when they are promoted to become a PMC.
Hash Edit
A hash, also known as a "dictionary" or an "associative array". Like an array but indexed with strings instead of integers
Integer Edit
A basic integer number PMC. Used similarly to an INTVAL, but with methods and vtable methods. INTVALS become Integer PMCs when they are promoted to become a PMC.
IntList Edit
A simple list, or array, of integers.
Iterator Edit
An Iterator PMC provides a stateful counter that enables you to iterate over the items in one of the array classes, one at a time.
Key Edit
A value, typically a string, which is used to look up values in a hash.
LexInfo Edit
LexPad Edit
ManagedStruct Edit
A low-level structure whose memory is allocated and automatically deallocated by Parrot. Extends UnManagedStruct, but adds automatic memory collection.
MultiArray Edit
MultiSub Edit
A collection of subroutines with the same name. In Multiple Method Dispatch (MMD) the parameters of the function called determine which subroutine from the collection to call.
Mutable Edit
Namespace Edit
Implements a Parrot namespace. Contains information about variables, subroutines, coroutines, and MultiSubs that are stored in that namespace.
NCI Edit
A native call function PMC. Stores interface information to a function which has been written in C.
Null Edit
A PMC with a NUL value
Object Edit
OrderedHash Edit
OS Edit
Pair Edit
An association of a Key PMC with a PMC value. Hashes are typically implemented as an array of Pair PMCs
ParrotClass Edit
ParrotInterpreter Edit
An interface to the interpreter structure.
ParrotIO Edit
A read/write interface to the console
ParrotLibrary Edit
A dynamically-loaded library object.
ParrotObject Edit
ParrotRunningThread Edit
ParrotThread Edit
A PMC that stores information about a thread
Pmethod_test Edit
Pointer Edit
Random Edit
Ref Edit
ResizableBooleanArray Edit
A resizable array to store Boolean values
ResizableFloatArray Edit
A resizable array to store floating point values.
ResizableIntegerArray Edit
A resizable array to store integer values
ResizablePMCArray Edit
A resizable array to store PMC values
ResizableStringArray Edit
A resizable array to store Strings
RetContinuation Edit
A return continuation. Like a regular Continuation PMC, but can only be used once. Can be promoted to a Continuation using the Clone vtable method.
Role Edit
An abstract role, or interface, for a class. Specifies actions and properties of a class, but cannot be instantiated
SArray Edit
Edit
Slice Edit
SMOP_Attribute Edit
SMOP_Class Edit
STMLog Edit
STMRef Edit
STMVar Edit
String Edit
A PMC to contain a string value. Like a STRING value, but has methods and vtable methods. STRINGS become String PMCs when they are promoted to PMCs.
Sub Edit
A Parrot subroutine. Implements a basic subroutine (using the sub command in PIR), but also serves as a base class for more intricate sub-like classes
Super Edit
A parent PMC class, to support multiple inheritance.
Timer Edit
TQueue Edit
Undef Edit
An undefined PMC with no usable type.
UnamangedStruct Edit
A low-level structure which the programmer must manage manually. Parrot does not automatically collect memory allocated for the struct.