shadow

Package shadow:standard

Package shadow:standard contains essential classes, interfaces, singletons, and exceptions needed for any Shadow program. These types do not need to be explicitly imported because the compiler will do so automatically.

Singleton Summary

Singleton Description
System

Singleton System provides access to a few useful system settings and values.

Time

Singleton Time contains useful methods to easily create TimeSpans.

Interface Summary

Interface Description
CanAdd

Interface CanAdd<T> specifies that a class can be added to an object of type T, producing a T.

CanCompare

Interface CanCompare<T> specifies that a class can be compared to an object of type T, producing a signed comparison int.

CanCreate

Interface CanCreate specifies that a class has a default create() method, one with no arguments.

CanDivide

Interface CanDivide<T> specifies that a class can be divided by an object of type T, producing a T.

CanEqual

Interface CanEqual<T> specifies that a class can be tested for equality with an object of type T, producing a boolean which is true if the objects are identical.

CanHash

Interface CanHash specifies that a class can produce a hash code of type uint whose value is determined by all data specific to a given object.

CanIndex

Interface CanIndex<K,V> specifies that a class can return a value associated with a particular key.

CanIndexNullable

Interface CanIndexNullable<K,V> specifies that a class can return a value associated with a particular key.

CanIndexStore

Interface CanIndexStore<K,V> specifies that a class can store a value in a location associated with a particular key.

CanIndexStoreNullable

Interface CanIndexStoreNullable<K,V> specifies that a class can store a value in a location associated with a particular key.

CanIterate

Interface CanIterate<T> specifies that a class can produce an Iterator<T> which can iterate over objects of type T.

CanIterateNullable

Interface CanIterateNullable<T> specifies that a class can produce an IteratorNullable<T> which can iterate over objects of type T.

CanModulus

Interface CanModulus<T> specifies that a class can be divided by an object of type T, producing a remainder of T.

CanMultiply

Interface CanMultiply<T> specifies that a class can be multiplied by an object of type T, producing a T.

CanNegate

Interface CanNegate<T> specifies that a class can be negated, producing an object of type T.

CanRun

Interface CanRun is the link between Threads and user code.

CanSubtract

Interface CanSubtract<T> specifies that a class can be subtracted by an object of type T, producing a T.

FloatingPoint

Interface FloatingPoint<T> specifies methods that any floating point representation of a number should have.

Integer

Interface Integer<T> specifies methods that any fixed-size integer representation of a number should have.

Iterator

Interface Iterator<T> allows each item in a collection to be visited.

IteratorNullable

Interface IteratorNullable<T> allows each item in a collection to be visited.

Number

Interface Number<T> specifies methods that any numerical representation should have.

Class Summary

Class Description
AddressMap

Class AddressMap maps old object addresses to new object addresses.

Array

Class Array<T> is used to house methods for array objects.

ArrayNullable

Class ArrayNullable<T> is used to house the methods for nullable array objects.

Attribute

Attribute is the parent type of all attributes.

BigInteger

BigInteger objects are immutable representations of arbitrarily large positive and negative integers.

Class

Class objects are used to hold the type information in all Shadow objects.

Enum

Enum is the parent type of all enums.

GenericClass

GenericClass objects are used to hold the type information for all Shadow objects that have a parameterized type, including arrays.

Message

Class Message is the wrapper of each message passed between threads.

Method

Class Method is used to hold method references inside the compiler.

MethodTable

MethodTable pointers are used to hold pointers to method tables.

MutableString

Class MutableString holds arbitrary-length sequences of UTF-8 code points stored in a dynamic array of ubyte values.

Object

Class Object is the parent class of all classes in Shadow.

String

Class String holds arbitrary-length sequences of UTF-8 code points stored in a fixed-size array of ubyte values.

Thread

Class Thread provides ways to manipulate threads.

TimeSpan

Class TimeSpan represents a time interval.

boolean

Class boolean contains the methods that can be called on boolean values.

byte

Class byte contains the methods that can be called on byte values.

code

Class code contains the methods that can be called on code values.

double

Class double contains the methods that can be called on double values.

float

Class float contains the methods that can be called on float values.

int

Class int contains the methods that can be called on int values.

long

Class long contains the methods that can be called on long values.

short

Class short contains the methods that can be called on short values.

ubyte

Class ubyte contains the methods that can be called on ubyte values.

uint

Class uint contains the methods that can be called on uint values.

ulong

Class ulong contains the methods that can be called on ulong values.

ushort

Class ushort contains the methods that can be called on ushort values.

Exception Summary

Exception Description
AssertException

Exception AssertException is thrown when an assert fails.

CastException

Exception CastException is thrown when one type is cast to another incompatible type.

EmptyMailboxException

Exception EmptyMailboxException is thrown when Mailbox's dequeue method is called in a non-blocking call, while being empty.

Exception

Exception is the parent type of all exceptions.

FullMailboxException

Exception FullMailboxException is thrown when the Mailbox's enqueue method is called in a non-blocking call, with the backing array being full.

IllegalArgumentException

Exception IllegalArgumentException should be thrown when an argument with an illegal type or value is supplied to a method.

IncompatibleMessageTypeException

Exception IncompatibleMessageTypeException is thrown when a thread requests a message type but another incompatible type is found.

IndexOutOfBoundsException

Exception IndexOutOfBoundsException is thrown when an access to an out-of-bounds array element is attempted.

InterfaceCreateException

Exception IndexOutOfBoundsException is thrown when an attempt is made to create an interface at run time.

InterruptedException
InvalidOperationException
NumberFormatException

Exception NumberFormatException is thrown when parsing a String or other representation of a number and illegal characters are encountered.

OutOfMemoryException

Exception OutOfMemoryException is thrown when the run time system attempts to allocate memory on the heap and fails because the heap space allotted to the program is exhausted.

ThreadException
ThreadSpawnException
UnexpectedNullException

Exception UnexpectedNullException is thrown when a nullable value is checked, found to be null, and is not within a try block with a matching recover block.

UnsupportedOperationException

Exception UnsupportedOperationException should be thrown when a method is called that is never intended to be called.

Subpackage Summary

Name Description
shadow:standard:attributes