# The Io Reference Manual

Version 2008 01 20 generated on 2008 12 28

Core
Addon
Block
CFunction
Call
Collector
Compiler
Coroutine
Date
Debugger
Directory
Duration
DynLib
Error
File
Importer
List
Map
Message
MutableSequence
Number
Object
Path
Sandbox
Scheduler
Sequence
State
System
Tag
TestSuite
Token
UnitTest
WeakLink
false
nil
true
AVCodec
AVCodec
Video
AppleExtras
AsyncRequest
Blowfish
Box
CFFI
CGI
Cairo
Cairo
CairoContext
CairoExtents
CairoFontExtents
CairoFontFace
CairoFontOptions
CairoGlyph
CairoGradient
CairoImageSurface
CairoLinearGradient
CairoMatrix
CairoPath
CairoPathElement
CairoPattern
CairoRadialGradient
CairoRectangle
CairoScaledFont
CairoSolidPattern
CairoSurface
CairoSurfacePattern
CairoTextExtents

Curses
DBI
DBI
DBIConn
DBIRecord
DBIResult
DistributedObjects
DOConnection
DOProxy
DOServer
MDOConnection
MDOServer
Message
Object
EditLine
Flux
Fnmatch
Font
GLFW
Image
LZO
LZODecoder
LZOEncoder
LibSndFile
Loki
MD5
MySQL
NetworkAdapter
NullAddon
ODE
ODEBody
ODEBox
ODEContact
ODEJoint
ODEJointGroup
ODEMass
ODEPlane
ODESimpleSpace
ODEWorld

Obsidian
Object
Obsidian
ObsidianServer
PDB
PMap
category
OpenGL
Box
GLApp
GLScissor
GLU
GLUQuadric
GLUT
OpenGL
Vector
PortAudio
AudioDevice
AudioMixer
Postgres
Python
QDBM
Random
Range
Rational
ReadLine
Regex
Regex
RegexMatch
RegexMatches
Sequence
SGML
SGMLElement
SGMLParser
Sequence
SHA1
SQLite
SQLite3
SampleRateConverter

SecureSocket
Certificate
SecureClient
SecureServer
SecureSocekt
SecureSocket
SkipDB
SkipDB
SkipDBCursor
SkipDBM
Socket
DNS
DNSQuery
DNSResolver
DNSServer
EvRequest
Event
EventManager
Host
IPAddress
Object
ReadEvent
Sequence
Server
SignalEvent
Socket
TimerEvent
URL
WriteEvent
SoundTouch
Syslog
SystemCall
TagDB
TagLib
Thread
TokyoCabinet
TokyoCabinet
TokyoCabinetCursor
TokyoCabinetPrefixCursor
UUID
User
Volcano

Zlib
ZlibDecoder
ZlibEncoder

## AVCodec

Module: AVCodec
Category: Media

### Description

An object for encoding and decoding audio and video streams.

When an input stream containing audio data is opened, the following slots will be set:

    audioChannels
    audioSampleRate
    audioBitRate
    audioDuration
    audioFrameCount

When an input stream containing video data is opened, the following slots will be set:

    framePeriod
    videoDuration
    videoFrameCount

### Slot Index

audioInputBuffer
audioOutputBuffer
close
codecName
decode
decodeCodecNames
didProcess
encodeCodecNames
inputCoro
internalCoro
isAtEnd
open
path
setCodecName()
setInputCoro()
setInternalCoro()
setPath()
setStreamDestination()
streamDestination
videoCodecName
willProcess
write()

### Slots

audioInputBuffer

Returns the input buffer.
audioOutputBuffer

Returns the output buffer.
close

Closes the input file if it's open. Returns self.
codecName

Returns name of audio or video codec.
decode

Decodes the next chunk of input data. Output (if any) is placed in the outputBuffers. Returns self.
decodeCodecNames

Returns a list of strings with the names of the decode codecs.
didProcess

Called after the receiver processes some more of the input buffer.
encodeCodecNames

Returns a list of strings with the names of the encode codecs.
inputCoro

Returns coroutine currently writing to the receiver.
internalCoro

Returns coroutine used for the AVCodec to process data...
isAtEnd

Returns true if the stream is at it's end, false otherwise.
open

Opens the input file. Return self on success or raises an exception on error.
path

Returns path to file the receiver is reading or writing to.
setCodecName(aSeq)

Sets the codec name. Returns self. See: encodeCodecNames and decodeCodecNames
setInputCoro(aCoro)

Private method for setting inputCoro. Returns self.
setInternalCoro(aCoro)

Private method for setting internalCoro. Returns self.
setPath(aSeq)

Sets the path to file the receiver is reading or writing to. Returns self.
setStreamDestination(anObject)

Sets the streamDestination to anObject. The didProcess method will call:

    if(streamDestination, streamDestination write(outputBuffer))
    outputBuffer empty

streamDestination

Returns the streamDestination.
videoCodecName

Returns the name of the video codec.
willProcess

Called before the receiver will process more of the input buffer. If inputBuffer is empty, it pauses the receiver's coro.
write(aSequence)

Appends aSequence to the input buffer and resumes the receiver's coroutine in order to process it. The calling coroutine (inputCoroutine) will be scheduled to resume when didProcess is called.

## Addon

Module: Core

### Slot Index

addonFor()
addonPath
addonProtos
addons
appendSearchPath()
dependencies
dllName
dllPath
dllSuffix
exists
hasAddonNamed()
ioFiles
load
loadAddonNamed()
loadDependencies
name
platform
rootPath
searchPaths
setName()
setRootPath()
sourcePath

### Slots

addonFor(aName)

Returns the Addon with the given name if it can be found or nil otherwise.
addonPath

Implemented as Path with(rootPath, name).
addonProtos

Returns names of protos defined in the addon from the addon's protos file.
addons

Looks for all addons which can be found and returns them as a list of Addon objects. Caches the result the first time it is called.
appendSearchPath(aSequence)

Appends the argument to the list of search paths.
dependencies

Returns the list of dependencies from the addon's depends file.
dllName

Return the name of the dll for the addon.
dllPath

Returns the path to the dll for the addon. Note: not all addons have dlls - some just contain io files.
dllSuffix

Returns the platform specific dll suffix.
exists

Returns true if the addonPath exists, false otherwise.
hasAddonNamed(aName)

Returns true if the named addon can be found, false otherwise.
ioFiles

Return list of io File objects for the io files in the io folder of the addon.
load

Loads the addon.
loadAddonNamed(aName)

Loads the Addon with the given name if it can be found or nil otherwise.
loadDependencies

Loads the addon's dependencies. Called from the load method.
name

Returns the name of the addon.
platform

Implemented as method(System platform asLowercase).
rootPath

Returns the rootPath of the addon's folder.
searchPaths

Returns the list of paths to search for addons.
setName(aSequence)

Sets the name of the addon. Returns self.
setRootPath(aSequence)

Sets rootPath of the addon's folder. Returns self.
sourcePath

Returns the path of the source folder for the addon.

## AppleSensors

Module: AppleExtras
Category: Other

### Description

A singleton which on Apple computers can:

- get and set display and keyboard brightness
- read left and right ambient light sensors (laptops only)
- read accelerometer sensor (laptops only)

Example use;

    sensors = AppleSensors clone
    value := sensors getRightLightSensor

### Slot Index

getDisplayBrightness
getKeyboardBrightness
getLeftLightSensor
getRightLightSensor
setDisplayBrightness()
setKeyboardBrightness()
smsVector()

### Slots

getDisplayBrightness

Returns a number for the display brightness.
getKeyboardBrightness

Returns a number for the keyboard brightness.
getLeftLightSensor

Returns a number for the left ambient light sensor.
getRightLightSensor

Returns a number for the right ambient light sensor.
setDisplayBrightness(aNumber)

Sets the display brightness. Returns self.
setKeyboardBrightness(aNumber)

Sets the keyboard brightness. Returns self.
smsVector(aVector)

Sets aVector to the current x, y and z accelerometer values. Returns true on success and false on failure.

## AsyncRequest

Module: AsyncRequest
Category: Filesystem

### Description

Used for doing asynchronous file i/o. When this addon is loaded, it will override the File proto's readToBufferLength, readBufferOfLength and write methods to automatically use AsyncRequests.

Note: This addon is only needed for async file request - all socket ops are already asynchronous in Io.

### Slot Index

cancel
copyBufferTo
copyBufferto()
descriptor
error
isDone
numberOfBytes
position
read()
setDescriptor()
sync
write()

### Slots

cancel

Cancels the request. Returns nil on error or self otherwise.
copyBufferTo

undocumented
copyBufferto(aSeq)

Copies the request buffer's data to aSeq. Returns nil on error or self otherwise.
descriptor

Returns the descriptor for the request.
error

Returns sequence containing the last error or nil otherwise.
isDone

Returns true if the request is done, false otherwise.
numberOfBytes

Returns the number of bytes associated with the request.
position

Returns a Number for the position of the descriptor.
read(aSeq, numberOfBytes)

Submits an async read request. Returns nil on error, self otherwise.
setDescriptor(aDescriptorNumber)

Sets the descriptor for the receiver. Returns self.
sync

Waits for the request to complete. Returns nil on error or self otherwise.
write(fileOffset, aSeq, bufferOffset, numberOfBytesToWrite)

Submits an async write request. Returns nil on error, self otherwise.

## AudioDevice

Module: PortAudio
Category: Media

### Description

The AudioDevice object can used to write audio data as if directly to the audio buffer.

### Slot Index

asyncRead
asyncWrite()
close
error
isActive
needsData
open
openForReadingAndWriting
streamTime
write()
writeBufferIsEmpty

### Slots

asyncRead

Returns the audio read buffer.
asyncWrite(aBuffer)

Writes aBuffer to the audio output buffer and returns immediately.
close

Close the audio stream.
error

Returns an error string if an error has occured, Nil otherwise.
isActive

Returns self if the receiver is active, Nil otherwise.
needsData

Returns true if the receiver can read more data.
open

Open an audio output stream.
openForReadingAndWriting

Open audio output and input streams.
streamTime

Returns the audio stream time as a number.
write(aSeq) Writes aSeq to the inputBuffer and yields until the

receiver is ready for more input data. Returns self.
writeBufferIsEmpty

Returns the true if the audio buffer is empty, false otherwise.

## AudioMixer

Module: PortAudio
Category: Media

### Description

A minimal audio mixer.

### Slot Index

process()
start Start the mixer loop processing 1/64th of a second chunks
stop

### Slots

process(sampleCount)

Internal method used for processing a chunk of the input sources. Returns self.
start Start the mixer loop processing 1/64th of a second chunks

by calling process(22050) in a loop. Will not return until stop is called. Returns self.
stop

Stops the mixer if it is running.

## Block

Module: Core
Category: Core

### Description

Blocks are anonymous functions (messages with their own locals object). They are typically used to represent object methods.

### Slot Index

Formatter
argumentNames
asSimpleString
asString
call()
code
justSerialized()
message
passStops
performOn()
print
println
scope
setArgumentNames()
setCode()
setMessage()
setPassStops()
setScope()

### Slots

Formatter

Helper object for the `asString` method.
argumentNames

Returns a List of strings containing the argument names of the receiver.
asSimpleString

Returns a short description of the receiver.
asString

Returns a full description of the receiver with decompiled code.
call(arg0, arg1, ...)

Activates the receiver with the provided arguments.
code

Returns a string containing the decompiled code of the receiver.
justSerialized(stream)

Writes the receiver's code into the stream.
message

Returns the root message of the receiver.
passStops

Returns whether or not the receiver passes return/continue/break to caller.
performOn(anObject, optionalLocals, optionalMessage, optionalSlotContext)

Activates the receiver in the target context of anObject. Returns the result.
print

prints an Io source code representation of the block/method
println

Same as `print`.
scope

Returns the scope used when the block is activated or Nil if the target of the message is the scope.
setArgumentNames(aListOfStrings)

Sets the receiver's argument names to those specified in aListOfStrings. Returns self.
setCode(aString)

Set's the reciever's message to a compiled version of aString. Returns self
setMessage(aMessage)

Sets the root message of the receiver to aMessage.
setPassStops(aBool)

Sets whether the receiver passes return/continue/break to caller.
setScope(anObjectOrNil)

If argument is an object, when the block is activated, it will set the proto and self slots of it's locals to the specified object. If Nil, it will set them to the target of the message.

## Blowfish

Module: Blowfish
Category: Encryption

### Description

The Blowfish object can be used to do encryption and decryption using the blowfish algorithm. Example use;

    bf = Blowfish clone
    bf setKey("secret")
    bf beginProcessing
    bf inputBuffer appendSeq("this is a message")
    bf process
    bf endProcess
    bf outputBuffer // this contains the encrypted data

### Slot Index

beginProcessing
decrypt
encrypt
endProcessing
inputBuffer
key
outputBuffer
process
setInputBuffer
setIsEncrypting()
setKey
setOutputBuffer

### Slots

beginProcessing

Sets the key from the key slot and initializes the cipher.
decrypt

undocumented
encrypt

undocumented
endProcessing

Finish processing remaining bytes of inputBuffer.
inputBuffer

undocumented
key

undocumented
outputBuffer

undocumented
process

Process the inputBuffer and appends the result to the outputBuffer. The processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.
setInputBuffer

undocumented
setIsEncrypting(aBool)

If aBool is true, encrypting mode is on, otherwise, decrypting mode is on.
setKey

undocumented
setOutputBuffer

undocumented

## Box

Module: OpenGL
Category: Math

### Description

A primitive for fast operations on rectangles.

### Slot Index

Union()
asString
containsPoint()
copy()
depth
height
intersectsBox()
origin
print
resizeBy
serialized
set()
setOrigin()
setSize()
size
width

### Slots

Union(aBox)

Returns a new box containing the 2d union of the receiver and aBox.
asString

undocumented
containsPoint(aPoint)

Returns true if aPoint is within the receiver's bounds, false otherwise.
copy(aBox)

Copies the values of aBox to the receiver.
depth

Same as; size z
height

Same as; size y
intersectsBox(aBox)

Returns true if aBox is within the receiver's bounds, false otherwise.
origin

Returns the point object for the origin of the box.
print

Prints a string representation of the receiver to the standard output.
resizeBy

undocumented
serialized

undocumented
set(origin, size)

Copies the values in origin and size to set the box's origin and size.
setOrigin(aPoint)

Copies the values in aPoint to the box's origin point.
setSize(aPoint)

Copies the values in aPoint to the box's size point.
size

Returns the point object for the size of the box.
width

Same as; size x

## CFFI

Module: CFFI
Category: binding

### Slot Index

### Slots

## CFunction

Module: Core
Category: Core

### Description

A container for a pointer to a C function binding. CFunction's can only be defined from the C side and act like blocks in that when placed in a slot, are called when the slot is activated. The for, if, while and clone methods of the Lobby are examples of CFunctions. CFunctions are useful for implementing methods that require the speed of C or binding to a C library.

### Slot Index

==()
asSimpleString
asString
id
name
performOn()
type
typeName
uniqueName

### Slots

==(anObject)

Returns self if the argument is a CFunction with the same internal C function pointer.
asSimpleString

Returns the CFunction name.
asString

Same as asSimpleString.
id

Returns a number containing a unique id for the receiver's internal C function.
name

Returns the CFunction name in the form CFunction_Pointer.")
performOn(target, blockLocals, optionalMessage, optionalContext)

Activates the CFunctions with the supplied settings.
type

Returns "Cfunction".
typeName

Returns the owning type of the CFunction or nil if the CFunction can be called on any object.
uniqueName

Returns the name given to the CFunction.

## CGI

Module: CGI
Category: Networking

### Description

CGI supports accessing CGI parameters passed in environment variable or standard input by a web servers like Apache.Example use:

    #!./ioServer

    cgi = CGI clone

    redirect = cgi getParameters at("redirurl")
    if (redirect and redirect != "",
    	redirect clipAfterStartOfSeq("\r")
    	redirect clipAfterStartOfSeq("\n")
    	cgi redirect(redirect)
    	System exit(0)
     )

    cgi header("Content-type", "text/html")

    cgi write("<html><head><title>test</title><body>")
    cgi write("GET Parameters:")
    cgi getParameters foreach(k, v,
    	cgi write(k .. " = " .. v .. ","))
    )

    cgi write("POST Parameters:")
    cgi postParameters foreach(k, v,
    	cgi write(k .. " = " .. v .. ","))
    )

    cgi write("COOKIES:")
    cgi cookies foreach(k, v,
    	cgi write(k .. " = " .. v .. ",")
    )

### Slot Index

contentLength
contentType
cookies
decodeUrlParam()
encodeUrlParam()
getParameters
header()
httpHeader()
isInWebScript
mapPutOrAppendAsList
maxPostSize
maxPostSizeExceeded
newLinesToBr
parse
parseString
pathInfo
pathTranslated
postData
postParameters
queryString
redirect()
remoteAddress
remoteHost
requestMethod
requestParameter()
scriptName
sendHeaders
setCookie()
setMaxPostSize
status()
urlChar2Code
urlCode2Char
write()

### Slots

contentLength

CONTENT_LENGTH from web server - Size of POST Data
contentType

CONTENT_TYPE from web server
cookies

Returns a Map of cookies provided by the client
decodeUrlParam(aString)

Returns a URL decoded version of aString.
encodeUrlParam(aString)

Returns a URL encoded version of aString.
getParameters

Parses the QUERY_STRING environment variable and returns a Map containing key/value query value pairs. For testing, a QUERY_STRING can be passed to standard in, one line will be read
header(name, value, sendMultiple)

Add a header to the output, may only be called before write() is called. One of each header will be send unless sendMultiple is true
httpHeader(name)

Fetch a header supplied by the client, such as 'referer'
isInWebScript

Checks to see if this is being called within a CGI request or from the command-line (testing). Simply checks for System getEnvironmentVariable("GATEWAY_INTERFACE")
mapPutOrAppendAsList

undocumented
maxPostSize

Maximum size in bytes, to process from user submitted data. Data greater than this will result in a nil postData slot
maxPostSizeExceeded

Returns true if the POST data exceeds a set maxPostSize
newLinesToBr

undocumented
parse

undocumented
parseString

undocumented
pathInfo

PATH_INFO from web server
pathTranslated

PATH_TRANSLATED from web server
postData

The raw post data sent to the script. Only set if getEnvironmentVariable("REQUEST_METHOD") asLowercase == "post".
postParameters

Parses the POST data, multipart and urlencoded. Returns a map of submitted variables. For uploaded files, an Object is returned with these slots:

    fileName
    content (raw content of file as Sequence)
    contentType
    contentEncoding
    size (in characters/bytes)
    asString (pretty string of name, type, size)

queryString

QUERY_STRING from web server
redirect(url)

Send a location: and redirect the user. May only be called before write() is called. It is left to the caller to stop any further processing.")
remoteAddress

REMOTE_ADDR from web server - User's IP
remoteHost

REMOTE_HOST from web server - User's host (often blank)
requestMethod

GET, POST, PUT, etc
requestParameter(name)

Lazy developer's helper funtion. Retrieves a value from GET or POST, POST first
scriptName

SCRIPT_NAME from web server
sendHeaders

undocumented
setCookie(name, value, expiresDate, domain, path, secureBool)

Sets a cookie, keep in mind this will not be available in cookies() until they next visit the site. Parameters other than name and value are optional.
setMaxPostSize

undocumented
status(statusCode)

Numeric status code to send to the client. Normally, the server will figure this out on its own, but this allows handling 404s and such.
urlChar2Code

undocumented
urlCode2Char

undocumented
write(string, [string...])

Send content for the body of the response

## Cairo

Module: Cairo
Category: Graphics

### Description

Cairo is a 2D graphics library. http://cairographics.org/

### Slot Index

ANTIALIAS_DEFAULT
ANTIALIAS_GRAY
ANTIALIAS_NONE
ANTIALIAS_SUBPIXEL
CONTENT_ALPHA
CONTENT_COLOR
CONTENT_COLOR_ALPHA
Context
EXTEND_NONE
EXTEND_REFLECT
EXTEND_REPEAT
Extents
FILL_RULE_EVEN_ODD
FILL_RULE_WINDING
FILTER_BEST
FILTER_BILINEAR
FILTER_FAST
FILTER_GAUSSIAN
FILTER_GOOD
FILTER_NEAREST
FONT_SLANT_ITALIC
FONT_SLANT_NORMAL
FONT_SLANT_OBLIQUE
FONT_WEIGHT_BOLD
FONT_WEIGHT_NORMAL
FORMAT_A1
FORMAT_A8
FORMAT_ARGB32
FORMAT_RGB16_565
FORMAT_RGB24
FontExtents
FontFace
FontOptions
Glyph
Gradient
HAS_PDF_SURFACE
HAS_PNG_FUNCTIONS
HAS_PS_SURFACE
HAS_SVG_SURFACE
HINT_METRICS_DEFAULT
HINT_METRICS_OFF
HINT_METRICS_ON
HINT_STYLE_DEFAULT
HINT_STYLE_FULL
HINT_STYLE_MEDIUM
HINT_STYLE_NONE
HINT_STYLE_SLIGHT
ImageSurface
LINE_CAP_BUTT
LINE_CAP_ROUND
LINE_CAP_SQUARE
LINE_JOIN_BEVEL
LINE_JOIN_MITER
LINE_JOIN_ROUND
LinearGradient
Matrix
OPERATOR_ADD
OPERATOR_ATOP
OPERATOR_CLEAR
OPERATOR_DEST
OPERATOR_DEST_ATOP
OPERATOR_DEST_IN
OPERATOR_DEST_OUT
OPERATOR_DEST_OVER
OPERATOR_IN
OPERATOR_OUT
OPERATOR_OVER
OPERATOR_SATURATE
OPERATOR_SOURCE
OPERATOR_XOR
PATH_CLOSE_PATH
PATH_CURVE_TO
PATH_LINE_TO
PATH_MOVE_TO
PDFSurface
PSSurface
Path
PathElement
Pattern
RadialGradient
Rectangle
SUBPIXEL_ORDER_BGR
SUBPIXEL_ORDER_DEFAULT
SUBPIXEL_ORDER_RGB
SUBPIXEL_ORDER_VBGR
SUBPIXEL_ORDER_VRGB
SVGSurface
SVG_VERSION_1_1
SVG_VERSION_1_2
ScaledFont
SolidPattern
Surface
SurfacePattern
TextExtents
version

### Slots

ANTIALIAS_DEFAULT

undocumented
ANTIALIAS_GRAY

undocumented
ANTIALIAS_NONE

undocumented
ANTIALIAS_SUBPIXEL

undocumented
CONTENT_ALPHA

undocumented
CONTENT_COLOR

undocumented
CONTENT_COLOR_ALPHA

undocumented
Context

undocumented
EXTEND_NONE

undocumented
EXTEND_REFLECT

undocumented
EXTEND_REPEAT

undocumented
Extents

undocumented
FILL_RULE_EVEN_ODD

undocumented
FILL_RULE_WINDING

undocumented
FILTER_BEST

undocumented
FILTER_BILINEAR

undocumented
FILTER_FAST

undocumented
FILTER_GAUSSIAN

undocumented
FILTER_GOOD

undocumented
FILTER_NEAREST

undocumented
FONT_SLANT_ITALIC

undocumented
FONT_SLANT_NORMAL

undocumented
FONT_SLANT_OBLIQUE

undocumented
FONT_WEIGHT_BOLD

undocumented
FONT_WEIGHT_NORMAL

undocumented
FORMAT_A1

undocumented
FORMAT_A8

undocumented
FORMAT_ARGB32

undocumented
FORMAT_RGB16_565

undocumented
FORMAT_RGB24

undocumented
FontExtents

undocumented
FontFace

undocumented
FontOptions

undocumented
Glyph

undocumented
Gradient

undocumented
HAS_PDF_SURFACE

undocumented
HAS_PNG_FUNCTIONS

undocumented
HAS_PS_SURFACE

undocumented
HAS_SVG_SURFACE

undocumented
HINT_METRICS_DEFAULT

undocumented
HINT_METRICS_OFF

undocumented
HINT_METRICS_ON

undocumented
HINT_STYLE_DEFAULT

undocumented
HINT_STYLE_FULL

undocumented
HINT_STYLE_MEDIUM

undocumented
HINT_STYLE_NONE

undocumented
HINT_STYLE_SLIGHT

undocumented
ImageSurface

undocumented
LINE_CAP_BUTT

undocumented
LINE_CAP_ROUND

undocumented
LINE_CAP_SQUARE

undocumented
LINE_JOIN_BEVEL

undocumented
LINE_JOIN_MITER

undocumented
LINE_JOIN_ROUND

undocumented
LinearGradient

undocumented
Matrix

undocumented
OPERATOR_ADD

undocumented
OPERATOR_ATOP

undocumented
OPERATOR_CLEAR

undocumented
OPERATOR_DEST

undocumented
OPERATOR_DEST_ATOP

undocumented
OPERATOR_DEST_IN

undocumented
OPERATOR_DEST_OUT

undocumented
OPERATOR_DEST_OVER

undocumented
OPERATOR_IN

undocumented
OPERATOR_OUT

undocumented
OPERATOR_OVER

undocumented
OPERATOR_SATURATE

undocumented
OPERATOR_SOURCE

undocumented
OPERATOR_XOR

undocumented
PATH_CLOSE_PATH

undocumented
PATH_CURVE_TO

undocumented
PATH_LINE_TO

undocumented
PATH_MOVE_TO

undocumented
PDFSurface

undocumented
PSSurface

undocumented
Path

undocumented
PathElement

undocumented
Pattern

undocumented
RadialGradient

undocumented
Rectangle

undocumented
SUBPIXEL_ORDER_BGR

undocumented
SUBPIXEL_ORDER_DEFAULT

undocumented
SUBPIXEL_ORDER_RGB

undocumented
SUBPIXEL_ORDER_VBGR

undocumented
SUBPIXEL_ORDER_VRGB

undocumented
SVGSurface

undocumented
SVG_VERSION_1_1

undocumented
SVG_VERSION_1_2

undocumented
ScaledFont

undocumented
SolidPattern

undocumented
Surface

undocumented
SurfacePattern

undocumented
TextExtents

undocumented
version

undocumented

## CairoContext

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoExtents

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoFontExtents

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoFontFace

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoFontOptions

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoGlyph

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoGradient

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoImageSurface

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoLinearGradient

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoMatrix

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoPath

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoPathElement

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoPattern

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoRadialGradient

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoRectangle

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoScaledFont

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoSolidPattern

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoSurface

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoSurfacePattern

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## CairoTextExtents

Module: Cairo
Category: Graphics

### Slot Index

### Slots

## Call

Module: Core

### Description

Call stores slots related to activation.

### Slot Index

activated
argAt()
argCount
coroutine
delegateTo()
delegateToMethod()
description
evalArgAt()
evalArgs
hasArgs
message
relayStopStatus()
resetStopStatus()
sender
setStopStatus()
slotContext
stopStatus
target

### Slots

activated

Returns the activated value.
argAt(argNumber)

Returns the message's argNumber arg. Shorthand for same as call message argAt(argNumber).
argCount

Returns the number of arguments for the call. Same as call message argCount.
coroutine

Returns the coroutine in which the message was sent.
delegateTo(target, altSender)

Sends the call's message to target (and relays it's stop status). The sender is set to altSender, if it is supplied. Returns the result of the message.
delegateToMethod(target, methodName)

Sends the call's message to target via the method specified by methodName. Returns the result of the message.
description

Returns a description of the receiver as a String.
evalArgAt(argNumber)

Evaluates the specified argument of the Call's message in the context of it's sender.
evalArgs

Returns a list containing the call message arguments evaluated in the context of the sender.
hasArgs

Returns true if the call was passed arguments.
message

Returns the message value.
relayStopStatus(arg)

Sets sender's stop status (Normal, Return, Break, Continue etc.) and returns evaluated argument.
resetStopStatus(arg)

Sets stop status to Normal. See also `Call setStopStatus`.
sender

Returns the sender value.
setStopStatus(aStatusObject)

Sets the stop status on the call.
slotContext

Returns the slotContext value.
stopStatus

Returns the stop status on the call. (description of stopStatus will be added once we decide whether or not to keep it)
target

Returns the target value.

## Certificate

Module: SecureSocket
Category: Networking

### Description

Read-only interface to SSL X509 certificates. Example:

    //...

""")

### Slot Index

### Slots

## Collector

Module: Core
Category: Core

### Description

A singleton containing methods related to Io's garbage collector. Io currently uses a incremental, non-moving, generational collector based on the tri-color (black/gray/white) algorithm with a write-barrier.

Every N number of object allocs, the collector will walk some of the objects marked as gray, marking their connected white objects as gray and turning themselves black. Every M allocs, it will pause for a sweep where it makes sure all grays are marked black and io_frees all whites.

If the sweepsPerGeneration is set to zero, it will immediately mark all blacks as white again and mark the root objects as gray. Otherwise, it will wait until the sweepsPerGeneration count is reached to do this. By adjusting the allocsPerSweep and sweepsPerGeneration appropriately, the collector can be tuned efficiently for various usage cases. Generally, the more objects in your heap, the larger you'll want this number.

### Slot Index

allObjects
allocatedStep
cleanAllObjects
collect
dirtyObjects
marksPerAlloc
maxAllocatedBytes
objectWithUniqueId()
resetMaxAllocatedBytes
setAllocatedStep()
setDebug()
setMarksPerAlloc()
showStats
timeUsed

### Slots

allObjects

Returns a List containing all objects known to the collector.
allocatedStep

Return the allocation step value as a Number.
cleanAllObjects

Sets all objects as clean. Returns self.
collect

Runs garbage collector. Returns the number of items collected.
dirtyObjects

Returns a List containing all dirty objects known to the collector.
marksPerAlloc

Return the number of allocations per collector mark pass.
maxAllocatedBytes

Returns the maximum number of bytes allocated by the collector.
objectWithUniqueId(aNumber)

Returns an object whose uniqueId is aNumber or nil if no match is found. Warning: This lookup currently scans all objects, so it is not efficient, though it should handle thousands of lookups per second.
resetMaxAllocatedBytes

Resets maximum number of bytes allocated by the collector. Returns self.
setAllocatedStep(aNumber)

Sets the allocatedStep (can have a fractional component, but must be larger than 1). A collector sweep is forced when the number of allocated objects exceeds the allocatedSweepLevel. After a sweep, the allocatedSweepLevel is set to the allocated object count times the allocatedStep. Returns self.
setDebug(aBool)

Turns on/off printing of collector debugging messages. Returns self.
setMarksPerAlloc(aNumber)

Sets the number of incremental collector marks per object allocation (can be fractional). Returns self.
showStats

Prints the collector's stats to standard output.
timeUsed

Return the time used so far by the collector in seconds.

## Compiler

Module: Core
Category: Core

### Description

Contains methods related to the compiling code.

### Slot Index

messageForString()
messageForString2()
messageForTokens()
tokensForString()

### Slots

messageForString(aString, optionalLabelString)

Returns the compiled message object for aString.
messageForString2(aString)

Returns the compiled message object for aString. (Runs raw string against lexer directly.)
messageForTokens(aList)

Returns the compiled message object for the given token list.
tokensForString(aString)

Returns a list of token objects lexed from the input string.

## Coroutine

Module: Core
Category: Core

### Description

Object wrapper for an Io coroutine.

### Slot Index

backTraceString
callStack
currentCoroutine
debugWriteln
exception
freeStack
ignoredCoroutineMethodNames
implementation
inException
ioStack
isCurrent
isYielding
label
main
parentCoroutine
pause
pauseCurrentAndResumeSelf
raiseException
result
resume
resumeLater
resumeParentCoroutine
run
runLocals
runMessage
runTarget
setException
setInException
setLabel
setMessageDebugging()
setParentCoroutine
setResult
setRunLocals
setRunMessage
setRunTarget
setStackSize
setYieldingCoros
showStack
showYielding
stackSize
typeId
yield
yieldCurrentAndResumeSelf
yieldingCoros

### Slots

backTraceString

Returns a formatted callStack output along with exception info (if any). In case of CGI script, wraps output with <code> tag.
callStack

Returns a list of Call objects.
currentCoroutine

Returns currently running coroutine in Io state.
debugWriteln

(See `Object debugWriteln`.)
exception

Returns the current exception or nil if there is none.
freeStack

Frees all the internal data from the receiver's stack. Returns self.
ignoredCoroutineMethodNames

List of methods to ignore when building a `callStack`.
implementation

Returns coroutine implementation type: "fibers", "ucontext" or "setjmp"
inException

Set to true when processing an exception in the coroutine.
ioStack

Returns List of values on this coroutine's stack.
isCurrent

Returns true if the receiver is currently running coroutine.
isYielding

Returns true if the receiver is yielding (not paused or running).
label

A label slot useful for debugging purposes.
main

[Seems to be obsolete!] Executes runMessage, resumes parent coroutine.
parentCoroutine

Returns the parent coroutine this one was chained from or nil if it wasn't chained. When a Coroutine ends, it will attempt to resume it's parent.
pause

Removes current coroutine from the yieldingCoros queue and yields to another coro. `System exit` is executed if no coros left.
You can resume a coroutine using either `resume` or `resumeLater` message.
pauseCurrentAndResumeSelf

Pauses current coroutine and yields to a receiver.
raiseException

Sets exception in the receiver and resumes parent coroutine.
result

The result set when the coroutine ends.
resume

Yields to the receiver. Runs the receiver if it is not running yet. Returns self.
resumeLater

Promotes receiver to the top of the yieldingCoros queue, but not yielding to it. When current coroutine yields, receiver will resume.
resumeParentCoroutine

Pauses current coroutine and resumes parent.
run

Runs receiver and returns self.
runLocals

The locals object in whose context the coroutine will send it's run message.
runMessage

The message to send to the runTarget when the coroutine starts.
runTarget

The object which the coroutine will send a message to when it starts.
setException

setInException

setLabel

setMessageDebugging(aBoolean)

Turns on message level debugging for this coro. When on, this coro will send a vmWillSendMessage message to the Debugger object before each message send and pause itself. See the Debugger object documentation for more information.
setParentCoroutine

setResult

setRunLocals

setRunMessage

setRunTarget

setStackSize

setYieldingCoros

showStack

Writes backTraceString to STDOUT.
showYielding

Prints a list of yielding coroutines to STDOUT.
stackSize

Stack size allocated for each new coroutine. Coroutines will automatically chain themselves as need if more stack space is required.
typeId

Returns <type>_<uniqueHexId> string.
yield

Yields to another coroutine in the yieldingCoros queue. Does nothing if yieldingCoros is empty.
yieldCurrentAndResumeSelf

Yields to a receiver.
yieldingCoros

Reference to Scheduler yieldingCoros.

## Curses

Module: Curses
Category: Server
Credits: Original version by Edwin Zacharias. getCh method by Scott Dunlop.

### Description

Curses allows writing and reading at arbitrary positions on the terminal. You have to call init to set the terminal to curses mode and end to end curses mode. The terminal is not updated until refresh is called. It is a bad idea to use the standard io's read and write methods when the terminal is in curses mode. The Curses primitive was written by Edwin Zacharias.
Here's an example that prints Hello at column 5 and row 7;

    Curses init
    Curses move(5, 7) print(\"Hello\")
    Curses refresh
    Curses end

### Slot Index

asyncReadCharacter
begin
cBreak()
clear
clearToEndOfLine
delete()
echo
end
get()
getCh
hasColors
height
input()
inputBuffer
insert()
move()
noCBreak
noEcho
nodelay()
print()
readLine
refresh
setBackgroundBlack
setBackgroundBlue
setBackgroundCyan
setBackgroundGreen
setBackgroundMagenta
setBackgroundRed
setBackgroundWhite
setBackgroundYellow
setForegroundBlack
setForegroundBlue
setForegroundCyan
setForegroundGreen
setForegroundMagenta
setForegroundRed
setForegroundWhite
setForegroundYellow
width
write
writeCharacter()
x
y

### Slots

asyncReadCharacter

undocumented
begin

Sets the terminal to curses mode. This should be called before any other curses methods. Returns self.
cBreak(aString)

Disables line buffering and erase/kill character-processing. cBreak should be on for most purposes. Returns self.
clear

Clears the terminal. Nicer than erase. Returns self.
clearToEndOfLine

Clears the text from the cursor to the end of the line. Returns self.
delete(n)

Deletes n characters at the current position. Text to the right is shifted left. n is optional and defaults to 1. Returns self.
echo

Echoes user input to terminal. Returns self.
end

Ends curses mode. This should be called before standard io's read and write methods are used. Returs self.
get(n)

Returns n characters from the terminal. n is optional and defaults to 1.
getCh

Reads a single-byte character from the terminal associated with the current or specified window. Returns a Number containing the byte.
hasColors

Returns true if the terminal supports color, false otherwise.
height

Returns a Number containing the height of the current screen.
input(n)

Returns user input up to a return, or a maximun of n characters.
inputBuffer

undocumented
insert(aString)

Inserts the string at the current position on the terminal, pushing existing text to the right. Returns self.
move(x, y)

Moves the cursor to column y and row x on the terminal. (0, 0) is at the top-left of the terminal. Returns self.
noCBreak

Allows line buffering and erase/kill character-processing. cBreak should be on for most purposes. Returns self.
noEcho

Does not echo user input to terminal. Returns self.
nodelay(aBoolean)

Enables or disables block during read. If aNumber is zero, nodelay is set to be false, otherwise it is set to be true.
print(aString)

Prints the string to the current position on the terminal, overwriting existing text on the terminal. Returns self.
readLine

undocumented
refresh

Copies the current buffer to the screen. This must be called to make changes to the screen. Returns self.
setBackgroundBlack

Sets the background color to black.
setBackgroundBlue

Sets the background color to blue.
setBackgroundCyan

Sets the background color to cyan.
setBackgroundGreen

Sets the background color to green.
setBackgroundMagenta

Sets the background color to magenta.
setBackgroundRed

Sets the background color to red.
setBackgroundWhite

Sets the background color to white.
setBackgroundYellow

Sets the background color to yellow.
setForegroundBlack

Sets the foreground color to black.
setForegroundBlue

Sets the foreground color to blue.
setForegroundCyan

Sets the foreground color to cyan.
setForegroundGreen

Sets the foreground color to green.
setForegroundMagenta

Sets the foreground color to magenta.
setForegroundRed

Sets the foreground color to red.
setForegroundWhite

Sets the foreground color to white.
setForegroundYellow

Sets the foreground color to yellow.
width

Returns a Number containing the width of the current screen.
write

undocumented
writeCharacter(aCharacter)

Prints the aCharacter to the current position on the terminal, overwriting existing text on the terminal. Returns self.
x

Returns the cursor x position.
y

Returns the cursor y position.

## DBI

Module: DBI
Category: Databases

### Description

An object for wrapping libdbi to allow Io access to a multitude of database systems transparently.

### Slot Index

drivers
initWithDriversPath
version
with()

### Slots

drivers

Get a list of drivers and it's associated information:

1. name
2. description
3. filename
4. version
5. date compiled
6. maintainer
7. url

initWithDriversPath

Initialize the DBI environment with the specified libdbi driver path.
version

Return string version of libdbi being used.
with(driverName)

Get a new connection with the given driver.

## DBIConn

Module: DBI
Category: Databases

### Description

An object that represents a DBI Connection.

### Slot Index

close
connect
driver
execute()
option()
optionClear()
optionPut()
options
optionsClear
ping
query()
queryOne()
quote()
sequenceLast()
sequenceNext()

### Slots

close

Close the connection to the database.
connect

Connect to the database server.
driver

Return database driver name.
execute(sql_query)

Perform a database query that expects no results. Returns the number of rows affected.
option(key)

Retrieve an option value for the connection.
optionClear(key)

Clear a specific option associated with the connection.
optionPut(key,value)

Add an option key, value pair to the connection.
options

Retrieve an option list of the connection.
optionsClear

Clear all options associated with the connection
ping

Ping the database to see if it's alive. Will return true if it is, otherwise false.
query(sql_query)

Perform a database query returning a DBIResult object.
queryOne([object], sql)

Perform a query and return the first result. If [object] is supplied, the object is populated with the contents of the result, the result is marked done and the object is returned.
quote(value)

Quote a string value according to the database server's specifications.
sequenceLast([name])

Return the last inserted sequence value.
sequenceNext([name])

Return the next sequence that will be used during an INSERT query.

## DBIRecord

Module: DBI
Category: Databases

### Description

A DBI Record. When utilizing `foreach' or `populate' methods of a DBIResult object, you can pass an optional Object cloned from DBIRecord. This object will be populated with the row contents making it possible to write objects that represent your SQL results. A simple example would be:

    Person := DBIRecord clone do (fullName := method(firstName.." "..lastName))
    q := conn query("SELECT id, firstName, lastName FROM people")
    q foreach(Person, p, writeln("Name = ", p fullName))

As you can see, fullName was not in the SQL query, however, a dynamic method in your Person class. DBIRecord in and of itself provides no real functionality. It simply acts as an Object and stores the values from the SQL query into a Map. You can access the field information:

    o := r populate(Person)
    o firstName            // would retrieve the firstName value of the SQL query
    o setFirstName("John") // would update the object's firstName value to be John

Do not confuse the above example as updating the actual database. The call to setFirstName only updates the objects representation of firstName.

### Slot Index

forward
with()

### Slots

forward

Private method that implements getting and setting values.
with(aMap)

Returns a new DBIRecord instance for the given value map.

## DBIResult

Module: DBI
Category: Databases

### Description

A DBI Result created by a call to DBIConn query.

### Slot Index

at()
done
fields
first
foreach()
last
next
populate()
position
previous
seek()
size

### Slots

at(index_or_name)

Returns the contents of the given field. The parameter can be a field index or a field name.
done

Close and free the result. This must be called on each result. Failure to do so will cause memory leaks and open queries with the database server.
fields

Returns a list of field names in the result.
first

Move the cursor to the first record.
foreach([Object], value, message)

Loops over the records in the result starting at either the first result (if the cursor has never been moved) or it's current location if moved. i.e.

    r := conn query("SELECT * FROM people")
    r foreach(r, r at(1))

The above would start at the first row, however, you can move around in the result set and then foreach would pickup where you left off, for instance, say you wanted to skip the first three rows:

    r := conn query("SELECT * FROM people")
    r seek(4)
    r foreach(r, r at (1))

The above would start at the record #4, not at the beginning. The optional Object parameter would cause a decendent of DBIRecord to be populate instead of the index being set. This allows for advanced functionality. Please see `DBIRecord' for further information and an example.
last

Move the cursor to the last record.
next

Move the cursor to the next record.
populate(object)

Populates a decendent of DBIRecord with the current record's contents. See `DBIRecord' for further explanation and an example.
position

Return the current row's position (or index).
previous

Move the cursor to the previous record.
seek(row_number)

Move the cursor to the nth record.
size

Returns the number of rows available.

## DNS

Module: Socket
Category: Networking

### Description

Utility methods related to Domain Name Service lookups.

### Slot Index

dnsQueryPacketForHostName()
hostNameAndIPforDNSResponsePacket()
localNameServersIPs

### Slots

dnsQueryPacketForHostName(hostNameSeq)

Assembles a DNS query packet for the given host name and returns it in a Sequence.
hostNameAndIPforDNSResponsePacket(dnsResponsePacketSeq)

Dissasembles the given dnsResponsePacketSeq and returns a list object containing the hostName and IP or an error string on error.
localNameServersIPs

Returns a list of local name server IPs as a list of Sequences. Works on OSX, Unix, Windows.

## DNSQuery

Module: Socket
Category: Networking

### Description

An object representing an individual DNS query.

### Slot Index

addCoro()
coros
description
hostName
resumeCoros
setHostName()
waitOn

### Slots

addCoro(aCoro)

Private method that adds a coro to coros.
coros

List of coroutines paused waiting for this query. These coros will be resumed when the query completes.
description

undocumented
hostName

The host name which the query will request an IP for.
resumeCoros

Resumes all the paused coros. Should this use resumeLater instead?
setHostName(aSeq)

Sets the host name for the query.
waitOn

Pauses the calling coroutine until the query is completed.

## DNSResolver

Module: Socket

### Description

With the DNSResolver you can set the DNS servers to be used for DNS lookups. Example;

    	DNSResolver addDNSServerIp("128.105.2.10")
    	ipForYahoo := DNSResolver ipForHostName("yahoo.com")

### Slot Index

addDNSServerIp()
cache
dnsServers
emptyCache
ipForHostName()
queries
readTimeout
setReadTimeout
setupServerListIfNeeded

### Slots

addDNSServerIp(ipString)

Adds a new DNSServer for the specified IP.
cache

Returns Map containing lookup cache.
dnsServers

Returns list of DNSServer objects used for lookups.
emptyCache

Empties the lookup cache. Returns self.
ipForHostName(hostName)

Returns a String containing the IP for the hostName or an error if hostName could not be resolved.
queries

Returns list of active DNSQuery objects.
readTimeout

undocumented
setReadTimeout

undocumented
setupServerListIfNeeded

Private method that gets local name server IPs and sets up dnsServers list. Returns self.

## DNSServer

Module: Socket
Category: Networking

### Description

An object representing a DNSServer which DNS requests can be sent to.

### Slot Index

host
ipForHostName()
setHost()

### Slots

host

The host name (usually an IP) for the DNSServer.
ipForHostName(hostName, timeout)

Sends a request to the DNS server, waits for a response and returns it. Will try 3 times if there are timeouts. Returns the IP (as a Sequence) if successful, raises an exception otherwise.
setHost(aSeq)

Sets the host name for the DNSServer.

## DOConnection

Module: DistributedObjects
Category: Networking

### Description

The DOConnection object is usefull for communicating with remote servers in a way that makes it look just like the sending of local messages. Proxies are automatically created on either side for passed objects, with the exception of strings and numbers, which are passed by value. Example:

    con := DOConnection clone setHost("127.0.0.1") setPort(8456) connect
    result := con serverObject test(1)
    writeln(result)
    r := result at(0)
    writeln(r)
    r := result at(1)
    writeln(r)

Implementation Notes:

The format of the Distributed Objects message is a list of NullCharacter terminated strings in one of these two formats:

Send message format:

    s NullCharacter targetId NullCharacter messageName NullCharacter argCount NullCharacter argType NullCharacter argValue NullCharacter (next arg type and value, etc)

Reply message format:

    r NullCharacter argType NullCharacter argvalue NullCharacter

If the argument is not a String, Number or nil then: If it is local to the sender, the type is RemoteObject. If it is a proxy to a remote object, the type is LocalObject. This isn't optimized yet.

### Slot Index

NullCharacter
ShowMessage
close
connect
decode
encode
handleSocket
host
localObjects
performMessage
port
proxies
readMessage
sendMessage
serverObject
setHost()
setLocalObjects
setPort()
setProxies
setSocket
socket

### Slots

NullCharacter

undocumented
ShowMessage

undocumented
close

Close the connection, if it is open. Returns self.
connect

Connect to the remote DOServer. Returns self or an Error, if one occurs.
decode

undocumented
encode

undocumented
handleSocket

undocumented
host

Returns the host ip.
localObjects

undocumented
performMessage

undocumented
port

Returns the port.
proxies

undocumented
readMessage

undocumented
sendMessage

undocumented
serverObject

A handle to the remote DOServer's root object. Returns result from server or an Error, if one occurs.
setHost(ipString)

Sets the host ip to connect to. Returns self or an Error, if one occurs.
setLocalObjects

undocumented
setPort(portNumber)

Sets the port number to connect to. Returns self.
setProxies

undocumented
setSocket

undocumented
socket

undocumented

## DOProxy

Module: DistributedObjects
Category: Networking

### Slot Index

connection
forward
proxyId
setConnection
setProxyId

### Slots

connection

undocumented
forward

undocumented
proxyId

undocumented
setConnection

undocumented
setProxyId

undocumented

## DOServer

Module: DistributedObjects
Category: Networking

### Description

An experimental distributed objects server. Example;

    Test := Object clone
    Test test := method(v,
    	write("got test '", v, "'\n")
    	return List clone append(1)
    )

    doServer := DOServer clone
    doServer setRootObject(Test clone)
    doServer setPort(8456)
    doServer start

### Slot Index

handleSocket
rootObject
setRootObject()
socket

### Slots

handleSocket

undocumented
rootObject

undocumented
setRootObject(anObject)

Sets the root object which incoming messages will be send to.
socket

undocumented

## Date

Module: Core
Category: Time
Credits: fromString method by Sean Perry

### Slot Index

+()
+=()
-()
-=()
asAtomDate
asNumber
asSerialization
asString()
clock
copy()
cpuSecondsToRun()
day
format
fromNumber()
fromSerialization
fromString()
gmtOffset
gmtOffsetSeconds
hour
isDaylightSavingsTime
isPast
isToday
isValidTime()
justSerialized
minute
month
now
print
second
secondsSince()
secondsSinceNow()
secondsToRun()
setDay()
setHour()
setMinute()
setMonth()
setSecond()
setYear()
today
year
zone

### Slots

+(aDuration)

Return a new Date with the receiver's value plus an amount of time specified by aDuration object to the receiver.
+=(aDuration)

Add aDuration to the receiver. Returns self.
-(aDurationOrDate)

Return a new Date with the receiver's value minus an amount of time specified by aDuration to the receiver. Returns self.
-=(aDuration)

Subtract aDuration from the receiver. Returns self.
asAtomDate

Returns the date formatted as a valid atom date (rfc4287) in the system's timezone.
asNumber

Returns the date as seconds since 1970.
asSerialization

Returns a serialization (sequence) of the date that allows for perfect reconstruction of the timestamp.
asString(optionalFormatString)

Returns a string representation of the receiver using the receivers format. If the optionalFormatString argument is present, the receiver's format is set to it first. Formatting is according to ANSI C date formating rules.

    %a abbreviated weekday name (Sun, Mon, etc.)
    %A full weekday name (Sunday, Monday, etc.)
    %b abbreviated month name (Jan, Feb, etc.)
    %B full month name (January, February, etc.)
    %c full date and time string
    %d day of the month as two-digit decimal integer (01-31)
    %H hour as two-digit 24-hour clock decimal integer (00-23)
    %I hour as two-digit 12-hour clock decimal integer (01-12)
    %m month as a two-digit decimal integer (01-12)
    %M minute as a two-digit decimal integer (00-59)
    %p either "AM" or "PM"
    %S second as a two-digit decimal integer (00-59)
    %U number of week in the year as two-digit decimal integer (00-52)
    with Sunday considered as first day of the week
    %w weekday as one-digit decimal integer (0-6) with Sunday as 0
    %W number of week in the year as two-digit decimal integer (00-52)
    with Monday considered as first day of the week
    %x full date string (no time); in the C locale, this is equivalent
    to "%m/%d/%y".
    %y year without century as two-digit decimal number (00-99)
    %Y year with century as four-digit decimal number
    %Z time zone name (e.g. EST);
    null string if no time zone can be obtained
    %% stands for '%' character in output string.

clock

Returns a number containing the number of seconds of processor time since the beginning of the program or -1 if unavailable.
copy(aDate)

Sets the receiver to be the same date as aDate. Returns self.
cpuSecondsToRun(expression)

Evaluates message and returns a Number whose value is the cpu seconds taken to do the evaluation.
day

Returns a number containing the day of the month of the receiver.
format

Returns the format string for the receiver. The default is "%Y-%m-%d %H:%M:%S %Z".
fromNumber(aNumber)

Sets the receiver to be aNumber seconds since 1970.
fromSerialization

Sets the date based on the serialization sequence. Return self.
fromString(aString, formatString)

Sets the receiver to the date specified by aString as parsed according to the given formatString. See the Date asString method for formating rules. Returns self.
gmtOffset

Returns the system's timezone string. E.g., +1300 or -0500.
gmtOffsetSeconds

Returns the system's seconds east of UTC.
hour

Returns a number containing the hour of the day(0-23) of the receiver.
isDaylightSavingsTime

Returns self if Daylight Saving Time is in effect for the receiver, otherwise returns Nil.
isPast

Returns true if the receiver is a date in the past.
isToday

Returns true if the receiver's date is today's date.
isValidTime(hour, min, sec)

Returns self if the specified time is valid, otherwise returns Nil. A negative value will count back; i.e., a value of -5 for the hour, will count back 5 hours to return a value of 19. No adjustment is done for values above 24.
justSerialized

undocumented
minute

Returns a number containing the minute of the hour(0-59) of the receiver.
month

Returns a number containing the month(1-12) of the year of the receiver.
now

Sets the receiver to the current time. Returns self.
print

Prints the receiver. Returns self.
second

Returns a number containing the seconds of the minute(0-59) of the receiver. This number may contain fractions of seconds.
secondsSince(aDate)

Returns a number of seconds of between aDate and the receiver.
secondsSinceNow(aDate)

Returns the number of seconds since aDate.
secondsToRun(expression)

Evaluates message and returns a Number whose value is the number of seconds taken to do the evaluation
setDay(aNumber)

Sets the day of the receiver. Returns self.
setHour(aNumber)

Sets the hour of the receiver. Returns self.
setMinute(aNumber)

Sets the minute of the receiver. Returns self.
setMonth(aNumber)

Sets the month(1-12) of the receiver. Returns self.
setSecond(aNumber)

Sets the second of the receiver. Returns self.
setYear(aNumber)

Sets the year of the receiver.
today

Set the receiver to the current date, no time information is included. See `now' for the current date and time.
year

Returns a number containing the year of the receiver.
zone

Returns a string containing the system's time zone code.

## Debugger

Module: Core
Category: Core

### Description

Contains methods related to the IoVM debugger.

### Slot Index

debuggerCoroutine
description
start
vmWillSendMessage

### Slots

debuggerCoroutine

Returns the coroutine used for the debugger.")
description

To start debugging a coroutine, call `Coroutine currentCoroutine setMessageDebugging(true)` Then each message sent within that coroutine will cause the Debugger vmWillSendMessage slot to be activated and the Debugger slots: messageCoroutine, messageSelf, messageLocals, and message will be set with the values related to the current message send. You can override vmWillSendMessage to implement your own debugging mechanisms.
start

Starts the debugger.")
vmWillSendMessage

Override this method to implement your own debugging mechanisms. Default behavior is to print every message sent.")

## Directory

Module: Core
Category: FileSystem
Credits: Cygwin code by Mike Austin. WIN32 code by Daniel Vollmer.

### Description

The Directory object supports accessing filesystem directories. A note on paths; if a path begins with a "/" it's the root, if it beings with a "./" it's the launch path, if not specified, "./" is assumed.""")

### Slot Index

accessibleAncestors
accessibleParents
ancestorDirectories
at()
create
createFileNamed()
createIfAbsent
createSubdirectory()
currentWorkingDirectory
directories
directoryNamed()
exists()
fileNamed()
fileNames
files
filesWithExtension()
folderNamed()
folderNamedCreateIfAbsent()
folders
isAccessible
items
moveTo()
name
parentDirectory
parents
path
recursiVeFilesOfTypes()
remove
setCurrentWorkingDirectory()
setPath()
size
with()

### Slots

accessibleAncestors

Returns a list of accessizble ancestor directories.
accessibleParents

Deprecated. Replaced by accessibleAncestors.
ancestorDirectories

Returns a list of ancestor directories.
at(aString)

Returns a File or Directory object matching the name specified by aString or Nil if no such file or directory exists.
create

Create the directory if it doesn't exist. Returns self on success (or if the directory already exists), nil on failure.
createFileNamed(name)

Deprecated. Returns a new file object in the directory with the specified name.
createIfAbsent

Creates the directory (and any missing ancestor directories) if they don't exist. Returns self.
createSubdirectory(name)

Create a subdirectory with the specified name.
currentWorkingDirectory

Returns the current working directory path.
directories

Returns a list of subdirectories in the receiver.
directoryNamed(aName)

Returns a Directory object for the specified file name whether or not it exists.
exists(optionalPath)

Returns true if the Directory path exists, and false otherwise. If optionalPath string is provided, it tests the existance of that path instead.
fileNamed(aName)

Returns a File object for the specified file name whether it exists or not.
fileNames

Returns a list of strings for the names of the files (no subdirectories) in the directory.
files

Returns a list of File objects for the files in the Directory (no directories).
filesWithExtension(aString)

Returns a list of File objects for the files in the Directory (no directories) with the specified file extension.
folderNamed(aName)

Deprecated. Replaced by directoryNamed().
folderNamedCreateIfAbsent(name)

Deprecated. Returns a new Directory object in the directory with the specified name.
folders

Deprecated. Replaced by directories().
isAccessible

Returns true if the directory can be accessed, false otherwise.
items

Returns a list object containing File and Directory objects for the files and directories of the receiver's path.
moveTo(aPath)

Moves the directory to the specified path.
name

Returns the receiver's last path component.
parentDirectory

Returns the parent directory object or nil if there is no parent directory.
parents

Deprecated. Replaced by ancestorDirectories.
path

Returns the directory path. The default path is '.'.
recursiVeFilesOfTypes(suffixes)

Returns a list containing all files in the directory or any subdirectory that has any of the specified suffixes.
remove

Removes the directory.
setCurrentWorkingDirectory(pathString)

Set's the current working directory path. Returns true on success or false on error.
setPath(aString)

Sets the directory path. Returns self.
size

Returns a Number containing the number of file and directory objects at the receiver's path.
with(aPath)

Returns a new instance with the provided path.

## Duration

Module: Core
Category: Time

### Description

A container for a duration of time.

### Slot Index

+
+=()
-
-=()
asNumber
asString()
days
fromNumber()
hours
minutes
print
seconds
setDays()
setHours()
setMinutes()
setSeconds()
setYears()
totalSeconds
years

### Slots

+

Returns a new Duration of the two added.
+=(aDuration)

Add aDuration to the receiver. Returns self.
-

Returns a new Duration of the two subtracted.
-=(aDuration)

Subtract aDuration to the receiver. Returns self.
asNumber

Returns a number representation of the receiver. (where 1 is equal to one second)
asString(formatString)

Returns a string representation of the receiver. The formatString argument is optional. If present, the returned string will be formatted according to ANSI C date formating rules.

    %y years without century as two-digit decimal number (00-99)
    %Y year with century as four-digit decimal number

    %d days
    %H hour as two-digit 24-hour clock decimal integer (00-23)
    %M minute as a two-digit decimal integer (00-59)
    %S second as a two-digit decimal integer (00-59)

    The default format is "%Y %d %H:%M:%S".

days

Returns a number containing the day of the month of the receiver.
fromNumber(aNumber)

Sets the receiver to the Duration specified by aNumber(same format number as returned by Duration asNumber). Returns self.
hours

Returns a number containing the hour of the day(0-23) of the receiver.
minutes

Returns a number containing the minute of the hour(0-59) of the receiver.
print

Prints the receiver. Returns self.
seconds

Returns a number containing the seconds of the minute(0-59) of the receiver. This number may contain fractions of seconds.
setDays(aNumber)

Sets the day of the receiver. Returns self.
setHours(aNumber)

Sets the hour of the receiver. Returns self.
setMinutes(aNumber)

Sets the minute of the receiver. Returns self.
setSeconds(aNumber)

Sets the second of the receiver. Return self.
setYears(aNumber)

Sets the year of the receiver. Returns self.
totalSeconds

Same as a asNumber.
years

Returns a number containing the year of the receiver.

## DynLib

Module: Core
Category: Core

### Description

A DLL Loader by Kentaro A. Kurahone.

### Slot Index

call()
callPluginInit()
close
freeFuncName
initFuncName
isOpen
open
path
setFreeFuncName()
setInitFuncName()
setPath()
voidCall()

### Slots

call(functionName, <arg1>, <arg2>, ...)

Call's the dll function of the specified name with the arguments provided. Returns the a Number with the result value.
callPluginInit(functionName)

Call's the dll function of the specified name. Returns the result as a Number or raises an exception on error.
close

Closes the library. Returns self.
freeFuncName

Returns the io_free function name.
initFuncName

Returns the initialization function name.
isOpen

Returns true if the library is open, or false otherwise.
open

Opens the dynamic library and returns self or raises a DynLoad.open Error if there is an error.
path

Returns the path to the dynamic library.
setFreeFuncName(aString)

Sets the io_free function name. Returns self.
setInitFuncName(aString)

Sets the initialization function name for the dynamic library. Returns self.
setPath(aString)

Sets the path to the dynamic library. Returns self.
voidCall(functionName, <arg1>, <arg2>, ...)

Same as call but for functions with no return value. Returns nil.

## EditLine

Module: EditLine
Category: Core

### Description

Binding to libedit (BSD version of readline).

### Slot Index

addHistory
hasEditLib
readLine

### Slots

addHistory

undocumented
hasEditLib

undocumented
readLine

undocumented

## Error

Module: Core

### Description

An object that contains error information and flow control based on errors.

### Slot Index

ifError()
isError
raiseIfError
returnIfError
with()

### Slots

ifError(code)

Evaluates code in the context of sender. Returns self.
Another form is `Error ifError(error, code)`. Note: `error` slot is set in the context of sender, Locals object is not created!
isError

Returns true.
raiseIfError

Raises exception.
returnIfError

Returns self from the context of sender.
with(message)

Sets message slot and returns self.

## EvRequest

Module: Socket
Category: Networking

### Description

Networking Event.

### Slot Index

asyncSend
cancel
connection
didFinish
requestHeaders
requestType
send
setConnection
setRequestType
setUri
uri

### Slots

asyncSend

undocumented
cancel

undocumented
connection

undocumented
didFinish

undocumented
requestHeaders

undocumented
requestType

undocumented
send

undocumented
setConnection

undocumented
setRequestType

undocumented
setUri

undocumented
uri

undocumented

## Event

Module: Socket
Category: Networking

### Description

Networking Event.

### Slot Index

EV_READ
EV_SIGNAL
EV_TIMER
EV_WRITE
category
coro
descriptorId
eventType
eventTypeName
handleEvent()
isPending
isValid
resetTimeout
setCoro
setDescriptorId
setEV_TIMER
setEventType
setTimeout
timeout
timeoutNow
waitOn
waitOnOrExcept()

### Slots

EV_READ

undocumented
EV_SIGNAL

undocumented
EV_TIMER

undocumented
EV_WRITE

undocumented
category

Networking
coro

undocumented
descriptorId

undocumented
eventType

undocumented
eventTypeName

undocumented
handleEvent(timeout)

isPending

undocumented
isValid

undocumented
resetTimeout

undocumented
setCoro

undocumented
setDescriptorId

undocumented
setEV_TIMER

undocumented
setEventType

undocumented
setTimeout

undocumented
timeout

undocumented
timeoutNow

undocumented
waitOn

undocumented
waitOnOrExcept(timeout)

## EventManager

Module: Socket
Category: Networking

### Description

Object for libevent (kqueue/epoll/poll/select) library. Usefull for getting notifications for descriptor (a socket or file) events. Events include read (the descriptor has unread data or timeout) and write (the descriptor wrote some data or timeout). Also, timer and signal events are supported.

### Slot Index

activeEvents
addEvent()
coro
hasActiveEvents
isRunning
listen
listenUntilEvent
realAddEvent
removeEvent
resetEventTimeout
resumeIfNeeded
run
setCoro
setIsRunning
setListenTimeout

### Slots

activeEvents

undocumented
addEvent(event, descriptor, eventType, timeout)

coro

undocumented
hasActiveEvents

undocumented
isRunning

undocumented
listen

undocumented
listenUntilEvent

undocumented
realAddEvent

undocumented
removeEvent

undocumented
resetEventTimeout

undocumented
resumeIfNeeded

undocumented
run

Runs the EventManger loop. Does not return.
setCoro

undocumented
setIsRunning

undocumented
setListenTimeout

undocumented

## File

Module: Core
Category: FileSystem
Credits: Initial version contributed by Miles Egan.

### Description

Encapsulates file i/o. Here's an example of opening a file, and reversing it's lines:

    file = File clone openForUpdating("/tmp/test")
    lines = file readLines reverse
    file rewind
    lines foreach(i, line, file write(line, "\n"))
    file close

### Slot Index

asBuffer
at()
atPut()
baseName
close
containingDirectory
contents
copyToPath()
copyToPathWithoutYielding()
create
descriptor
exists
exitStatus
flush
foreach()
foreachLine()
groupId
isAtEnd
isDirectory
isLink
isOpen
isPipe
isRegularFile
isSocket
isUserExecutable
lastAccessDate
lastDataChangeDate
lastInfoChangeDate
lock
lockFile
makeFullyBuffered
makeLineBuffered
makeUnbuffered
mode
moveTo()
name
open()
openForAppending()
openForReading()
openForUpdating()
path
popen
position
positionAtEnd
protectionMode
readBufferOfLength()
readLine
readLines
readStringOfLength()
readToBufferLength
readToBufferOfLength()
remove
rewind
setContents()
setPath()
setPosition()
setStreamDestination
size
standardError
standardInput
standardOutput
startStreaming
stat
statSize
streamDestination
streamReadSize
streamTo
streamToWithoutYielding
temporaryFile
thisSourceFile
truncateToSize()
userId
with()
write()

### Slots

asBuffer

Opens the receiver in read only mode, reads the whole contents of the file into a buffer object, closes the file and returns the buffer.
at(aNumber)

Returns a Number containing the byte at the specified byte index or Nil if the index is out of bounds.
atPut(positionNumber, byteNumber)

Writes the byte value of byteNumber to the file position positionNumber. Returns self.
baseName

undocumented
close

Closes the receiver if open, otherwise does nothing. Returns self.
containingDirectory

undocumented
contents

Returns contents of the file as a mutable Sequence of bytes.
copyToPath(destinationPath)

Copies the file to the specified path.
copyToPathWithoutYielding(destinationPath)

Copies the file to the specified path without yielding.
create

Creates an empty file at the file's path. Returns self on success, nil on failure.
descriptor

Returns the file's descriptor as a number.
exists

Returns true if the file specified by the receiver's path exists, false otherwise.
exitStatus

undocumented
flush

Forces any buffered data to be written to disk. Returns self.
foreach(optionalIndex, value, message)

For each byte, set index to the index of the byte and value to the number containing the byte value and execute aMessage. Example usage:

    aFile foreach(i, v, writeln("byte at ", i, " is ", v))
    aFile foreach(v, writeln("byte ", v))

foreachLine(optionalLineNumber, line, message)

For each line, set index to the line number of the line and line and execute aMessage. Example usage:

    aFile foreachLine(i, v, writeln("Line ", i, ": ", v))
    aFile foreach(v, writeln("Line: ", v))

groupId

Returns a Number containing the group id associated with the file's path.
isAtEnd

Returns true if the file is at it's end. Otherwise returns false.
isDirectory

Returns true if the receiver's path points to a directory, false otherwise.
isLink

Returns true if the receiver's path points to a link, false otherwise.
isOpen

Returns self if the file is open. Otherwise returns Nil.
isPipe

Returns true if the receiver is a pipe, false otherwise.
isRegularFile

Returns true if the receiver's file descriptor is a regular file, false otherwise.
isSocket

Returns true if the receiver's file descriptor is a Socket, false otherwise.
isUserExecutable

Returns true if the receiver is user group executable, false otherwise.
lastAccessDate

Returns a Date object containing the last date and time the file was accessed.
lastDataChangeDate

Returns a Date object containing the last date and time the file's contents were changed.
lastInfoChangeDate

Returns a Date object containing the last date and time the file's meta info was changed.
lock

Creates a path.lock file if it does not exist. If it does exist, it waits for it be removed by the process that created it first. Returns self.
lockFile

Deprecated. The .lock file used for File locking.
makeFullyBuffered

Sets the file's stream to be fully buffered. Returns self.
makeLineBuffered

Sets the file's stream to be line buffered. Returns self.
makeUnbuffered

Sets the file's stream to be unbuffered. Returns self.
mode

Returns the open mode of the file(either read, update or append).
moveTo(pathString)

Moves the file specified by the receiver's path to the new path pathString. Raises an File doesNotExist exception if the file does not exist or a File nameConflict exception if the file nameString already exists.
name

Returns the last path component of the file path.
open(optionalPathString)

Opens the file. Creates one if it does not exist. If the optionalPathString argument is provided, the path is set to it before opening. Returns self or raises an File exception on error.
openForAppending(optionalPathString)

Sets the file mode to append (writing to the end of the file) and calls open(optionalPathString).
openForReading(optionalPathString)

Sets the file mode to read (reading only) and calls open(optionalPathString).
openForUpdating(optionalPathString)

Sets the file mode to update (reading and writing) and calls open(optionalPathString). This will not delete the file if it already exists. Use the remove method first if you need to delete an existing file before opening a new one.
path

Returns the file path of the receiver.
popen

Open the file as a pipe. Return self.
position

Returns the current file pointer byte position as a Number.
positionAtEnd

Sets the file position pointer to the end of the file.
protectionMode

Returns a Number containing the protection mode associated with the file's path.
readBufferOfLength(aNumber)

Reads a Buffer of the specified length and returns it. Returns Nil if the end of the file has been reached.
readLine

Reads the next line of the file and returns it as a string without the return character. Returns Nil if the end of the file has been reached.
readLines

Returns list containing all lines in the file.
readStringOfLength(aNumber)

Reads a String of the specified length and returns it. Returns Nil if the end of the file has been reached.
readToBufferLength

undocumented
readToBufferOfLength(aBuffer, aNumber)

Reads at most aNumber number of items and appends them to aBuffer. Returns number of items read.
remove

Removes the file specified by the receiver's path. Raises an error if the file exists but is not removed. Returns self.
rewind

Sets the file position pointer to the beginning of the file.
setContents(aSeq)

Replaces the contents for the file with aSeq. Returns self.
setPath(aString)

Sets the file path of the receiver to pathString. The default path is an empty string. Returns self.
setPosition(aNumber)

Sets the file position pointer to the byte specified by aNumber. Returns self.
setStreamDestination

undocumented
size

Returns the file size in bytes.
standardError

Returns a new File whose stream is set to the standard error stream.
standardInput

Returns a new File whose stream is set to the standard input stream.
standardOutput

Returns a new File whose stream is set to the standard output stream.
startStreaming

undocumented
stat

Updates the receiver's meta info cache.
statSize

Returns the file's size in bytes as a Number.
streamDestination

undocumented
streamReadSize

undocumented
streamTo

undocumented
streamToWithoutYielding

undocumented
temporaryFile

Returns a new File object with an open temporary file. The file is automatically deleted when the returned File object is closed or garbage collected.
thisSourceFile

undocumented
truncateToSize(numberOfBytes)

Trunctates the file's size to the numberOfBytes. Returns self.
userId

Returns a Number containing the user id associated with the file's path.
with(aPath)

Returns a new instance with the provided path.
write(aSequence1, aSequence2, ...)

Writes the arguments to the receiver file. Returns self.

## Flux

Module: Flux

### Description

AutoImporter for the Flux Io UI framework.

### Slot Index

Views
fluxPath
fluxSource
fluxViews

### Slots

Views

undocumented
fluxPath

undocumented
fluxSource

undocumented
fluxViews

undocumented

## Fnmatch

Module: Fnmatch
Category: RegularExpressions

### Description

The fnmatch add on adds support for the unix fnmatch function. (See fnmatch man page for details). Note: not all options are supported on all platforms.

### Slot Index

caseFoldOff
caseFoldOn
hasMatch
leadingDirOff
leadingDirOn
matchFor()
noEscapeOff
noEscapeOn
pathNameOff
pathNameOn
pattern
periodOff
periodOn
setPattern()
setString()
string

### Slots

caseFoldOff

See caseFoldOn.
caseFoldOn

Ignore case distinctions in both the pattern and the string.
hasMatch

Returns true if a match is found, false otherwise.
leadingDirOff

See leadingDirOn.
leadingDirOn

Ignore rest after successful pattern matching.
matchFor(aString)

Returns self if aString matches the pattern, otherwise returns nil.
noEscapeOff

See noEscapeOn.
noEscapeOn

If not set, a backslash character (\) in pattern followed by any other character will match that second character in string. In particular, "\\" will match a backslash in string. If set, a backslash character will be treated as an ordinary character.
pathNameOff

See pathNameOn.
pathNameOn

If set, a slash (/) character in string will be explicitly matched by a slash in pattern; it will not be matched by either the asterisk (*) or question-mark (?) special characters, nor by a bracket ([]) expression. If not set, the slash character is treated as an ordinary character.
pattern

Returns the pattern string.
periodOff

"See periodOn.
periodOn

If set, a leading period in string will match a period in pattern; where the location of ``leading'' is indicated by the value of FNM_PATHNAME:

- If FNM_PATHNAME is set, a period is ``leading'' if it is the first character in string or if it immediately follows a slash.
- If FNM_PATHNAME is not set, a period is ``leading'' only if it is the first character of string.

If not set, no special restrictions are placed on matching a period.

setPattern(aString)

Sets the pattern string. Returns self.
setString(aString)

Sets the string to do matching on.
string

The string to do matching on.

## Font

Module: Font
Category: Graphics

### Description

The Font object can be used to load and render TypeTrype fonts. Example use;

    // within a GLUT display callback...

    timesFont = Font clone open(\"times.ttf\")
    if (timesFont error, write(\"Error loading font: \", timesFont error, \"\n\"); return)
    timesFont setPointSize(16)
    glColor(0,0,0,1)
    timesFont draw(\"This is a test.\")

Rendering fonts using OpenGL textures

Smaller fonts (those having a point size around 30 or smaller, depending on the font) will automatically be cached in and rendered from a texture. This technique is very fast and should support rendering speeds as fast (or faster than) those of typical desktop font rendering systems. Larger font sizes(due to texture memory constraints) will be rendered to a pixelmap when displayed. Thanks to Mike Austin for implementing the font texturing system.

### Slot Index

drawCenteredString
drawOffsetString
drawString()
error
isTextured
open()
path
pixelHeight
pixelSize
setPath()
setPixelSize()
stringIndexAtWidth()
widthOfCharacter()
widthOfString()

### Slots

drawCenteredString

undocumented
drawOffsetString

undocumented
drawString(aString, optionalStartIndex, optionalEndIndex)

Draws aString using the optional start and end indexes, if supplied. Returns self.

Note; Fonts are draw as RGBA pixel maps. These blending options are recommended:

    glEnable(GL_BLEND)
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

error

Returns the current error string or nil if there is no error.
isTextured

Returns true if the font is being cached in and rendered from a texture, false otherwise.
open(optionalPath)

Opens the font. Sets path using optionalPath if supplied. Returns self.
path

Returns the Font path.
pixelHeight

Returns the height of the font measured in pixels.
pixelSize

Returns the font's pixelSize.
setPath(aString)

Sets the Font path. Returns self.
setPixelSize(aNumber)

Sets the size of the font in pixels. Returns self.
stringIndexAtWidth(aString, startIndex, width)

Returns the max index of the character in String (starting at startIndex) that fits within width.
widthOfCharacter(aNumber)

Returns the width of the character specified by aNumber in the receiver's font.
widthOfString(aString)

Returns a Number with the width that aString would render to with the receiver's current settings.

## GLApp

Module: OpenGL
Category: Graphics

### Slot Index

appDidInit
appName
backgroundColor
didInit
didReshape
didToggleFullScreen
display
draw
escapeKey
height
initBlending
initEvents
keyboard
mouse
reshape
run
runFullScreen
setAppName
setHeight
setWidth
special
takeScreenShot
timer
toggleFullScreen
width

### Slots

appDidInit

undocumented
appName

undocumented
backgroundColor

undocumented
didInit

undocumented
didReshape

undocumented
didToggleFullScreen

undocumented
display

undocumented
draw

undocumented
escapeKey

undocumented
height

undocumented
initBlending

undocumented
initEvents

undocumented
keyboard

undocumented
mouse

undocumented
reshape

undocumented
run

undocumented
runFullScreen

undocumented
setAppName

undocumented
setHeight

undocumented
setWidth

undocumented
special

undocumented
takeScreenShot

undocumented
timer

undocumented
toggleFullScreen

undocumented
width

undocumented

## GLFW

Module: GLFW
Category: Graphics

### Slot Index

### Slots

## GLScissor

Module: OpenGL
Category: Graphics

### Slot Index

isOn
isVisible
off
on
pop
push
rect
set
setRect
setViewRect
sync
unionWithScreenRect
unionWithViewRect

### Slots

isOn

undocumented
isVisible

undocumented
off

undocumented
on

undocumented
pop

undocumented
push

undocumented
rect

undocumented
set

undocumented
setRect

undocumented
setViewRect

undocumented
sync

undocumented
unionWithScreenRect

undocumented
unionWithViewRect

undocumented

## GLU

Module: OpenGL
Category: Graphics

### Slot Index

GLU_AUTO_LOAD_MATRIX
GLU_BEGIN
GLU_CCW
GLU_CULLING
GLU_CW
GLU_DISPLAY_MODE
GLU_DOMAIN_DISTANCE
GLU_EDGE_FLAG
GLU_END
GLU_ERROR
GLU_EXTENSIONS
GLU_EXTERIOR
GLU_FALSE
GLU_FILL
GLU_FLAT
GLU_INSIDE
GLU_INTERIOR
GLU_INVALID_ENUM
GLU_INVALID_OPERATION
GLU_INVALID_VALUE
GLU_LINE
GLU_MAP1_TRIM_2
GLU_MAP1_TRIM_3
GLU_NONE
GLU_NURBS_BEGIN
GLU_NURBS_BEGIN_DATA
GLU_NURBS_BEGIN_DATA_EXT
GLU_NURBS_BEGIN_EXT
GLU_NURBS_COLOR
GLU_NURBS_COLOR_DATA
GLU_NURBS_COLOR_DATA_EXT
GLU_NURBS_COLOR_EXT
GLU_NURBS_END
GLU_NURBS_END_DATA
GLU_NURBS_END_DATA_EXT
GLU_NURBS_END_EXT
GLU_NURBS_ERROR
GLU_NURBS_ERROR1
GLU_NURBS_ERROR10
GLU_NURBS_ERROR11
GLU_NURBS_ERROR12
GLU_NURBS_ERROR13
GLU_NURBS_ERROR14
GLU_NURBS_ERROR15
GLU_NURBS_ERROR16
GLU_NURBS_ERROR17
GLU_NURBS_ERROR18
GLU_NURBS_ERROR19
GLU_NURBS_ERROR2
GLU_NURBS_ERROR20
GLU_NURBS_ERROR21
GLU_NURBS_ERROR22
GLU_NURBS_ERROR23
GLU_NURBS_ERROR24
GLU_NURBS_ERROR25
GLU_NURBS_ERROR26
GLU_NURBS_ERROR27
GLU_NURBS_ERROR28
GLU_NURBS_ERROR29
GLU_NURBS_ERROR3
GLU_NURBS_ERROR30
GLU_NURBS_ERROR31
GLU_NURBS_ERROR32
GLU_NURBS_ERROR33
GLU_NURBS_ERROR34
GLU_NURBS_ERROR35
GLU_NURBS_ERROR36
GLU_NURBS_ERROR37
GLU_NURBS_ERROR4
GLU_NURBS_ERROR5
GLU_NURBS_ERROR6
GLU_NURBS_ERROR7
GLU_NURBS_ERROR8
GLU_NURBS_ERROR9
GLU_NURBS_MODE
GLU_NURBS_MODE_EXT
GLU_NURBS_NORMAL
GLU_NURBS_NORMAL_DATA
GLU_NURBS_NORMAL_DATA_EXT
GLU_NURBS_NORMAL_EXT
GLU_NURBS_RENDERER
GLU_NURBS_RENDERER_EXT
GLU_NURBS_TESSELLATOR
GLU_NURBS_TESSELLATOR_EXT
GLU_NURBS_TEXTURE_COORD
GLU_NURBS_TEXTURE_COORD_DATA
GLU_NURBS_TEX_COORD_DATA_EXT
GLU_NURBS_TEX_COORD_EXT
GLU_NURBS_VERTEX
GLU_NURBS_VERTEX_DATA
GLU_NURBS_VERTEX_DATA_EXT
GLU_NURBS_VERTEX_EXT
GLU_OBJECT_PARAMETRIC_ERROR
GLU_OBJECT_PARAMETRIC_ERROR_EXT
GLU_OBJECT_PATH_LENGTH
GLU_OBJECT_PATH_LENGTH_EXT
GLU_OUTLINE_PATCH
GLU_OUTLINE_POLYGON
GLU_OUTSIDE
GLU_OUT_OF_MEMORY
GLU_PARAMETRIC_ERROR
GLU_PARAMETRIC_TOLERANCE
GLU_PATH_LENGTH
GLU_POINT
GLU_SAMPLING_METHOD
GLU_SAMPLING_TOLERANCE
GLU_SILHOUETTE
GLU_SMOOTH
GLU_TESS_BEGIN
GLU_TESS_BEGIN_DATA
GLU_TESS_BOUNDARY_ONLY
GLU_TESS_COMBINE
GLU_TESS_COMBINE_DATA
GLU_TESS_COORD_TOO_LARGE
GLU_TESS_EDGE_FLAG
GLU_TESS_EDGE_FLAG_DATA
GLU_TESS_END
GLU_TESS_END_DATA
GLU_TESS_ERROR
GLU_TESS_ERROR1
GLU_TESS_ERROR2
GLU_TESS_ERROR3
GLU_TESS_ERROR4
GLU_TESS_ERROR5
GLU_TESS_ERROR6
GLU_TESS_ERROR7
GLU_TESS_ERROR8
GLU_TESS_ERROR_DATA
GLU_TESS_MISSING_BEGIN_CONTOUR
GLU_TESS_MISSING_BEGIN_POLYGON
GLU_TESS_MISSING_END_CONTOUR
GLU_TESS_MISSING_END_POLYGON
GLU_TESS_NEED_COMBINE_CALLBACK
GLU_TESS_TOLERANCE
GLU_TESS_VERTEX
GLU_TESS_VERTEX_DATA
GLU_TESS_WINDING_ABS_GEQ_TWO
GLU_TESS_WINDING_NEGATIVE
GLU_TESS_WINDING_NONZERO
GLU_TESS_WINDING_ODD
GLU_TESS_WINDING_POSITIVE
GLU_TESS_WINDING_RULE
GLU_TRUE
GLU_UNKNOWN
GLU_U_STEP
GLU_VERSION
GLU_VERSION_1_1
GLU_VERSION_1_2
GLU_VERSION_1_3
GLU_VERTEX
GLU_V_STEP
clone
gluBuild1DMipmaps
gluBuild2DMipmaps
gluCylinder
gluDeleteQuadric
gluDisk
gluErrorString
gluGetString
gluLookAt
gluNewQuadric
gluOrtho2D
gluPartialDisk
gluPerspective
gluPickMatrix
gluProject
gluProjectOrigin
gluQuadricDrawStyle
gluQuadricNormals
gluQuadricOrientation
gluQuadricTexture
gluRoundedBox
gluRoundedBoxOutline
gluScaleImage()
gluSphere
gluUnProject
gluUnProjectOrigin

### Slots

GLU_AUTO_LOAD_MATRIX

undocumented
GLU_BEGIN

undocumented
GLU_CCW

undocumented
GLU_CULLING

undocumented
GLU_CW

undocumented
GLU_DISPLAY_MODE

undocumented
GLU_DOMAIN_DISTANCE

undocumented
GLU_EDGE_FLAG

undocumented
GLU_END

undocumented
GLU_ERROR

undocumented
GLU_EXTENSIONS

undocumented
GLU_EXTERIOR

undocumented
GLU_FALSE

undocumented
GLU_FILL

undocumented
GLU_FLAT

undocumented
GLU_INSIDE

undocumented
GLU_INTERIOR

undocumented
GLU_INVALID_ENUM

undocumented
GLU_INVALID_OPERATION

undocumented
GLU_INVALID_VALUE

undocumented
GLU_LINE

undocumented
GLU_MAP1_TRIM_2

undocumented
GLU_MAP1_TRIM_3

undocumented
GLU_NONE

undocumented
GLU_NURBS_BEGIN

undocumented
GLU_NURBS_BEGIN_DATA

undocumented
GLU_NURBS_BEGIN_DATA_EXT

undocumented
GLU_NURBS_BEGIN_EXT

undocumented
GLU_NURBS_COLOR

undocumented
GLU_NURBS_COLOR_DATA

undocumented
GLU_NURBS_COLOR_DATA_EXT

undocumented
GLU_NURBS_COLOR_EXT

undocumented
GLU_NURBS_END

undocumented
GLU_NURBS_END_DATA

undocumented
GLU_NURBS_END_DATA_EXT

undocumented
GLU_NURBS_END_EXT

undocumented
GLU_NURBS_ERROR

undocumented
GLU_NURBS_ERROR1

undocumented
GLU_NURBS_ERROR10

undocumented
GLU_NURBS_ERROR11

undocumented
GLU_NURBS_ERROR12

undocumented
GLU_NURBS_ERROR13

undocumented
GLU_NURBS_ERROR14

undocumented
GLU_NURBS_ERROR15

undocumented
GLU_NURBS_ERROR16

undocumented
GLU_NURBS_ERROR17

undocumented
GLU_NURBS_ERROR18

undocumented
GLU_NURBS_ERROR19

undocumented
GLU_NURBS_ERROR2

undocumented
GLU_NURBS_ERROR20

undocumented
GLU_NURBS_ERROR21

undocumented
GLU_NURBS_ERROR22

undocumented
GLU_NURBS_ERROR23

undocumented
GLU_NURBS_ERROR24

undocumented
GLU_NURBS_ERROR25

undocumented
GLU_NURBS_ERROR26

undocumented
GLU_NURBS_ERROR27

undocumented
GLU_NURBS_ERROR28

undocumented
GLU_NURBS_ERROR29

undocumented
GLU_NURBS_ERROR3

undocumented
GLU_NURBS_ERROR30

undocumented
GLU_NURBS_ERROR31

undocumented
GLU_NURBS_ERROR32

undocumented
GLU_NURBS_ERROR33

undocumented
GLU_NURBS_ERROR34

undocumented
GLU_NURBS_ERROR35

undocumented
GLU_NURBS_ERROR36

undocumented
GLU_NURBS_ERROR37

undocumented
GLU_NURBS_ERROR4

undocumented
GLU_NURBS_ERROR5

undocumented
GLU_NURBS_ERROR6

undocumented
GLU_NURBS_ERROR7

undocumented
GLU_NURBS_ERROR8

undocumented
GLU_NURBS_ERROR9

undocumented
GLU_NURBS_MODE

undocumented
GLU_NURBS_MODE_EXT

undocumented
GLU_NURBS_NORMAL

undocumented
GLU_NURBS_NORMAL_DATA

undocumented
GLU_NURBS_NORMAL_DATA_EXT

undocumented
GLU_NURBS_NORMAL_EXT

undocumented
GLU_NURBS_RENDERER

undocumented
GLU_NURBS_RENDERER_EXT

undocumented
GLU_NURBS_TESSELLATOR

undocumented
GLU_NURBS_TESSELLATOR_EXT

undocumented
GLU_NURBS_TEXTURE_COORD

undocumented
GLU_NURBS_TEXTURE_COORD_DATA

undocumented
GLU_NURBS_TEX_COORD_DATA_EXT

undocumented
GLU_NURBS_TEX_COORD_EXT

undocumented
GLU_NURBS_VERTEX

undocumented
GLU_NURBS_VERTEX_DATA

undocumented
GLU_NURBS_VERTEX_DATA_EXT

undocumented
GLU_NURBS_VERTEX_EXT

undocumented
GLU_OBJECT_PARAMETRIC_ERROR

undocumented
GLU_OBJECT_PARAMETRIC_ERROR_EXT

undocumented
GLU_OBJECT_PATH_LENGTH

undocumented
GLU_OBJECT_PATH_LENGTH_EXT

undocumented
GLU_OUTLINE_PATCH

undocumented
GLU_OUTLINE_POLYGON

undocumented
GLU_OUTSIDE

undocumented
GLU_OUT_OF_MEMORY

undocumented
GLU_PARAMETRIC_ERROR

undocumented
GLU_PARAMETRIC_TOLERANCE

undocumented
GLU_PATH_LENGTH

undocumented
GLU_POINT

undocumented
GLU_SAMPLING_METHOD

undocumented
GLU_SAMPLING_TOLERANCE

undocumented
GLU_SILHOUETTE

undocumented
GLU_SMOOTH

undocumented
GLU_TESS_BEGIN

undocumented
GLU_TESS_BEGIN_DATA

undocumented
GLU_TESS_BOUNDARY_ONLY

undocumented
GLU_TESS_COMBINE

undocumented
GLU_TESS_COMBINE_DATA

undocumented
GLU_TESS_COORD_TOO_LARGE

undocumented
GLU_TESS_EDGE_FLAG

undocumented
GLU_TESS_EDGE_FLAG_DATA

undocumented
GLU_TESS_END

undocumented
GLU_TESS_END_DATA

undocumented
GLU_TESS_ERROR

undocumented
GLU_TESS_ERROR1

undocumented
GLU_TESS_ERROR2

undocumented
GLU_TESS_ERROR3

undocumented
GLU_TESS_ERROR4

undocumented
GLU_TESS_ERROR5

undocumented
GLU_TESS_ERROR6

undocumented
GLU_TESS_ERROR7

undocumented
GLU_TESS_ERROR8

undocumented
GLU_TESS_ERROR_DATA

undocumented
GLU_TESS_MISSING_BEGIN_CONTOUR

undocumented
GLU_TESS_MISSING_BEGIN_POLYGON

undocumented
GLU_TESS_MISSING_END_CONTOUR

undocumented
GLU_TESS_MISSING_END_POLYGON

undocumented
GLU_TESS_NEED_COMBINE_CALLBACK

undocumented
GLU_TESS_TOLERANCE

undocumented
GLU_TESS_VERTEX

undocumented
GLU_TESS_VERTEX_DATA

undocumented
GLU_TESS_WINDING_ABS_GEQ_TWO

undocumented
GLU_TESS_WINDING_NEGATIVE

undocumented
GLU_TESS_WINDING_NONZERO

undocumented
GLU_TESS_WINDING_ODD

undocumented
GLU_TESS_WINDING_POSITIVE

undocumented
GLU_TESS_WINDING_RULE

undocumented
GLU_TRUE

undocumented
GLU_UNKNOWN

undocumented
GLU_U_STEP

undocumented
GLU_VERSION

undocumented
GLU_VERSION_1_1

undocumented
GLU_VERSION_1_2

undocumented
GLU_VERSION_1_3

undocumented
GLU_VERTEX

undocumented
GLU_V_STEP

undocumented
clone

undocumented
gluBuild1DMipmaps

undocumented
gluBuild2DMipmaps

undocumented
gluCylinder

undocumented
gluDeleteQuadric

undocumented
gluDisk

undocumented
gluErrorString

undocumented
gluGetString

undocumented
gluLookAt

undocumented
gluNewQuadric

undocumented
gluOrtho2D

undocumented
gluPartialDisk

undocumented
gluPerspective

undocumented
gluPickMatrix

undocumented
gluProject

undocumented
gluProjectOrigin

undocumented
gluQuadricDrawStyle

undocumented
gluQuadricNormals

undocumented
gluQuadricOrientation

undocumented
gluQuadricTexture

undocumented
gluRoundedBox

undocumented
gluRoundedBoxOutline

undocumented
gluScaleImage(formatIn, widthIn, heightIn, typeIn, dataSeqIn, widthOut, heightOut, typeOut, dataSeqOut)

Scales the image data in dataSeqIn and outputs the result to dataSeqOut. Returns error code as a Number.
gluSphere

undocumented
gluUnProject

undocumented
gluUnProjectOrigin

undocumented

## GLUQuadric

Module: OpenGL
Category: Graphics

### Slot Index

setTexture
texture
useFillStyle
useFlatNormals
useInsideOrientation
useLineStyle
useNoNormals
useOutsideOrientation
usePointStyle
useSilhoutteStyle
useSmoothNormals

### Slots

setTexture

undocumented
texture

undocumented
useFillStyle

undocumented
useFlatNormals

undocumented
useInsideOrientation

undocumented
useLineStyle

undocumented
useNoNormals

undocumented
useOutsideOrientation

undocumented
usePointStyle

undocumented
useSilhoutteStyle

undocumented
useSmoothNormals

undocumented

## GLUT

Module: OpenGL
Category: Graphics

### Slot Index

GLUT_ACCUM
GLUT_ACTIVE_ALT
GLUT_ACTIVE_CTRL
GLUT_ACTIVE_SHIFT
GLUT_ALPHA
GLUT_BITMAP_8_BY_13
GLUT_BITMAP_9_BY_15
GLUT_BITMAP_HELVETICA_10
GLUT_BITMAP_HELVETICA_12
GLUT_BITMAP_HELVETICA_18
GLUT_BITMAP_TIMES_ROMAN_10
GLUT_BITMAP_TIMES_ROMAN_24
GLUT_BLUE
GLUT_CURSOR_BOTTOM_LEFT_CORNER
GLUT_CURSOR_BOTTOM_RIGHT_CORNER
GLUT_CURSOR_BOTTOM_SIDE
GLUT_CURSOR_CROSSHAIR
GLUT_CURSOR_CYCLE
GLUT_CURSOR_DESTROY
GLUT_CURSOR_FULL_CROSSHAIR
GLUT_CURSOR_HELP
GLUT_CURSOR_INFO
GLUT_CURSOR_INHERIT
GLUT_CURSOR_LEFT_ARROW
GLUT_CURSOR_LEFT_RIGHT
GLUT_CURSOR_LEFT_SIDE
GLUT_CURSOR_NONE
GLUT_CURSOR_RIGHT_ARROW
GLUT_CURSOR_RIGHT_SIDE
GLUT_CURSOR_SPRAY
GLUT_CURSOR_TEXT
GLUT_CURSOR_TOP_LEFT_CORNER
GLUT_CURSOR_TOP_RIGHT_CORNER
GLUT_CURSOR_TOP_SIDE
GLUT_CURSOR_UP_DOWN
GLUT_CURSOR_WAIT
GLUT_DEPTH
GLUT_DEVICE_IGNORE_KEY_REPEAT
GLUT_DEVICE_KEY_REPEAT
GLUT_DISPLAY_MODE_POSSIBLE
GLUT_DOUBLE
GLUT_DOWN
GLUT_ELAPSED_TIME
GLUT_ENTERED
GLUT_FULLY_COVERED
GLUT_FULLY_RETAINED
GLUT_GAME_MODE_ACTIVE
GLUT_GAME_MODE_DISPLAY_CHANGED
GLUT_GAME_MODE_HEIGHT
GLUT_GAME_MODE_PIXEL_DEPTH
GLUT_GAME_MODE_POSSIBLE
GLUT_GAME_MODE_REFRESH_RATE
GLUT_GAME_MODE_WIDTH
GLUT_GREEN
GLUT_HAS_DIAL_AND_BUTTON_BOX
GLUT_HAS_JOYSTICK
GLUT_HAS_KEYBOARD
GLUT_HAS_MOUSE
GLUT_HAS_OVERLAY
GLUT_HAS_SPACEBALL
GLUT_HAS_TABLET
GLUT_HIDDEN
GLUT_INDEX
GLUT_INIT_DISPLAY_MODE
GLUT_INIT_WINDOW_HEIGHT
GLUT_INIT_WINDOW_WIDTH
GLUT_INIT_WINDOW_X
GLUT_INIT_WINDOW_Y
GLUT_JOYSTICK_AXES
GLUT_JOYSTICK_BUTTONS
GLUT_JOYSTICK_BUTTON_A
GLUT_JOYSTICK_BUTTON_B
GLUT_JOYSTICK_BUTTON_C
GLUT_JOYSTICK_BUTTON_D
GLUT_JOYSTICK_POLL_RATE
GLUT_KEY_BACKSLASH
GLUT_KEY_COMMA
GLUT_KEY_DECIMAL
GLUT_KEY_DEL
GLUT_KEY_DELETE
GLUT_KEY_DOWN
GLUT_KEY_END
GLUT_KEY_EQUAL
GLUT_KEY_ESC
GLUT_KEY_F1
GLUT_KEY_F10
GLUT_KEY_F11
GLUT_KEY_F12
GLUT_KEY_F2
GLUT_KEY_F3
GLUT_KEY_F4
GLUT_KEY_F5
GLUT_KEY_F6
GLUT_KEY_F7
GLUT_KEY_F8
GLUT_KEY_F9
GLUT_KEY_GRAVE
GLUT_KEY_HOME
GLUT_KEY_INSERT
GLUT_KEY_LBRACKET
GLUT_KEY_LEFT
GLUT_KEY_PAGE_DOWN
GLUT_KEY_PAGE_UP
GLUT_KEY_QUOTE
GLUT_KEY_RBRACKET
GLUT_KEY_REPEAT_DEFAULT
GLUT_KEY_REPEAT_OFF
GLUT_KEY_REPEAT_ON
GLUT_KEY_RETURN
GLUT_KEY_RIGHT
GLUT_KEY_SEMICOLON
GLUT_KEY_SLASH
GLUT_KEY_SPACE
GLUT_KEY_TAB
GLUT_KEY_UP
GLUT_LAYER_IN_USE
GLUT_LEFT
GLUT_LEFT_BUTTON
GLUT_LUMINANCE
GLUT_MENU_IN_USE
GLUT_MENU_NOT_IN_USE
GLUT_MENU_NUM_ITEMS
GLUT_MIDDLE_BUTTON
GLUT_MULTISAMPLE
GLUT_NORMAL
GLUT_NORMAL_DAMAGED
GLUT_NOT_VISIBLE
GLUT_NUM_BUTTON_BOX_BUTTONS
GLUT_NUM_DIALS
GLUT_NUM_MOUSE_BUTTONS
GLUT_NUM_SPACEBALL_BUTTONS
GLUT_NUM_TABLET_BUTTONS
GLUT_OVERLAY
GLUT_OVERLAY_DAMAGED
GLUT_OVERLAY_POSSIBLE
GLUT_OWNS_JOYSTICK
GLUT_PARTIALLY_RETAINED
GLUT_RED
GLUT_RGB
GLUT_RGBA
GLUT_RIGHT_BUTTON
GLUT_SCREEN_HEIGHT
GLUT_SCREEN_HEIGHT_MM
GLUT_SCREEN_WIDTH
GLUT_SCREEN_WIDTH_MM
GLUT_SINGLE
GLUT_STENCIL
GLUT_STEREO
GLUT_STROKE_MONO_ROMAN
GLUT_STROKE_ROMAN
GLUT_TRANSPARENT_INDEX
GLUT_UP
GLUT_VIDEO_RESIZE_HEIGHT
GLUT_VIDEO_RESIZE_HEIGHT_DELTA
GLUT_VIDEO_RESIZE_IN_USE
GLUT_VIDEO_RESIZE_POSSIBLE
GLUT_VIDEO_RESIZE_WIDTH
GLUT_VIDEO_RESIZE_WIDTH_DELTA
GLUT_VIDEO_RESIZE_X
GLUT_VIDEO_RESIZE_X_DELTA
GLUT_VIDEO_RESIZE_Y
GLUT_VIDEO_RESIZE_Y_DELTA
GLUT_VISIBLE
GLUT_WINDOW_ACCUM_ALPHA_SIZE
GLUT_WINDOW_ACCUM_BLUE_SIZE
GLUT_WINDOW_ACCUM_GREEN_SIZE
GLUT_WINDOW_ACCUM_RED_SIZE
GLUT_WINDOW_ALPHA_SIZE
GLUT_WINDOW_BLUE_SIZE
GLUT_WINDOW_BUFFER_SIZE
GLUT_WINDOW_COLORMAP_SIZE
GLUT_WINDOW_CURSOR
GLUT_WINDOW_DEPTH_SIZE
GLUT_WINDOW_DOUBLEBUFFER
GLUT_WINDOW_FORMAT_ID
GLUT_WINDOW_GREEN_SIZE
GLUT_WINDOW_HEIGHT
GLUT_WINDOW_NUM_CHILDREN
GLUT_WINDOW_NUM_SAMPLES
GLUT_WINDOW_PARENT
GLUT_WINDOW_RED_SIZE
GLUT_WINDOW_RGBA
GLUT_WINDOW_STENCIL_SIZE
GLUT_WINDOW_STEREO
GLUT_WINDOW_WIDTH
GLUT_WINDOW_X
GLUT_WINDOW_Y
clone
glutAddMenuEntry
glutAddSubMenu
glutAttachMenu
glutChangeToMenuEntry
glutChangeToSubMenu
glutCreateMenu
glutCreateSubWindow
glutCreateWindow
glutDestroyMenu
glutDestroyWindow
glutDetachMenu
glutDisplayFunc
glutEnterGameMode
glutEntryFunc
glutEventTarget
glutFullScreen
glutGameModeString
glutGet
glutGetMenu
glutGetModifiers
glutGetWindow
glutHideWindow
glutIconifyWindow
glutIgnoreKeyRepeat
glutInit
glutInitDisplayMode
glutInitWindowPosition
glutInitWindowSize
glutJoystickFunc
glutKeyboardFunc
glutKeyboardUpFunc
glutLeaveGameMode
glutMainLoop
glutMotionFunc
glutMouseFunc
glutPassiveMotionFunc
glutPopWindow
glutPositionWindow
glutPostRedisplay
glutPushWindow
glutRemoveMenuItem
glutReshapeFunc
glutReshapeWindow
glutSetCursor
glutSetIconTitle
glutSetMenu
glutSetWindow
glutSetWindowTitle
glutShowWindow
glutSolidCone
glutSolidCube
glutSolidDodecahedron
glutSolidIcosahedron
glutSolidOctahedron
glutSolidSphere
glutSolidTeapot
glutSolidTetrahedron
glutSolidTorus
glutSpecialFunc
glutSpecialUpFunc
glutStrokeCharacter
glutStrokeString
glutSwapBuffers
glutTimerFunc
glutWarpPointer
glutWireCone
glutWireCube
glutWireDodecahedron
glutWireIcosahedron
glutWireOctahedron
glutWireSphere
glutWireTeapot
glutWireTetrahedron
glutWireTorus

### Slots

GLUT_ACCUM

undocumented
GLUT_ACTIVE_ALT

undocumented
GLUT_ACTIVE_CTRL

undocumented
GLUT_ACTIVE_SHIFT

undocumented
GLUT_ALPHA

undocumented
GLUT_BITMAP_8_BY_13

undocumented
GLUT_BITMAP_9_BY_15

undocumented
GLUT_BITMAP_HELVETICA_10

undocumented
GLUT_BITMAP_HELVETICA_12

undocumented
GLUT_BITMAP_HELVETICA_18

undocumented
GLUT_BITMAP_TIMES_ROMAN_10

undocumented
GLUT_BITMAP_TIMES_ROMAN_24

undocumented
GLUT_BLUE

undocumented
GLUT_CURSOR_BOTTOM_LEFT_CORNER

undocumented
GLUT_CURSOR_BOTTOM_RIGHT_CORNER

undocumented
GLUT_CURSOR_BOTTOM_SIDE

undocumented
GLUT_CURSOR_CROSSHAIR

undocumented
GLUT_CURSOR_CYCLE

undocumented
GLUT_CURSOR_DESTROY

undocumented
GLUT_CURSOR_FULL_CROSSHAIR

undocumented
GLUT_CURSOR_HELP

undocumented
GLUT_CURSOR_INFO

undocumented
GLUT_CURSOR_INHERIT

undocumented
GLUT_CURSOR_LEFT_ARROW

undocumented
GLUT_CURSOR_LEFT_RIGHT

undocumented
GLUT_CURSOR_LEFT_SIDE

undocumented
GLUT_CURSOR_NONE

undocumented
GLUT_CURSOR_RIGHT_ARROW

undocumented
GLUT_CURSOR_RIGHT_SIDE

undocumented
GLUT_CURSOR_SPRAY

undocumented
GLUT_CURSOR_TEXT

undocumented
GLUT_CURSOR_TOP_LEFT_CORNER

undocumented
GLUT_CURSOR_TOP_RIGHT_CORNER

undocumented
GLUT_CURSOR_TOP_SIDE

undocumented
GLUT_CURSOR_UP_DOWN

undocumented
GLUT_CURSOR_WAIT

undocumented
GLUT_DEPTH

undocumented
GLUT_DEVICE_IGNORE_KEY_REPEAT

undocumented
GLUT_DEVICE_KEY_REPEAT

undocumented
GLUT_DISPLAY_MODE_POSSIBLE

undocumented
GLUT_DOUBLE

undocumented
GLUT_DOWN

undocumented
GLUT_ELAPSED_TIME

undocumented
GLUT_ENTERED

undocumented
GLUT_FULLY_COVERED

undocumented
GLUT_FULLY_RETAINED

undocumented
GLUT_GAME_MODE_ACTIVE

undocumented
GLUT_GAME_MODE_DISPLAY_CHANGED

undocumented
GLUT_GAME_MODE_HEIGHT

undocumented
GLUT_GAME_MODE_PIXEL_DEPTH

undocumented
GLUT_GAME_MODE_POSSIBLE

undocumented
GLUT_GAME_MODE_REFRESH_RATE

undocumented
GLUT_GAME_MODE_WIDTH

undocumented
GLUT_GREEN

undocumented
GLUT_HAS_DIAL_AND_BUTTON_BOX

undocumented
GLUT_HAS_JOYSTICK

undocumented
GLUT_HAS_KEYBOARD

undocumented
GLUT_HAS_MOUSE

undocumented
GLUT_HAS_OVERLAY

undocumented
GLUT_HAS_SPACEBALL

undocumented
GLUT_HAS_TABLET

undocumented
GLUT_HIDDEN

undocumented
GLUT_INDEX

undocumented
GLUT_INIT_DISPLAY_MODE

undocumented
GLUT_INIT_WINDOW_HEIGHT

undocumented
GLUT_INIT_WINDOW_WIDTH

undocumented
GLUT_INIT_WINDOW_X

undocumented
GLUT_INIT_WINDOW_Y

undocumented
GLUT_JOYSTICK_AXES

undocumented
GLUT_JOYSTICK_BUTTONS

undocumented
GLUT_JOYSTICK_BUTTON_A

undocumented
GLUT_JOYSTICK_BUTTON_B

undocumented
GLUT_JOYSTICK_BUTTON_C

undocumented
GLUT_JOYSTICK_BUTTON_D

undocumented
GLUT_JOYSTICK_POLL_RATE

undocumented
GLUT_KEY_BACKSLASH

undocumented
GLUT_KEY_COMMA

undocumented
GLUT_KEY_DECIMAL

undocumented
GLUT_KEY_DEL

undocumented
GLUT_KEY_DELETE

undocumented
GLUT_KEY_DOWN

undocumented
GLUT_KEY_END

undocumented
GLUT_KEY_EQUAL

undocumented
GLUT_KEY_ESC

undocumented
GLUT_KEY_F1

undocumented
GLUT_KEY_F10

undocumented
GLUT_KEY_F11

undocumented
GLUT_KEY_F12

undocumented
GLUT_KEY_F2

undocumented
GLUT_KEY_F3

undocumented
GLUT_KEY_F4

undocumented
GLUT_KEY_F5

undocumented
GLUT_KEY_F6

undocumented
GLUT_KEY_F7

undocumented
GLUT_KEY_F8

undocumented
GLUT_KEY_F9

undocumented
GLUT_KEY_GRAVE

undocumented
GLUT_KEY_HOME

undocumented
GLUT_KEY_INSERT

undocumented
GLUT_KEY_LBRACKET

undocumented
GLUT_KEY_LEFT

undocumented
GLUT_KEY_PAGE_DOWN

undocumented
GLUT_KEY_PAGE_UP

undocumented
GLUT_KEY_QUOTE

undocumented
GLUT_KEY_RBRACKET

undocumented
GLUT_KEY_REPEAT_DEFAULT

undocumented
GLUT_KEY_REPEAT_OFF

undocumented
GLUT_KEY_REPEAT_ON

undocumented
GLUT_KEY_RETURN

undocumented
GLUT_KEY_RIGHT

undocumented
GLUT_KEY_SEMICOLON

undocumented
GLUT_KEY_SLASH

undocumented
GLUT_KEY_SPACE

undocumented
GLUT_KEY_TAB

undocumented
GLUT_KEY_UP

undocumented
GLUT_LAYER_IN_USE

undocumented
GLUT_LEFT

undocumented
GLUT_LEFT_BUTTON

undocumented
GLUT_LUMINANCE

undocumented
GLUT_MENU_IN_USE

undocumented
GLUT_MENU_NOT_IN_USE

undocumented
GLUT_MENU_NUM_ITEMS

undocumented
GLUT_MIDDLE_BUTTON

undocumented
GLUT_MULTISAMPLE

undocumented
GLUT_NORMAL

undocumented
GLUT_NORMAL_DAMAGED

undocumented
GLUT_NOT_VISIBLE

undocumented
GLUT_NUM_BUTTON_BOX_BUTTONS

undocumented
GLUT_NUM_DIALS

undocumented
GLUT_NUM_MOUSE_BUTTONS

undocumented
GLUT_NUM_SPACEBALL_BUTTONS

undocumented
GLUT_NUM_TABLET_BUTTONS

undocumented
GLUT_OVERLAY

undocumented
GLUT_OVERLAY_DAMAGED

undocumented
GLUT_OVERLAY_POSSIBLE

undocumented
GLUT_OWNS_JOYSTICK

undocumented
GLUT_PARTIALLY_RETAINED

undocumented
GLUT_RED

undocumented
GLUT_RGB

undocumented
GLUT_RGBA

undocumented
GLUT_RIGHT_BUTTON

undocumented
GLUT_SCREEN_HEIGHT

undocumented
GLUT_SCREEN_HEIGHT_MM

undocumented
GLUT_SCREEN_WIDTH

undocumented
GLUT_SCREEN_WIDTH_MM

undocumented
GLUT_SINGLE

undocumented
GLUT_STENCIL

undocumented
GLUT_STEREO

undocumented
GLUT_STROKE_MONO_ROMAN

undocumented
GLUT_STROKE_ROMAN

undocumented
GLUT_TRANSPARENT_INDEX

undocumented
GLUT_UP

undocumented
GLUT_VIDEO_RESIZE_HEIGHT

undocumented
GLUT_VIDEO_RESIZE_HEIGHT_DELTA

undocumented
GLUT_VIDEO_RESIZE_IN_USE

undocumented
GLUT_VIDEO_RESIZE_POSSIBLE

undocumented
GLUT_VIDEO_RESIZE_WIDTH

undocumented
GLUT_VIDEO_RESIZE_WIDTH_DELTA

undocumented
GLUT_VIDEO_RESIZE_X

undocumented
GLUT_VIDEO_RESIZE_X_DELTA

undocumented
GLUT_VIDEO_RESIZE_Y

undocumented
GLUT_VIDEO_RESIZE_Y_DELTA

undocumented
GLUT_VISIBLE

undocumented
GLUT_WINDOW_ACCUM_ALPHA_SIZE

undocumented
GLUT_WINDOW_ACCUM_BLUE_SIZE

undocumented
GLUT_WINDOW_ACCUM_GREEN_SIZE

undocumented
GLUT_WINDOW_ACCUM_RED_SIZE

undocumented
GLUT_WINDOW_ALPHA_SIZE

undocumented
GLUT_WINDOW_BLUE_SIZE

undocumented
GLUT_WINDOW_BUFFER_SIZE

undocumented
GLUT_WINDOW_COLORMAP_SIZE

undocumented
GLUT_WINDOW_CURSOR

undocumented
GLUT_WINDOW_DEPTH_SIZE

undocumented
GLUT_WINDOW_DOUBLEBUFFER

undocumented
GLUT_WINDOW_FORMAT_ID

undocumented
GLUT_WINDOW_GREEN_SIZE

undocumented
GLUT_WINDOW_HEIGHT

undocumented
GLUT_WINDOW_NUM_CHILDREN

undocumented
GLUT_WINDOW_NUM_SAMPLES

undocumented
GLUT_WINDOW_PARENT

undocumented
GLUT_WINDOW_RED_SIZE

undocumented
GLUT_WINDOW_RGBA

undocumented
GLUT_WINDOW_STENCIL_SIZE

undocumented
GLUT_WINDOW_STEREO

undocumented
GLUT_WINDOW_WIDTH

undocumented
GLUT_WINDOW_X

undocumented
GLUT_WINDOW_Y

undocumented
clone

undocumented
glutAddMenuEntry

undocumented
glutAddSubMenu

undocumented
glutAttachMenu

undocumented
glutChangeToMenuEntry

undocumented
glutChangeToSubMenu

undocumented
glutCreateMenu

undocumented
glutCreateSubWindow

undocumented
glutCreateWindow

undocumented
glutDestroyMenu

undocumented
glutDestroyWindow

undocumented
glutDetachMenu

undocumented
glutDisplayFunc

undocumented
glutEnterGameMode

undocumented
glutEntryFunc

undocumented
glutEventTarget

undocumented
glutFullScreen

undocumented
glutGameModeString

undocumented
glutGet

undocumented
glutGetMenu

undocumented
glutGetModifiers

undocumented
glutGetWindow

undocumented
glutHideWindow

undocumented
glutIconifyWindow

undocumented
glutIgnoreKeyRepeat

undocumented
glutInit

undocumented
glutInitDisplayMode

undocumented
glutInitWindowPosition

undocumented
glutInitWindowSize

undocumented
glutJoystickFunc

undocumented
glutKeyboardFunc

undocumented
glutKeyboardUpFunc

undocumented
glutLeaveGameMode

undocumented
glutMainLoop

undocumented
glutMotionFunc

undocumented
glutMouseFunc

undocumented
glutPassiveMotionFunc

undocumented
glutPopWindow

undocumented
glutPositionWindow

undocumented
glutPostRedisplay

undocumented
glutPushWindow

undocumented
glutRemoveMenuItem

undocumented
glutReshapeFunc

undocumented
glutReshapeWindow

undocumented
glutSetCursor

undocumented
glutSetIconTitle

undocumented
glutSetMenu

undocumented
glutSetWindow

undocumented
glutSetWindowTitle

undocumented
glutShowWindow

undocumented
glutSolidCone

undocumented
glutSolidCube

undocumented
glutSolidDodecahedron

undocumented
glutSolidIcosahedron

undocumented
glutSolidOctahedron

undocumented
glutSolidSphere

undocumented
glutSolidTeapot

undocumented
glutSolidTetrahedron

undocumented
glutSolidTorus

undocumented
glutSpecialFunc

undocumented
glutSpecialUpFunc

undocumented
glutStrokeCharacter

undocumented
glutStrokeString

undocumented
glutSwapBuffers

undocumented
glutTimerFunc

undocumented
glutWarpPointer

undocumented
glutWireCone

undocumented
glutWireCube

undocumented
glutWireDodecahedron

undocumented
glutWireIcosahedron

undocumented
glutWireOctahedron

undocumented
glutWireSphere

undocumented
glutWireTeapot

undocumented
glutWireTetrahedron

undocumented
glutWireTorus

undocumented

## Host

Module: Socket
Category: Networking

### Slot Index

address
ip
name
setAddress
setName()

### Slots

address

Returns the ip address. A DNS lookup is done in the background if the address is not already known. Returns an error on lookup failure.
ip

undocumented
name

Returns name.
setAddress

undocumented
setName(aString)

Set's the host name. Return self.

## HttpParser

Module: Volcano

### Slot Index

isFinished
parse
rawReset

### Slots

isFinished

Returns true if the parser has fully completed parsing of the content in the parse buffer and false if it hasn't.
parse

Parsers the Http request stored in the parseBuffer slot. Sets slots on self using the values parsed. Returns self if successful or an Error if the parse fails.
rawReset

Resets the parser state to prepare for a new parse. Returns self.

## IPAddress

Module: Socket
Category: Networking

### Description

Object representation of an Internet Protocol Address.

### Slot Index

asSimpleString
asString
ip
port
setHostName()
setIp
setPort
slotDescriptionMap

### Slots

asSimpleString

undocumented
asString

undocumented
ip

undocumented
port

undocumented
setHostName(hostName)

Translates hostName to an IP using asynchronous DNS and sets the host attribute. Returns self.
setIp

undocumented
setPort

undocumented
slotDescriptionMap

undocumented

## Image

Module: Image
Category: Graphics

### Description

The Image object can read and draw images and provide the image data as a buffer. Example use;

    image = Image clone open("curly.png")
    image draw
    image scaleTo(image width / 2, image height / 2)
    image save("curly.tiff")

When loading an attempt will be made to convert the image into whichever of the following formats it is closest to: L8, LA8, RGB8, RGBA8.

Currently supported formats include PNG(which supports alpha), JPG and TIFF.

### Slot Index

IsPowerOf2
addAlpha
averageColor
baselineHeight
changed
componentCount
crop()
data
decodingHeightHint
decodingWidthHint
draw
drawScaledTexture
drawTexture
encodingQuality
error
flipX
flipY
glFormat
glFormats
grabScreen
hasWhiteBackground
height
isL8
isLA8
isRGB8
isRGBA8
isWhiteAt
open()
path
removeAlpha
resizedTo()
resizedTo()
save()
scaledTo
setDataWidthHeightComponentCount()
setDecodingHeightHint()
setDecodingWidthHint()
setEncodingQuality()
setPath()
sizeInBytes
sizeIsPowerOf2
texture
textureHeight
textureWidth
updateTexture
width
with

### Slots

IsPowerOf2

undocumented
addAlpha

Adds an opaque alpha component if the image is in RGB format and does not already contain one. Returns self.
averageColor

Returns the average RGB color of all pixels in the image.
baselineHeight

Returns the pixel height (relative to the bottom of the image) which first contains a non-white pixel or -1 if no baseline is found.
changed

undocumented
componentCount

Returns the number of color components in the receiver as a Number.
crop(x, y, width, height)

Crops the image to the specified values. Returns self. Raises an exception on error.
data

Returns a Buffer primitive containing the image data (loading it first if needed). Manipulating this data will effect what is drawn when the receiver's draw method is called.
decodingHeightHint

Returns the decoding height hint.
decodingWidthHint

Returns the decoding width hint.
draw

undocumented
drawScaledTexture

undocumented
drawTexture

undocumented
encodingQuality

Returns the encodingQuality setting.
error

Returns a String containing the current error or nil if there is no error.
flipX

Flips the image on the horizonal plane (left/right mirror). Returns self.
flipY

Flips the image on the vertical plane (top/bottom mirror). Returns self.
glFormat

undocumented
glFormats

undocumented
grabScreen

undocumented
hasWhiteBackground

undocumented
height

Returns the image hieght.
isL8

Returns true if the receiver is in L8 (8bit Luminance) format, false otherwise.
isLA8

Returns true if the receiver is in LA8 (8bit Luminance-Alpha) format, false otherwise.
isRGB8

Returns true if the receiver is in RGB8 format, false otherwise.
isRGBA8

Returns true if the receiver is in RGBA8 format, false otherwise.
isWhiteAt

undocumented
open(optionalPathString)

Sets the path to optionalPathString if provided and opens the image file. Returns self on success, Nil on failure.
path

Returns the image path.
removeAlpha

Removes the alpha component if the image contains one. Returns self.
resizedTo(newWidth, newHeight)

Scales the image up to newWidth x newHeight. Returns the newly scaled image.
resizedTo(width, height)

Returns a new image of the receiver resized to the given width and height. Raises an exception on error.
save(optionalPathString)

Sets the path to optionalPathString if provided and saves the image in the format specified by the path extension. Returns self on success, nil on failure.
scaledTo

undocumented
setDataWidthHeightComponentCount(aSequence, width, height, componentCount)

Sets the image data and it's parameters. Returns self.
setDecodingHeightHint(width)

Sets the decoding height hint. Returns self.
setDecodingWidthHint(width)

Sets the decoding width hint. Returns self.
setEncodingQuality(aNumber)

Sets the image encoding quality (range is 0.0 - 1.0, 1.0 with being the highest).
setPath(aString)

Sets the image path. Returns self.
sizeInBytes

undocumented
sizeIsPowerOf2

undocumented
texture

undocumented
textureHeight

undocumented
textureWidth

undocumented
updateTexture

undocumented
width

Returns the image width.
with

undocumented

## Importer

Module: Core

### Description

A simple search path based auto-importer.

### Slot Index

AddonImporter
FileImporter
addSearchPath()
autoImportingForward
import()
importers
paths
removeSearchPath()
turnOff
turnOn

### Slots

AddonImporter

An Importer for addon modules.
FileImporter

An Importer for local source files.
addSearchPath(path)

Add a search path to the auto importer. Relative paths are made absolute before adding.
autoImportingForward

A forward method implementation placed in the Lobby when Importing is turned on.
import(originalCallMessage)

Imports an object or addon for the given Message.
importers

List of Importer objects.
paths

List of paths the proto importer will check while searching for protos to load.
removeSearchPath(path)

Removes a search path from the auto importer. Relative paths should be removed from the same working directory as they were added.
turnOff

Turns off the Importer. Returns self.
turnOn

Turns on the Importer. Returns self.

## LZODecoder

Module: LZO
Category: Compression

### Description

The LZO object can be used to Z compress and uncompress data. Example use;

    bf = LZO clone
    bf beginProcessing
    bf inputBuffer appendSeq("this is a message")
    bf process
    bf endProcess
    bf outputBuffer // this contains the encoded data

### Slot Index

beginProcessing
endProcessing
inputBuffer
outputBuffer
process
setInputBuffer
setOutputBuffer

### Slots

beginProcessing

Initializes the algorithm.
endProcessing

Finish processing remaining bytes of inputBuffer.
inputBuffer

undocumented
outputBuffer

undocumented
process

Process the inputBuffer and appends the result to the outputBuffer. The processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.
setInputBuffer

undocumented
setOutputBuffer

undocumented

## LZOEncoder

Module: LZO
Category: Compression

### Description

The LZO object can be used to Z compress and uncompress data. Example use;

    bf = LZO clone
    bf beginProcessing
    bf inputBuffer appendSeq("this is a message")
    bf process
    bf endProcess
    bf outputBuffer // this contains the encoded data

### Slot Index

beginProcessing
endProcessing
inputBuffer
outputBuffer
process
setInputBuffer
setOutputBuffer

### Slots

beginProcessing

Initializes the algorithm.
endProcessing

Finish processing remaining bytes of inputBuffer.
inputBuffer

undocumented
outputBuffer

undocumented
process

Process the inputBuffer and appends the result to the outputBuffer. The processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.
setInputBuffer

undocumented
setOutputBuffer

undocumented

## LibSndFile

Module: LibSndFile
Category: Media

### Description

An object for encoding and decoding audio and video streams.

### Slot Index

channels
close
format
formatNames
isRunning
openForReading
openForWriting
outputBuffer
path
read()
sampleRate
setChannels
setFormat
setPath
setSampleRate
stop
write

### Slots

channels

undocumented
close

undocumented
format

undocumented
formatNames

Returns a list of strings with the names of the supported codecs.")
isRunning

Returns true if it's running, false otherwise.
openForReading

undocumented
openForWriting

undocumented
outputBuffer

Returns the output buffer.
path

undocumented
read(numberOfFrames)

Read a given number of frames (sample pairs).")
sampleRate

undocumented
setChannels

undocumented
setFormat

undocumented
setPath

undocumented
setSampleRate

undocumented
stop

Stops processing data.
write

undocumented

## Linker

Module: Loki
Category: Compilers

### Description

An object that enables low level introspection into a running Io VM.

### Slot Index

bytesToHexSeq()
hexSeqToBytes()
makeCFunction()

### Slots

bytesToHexSeq(aSeq)

Returns a Sequence containing a hex representation of aSeq.
hexSeqToBytes(aSeq)

Returns a Sequence containing a binary representation of the hex data in aSeq.
makeCFunction(aSeq, slotName, object)

Creates a CFunction which users the beginning address of the data in aSeq as it's function pointer and adds the CFunction to the given object on slot slotName.

## List

Module: Core
Category: DataStructures

### Description

A mutable array of values. The first index is 0.")

### Slot Index

ListCursor
anyOne
append()
appendIfAbsent()
appendSeq()
asEncodedList
asJson
asMap
asMessage
asMessage Converts each element in the list to unnamed messages
asSimpleString
asString
asVector
at()
atInsert()
atPut()
average
capacity
contains()
containsAll()
containsAny()
containsIdenticalTo()
copy()
cursor
detect()
difference()
empty
exSlice
first()
flatten
foreach()
fromEncodedList()
indexOf()
insertAfter()
insertAt()
insertBefore()
intersect()
isEmpty
isNotEmpty
itemCopy
join()
justSerialized()
last()
map()
mapFromKey
mapInPlace
max
min
pop
preallocateToSize()
prepend()
push()
reduce
remove()
removeAll
removeAt()
removeFirst
removeLast
removeSeq
reverse
reverseForeach()
reverseInPlace
reverseReduce
second
select()
selectInPlace
setSize
shuffle
shuffleInPlace
size
slice()
sliceInPlace()
sort
sortBy
sortByKey
sortInPlace()
sortInPlaceBy()
sortKey
sum
swapIndices()
third
union()
unique
uniqueCount
with()

### Slots

ListCursor

undocumented
anyOne

Returns a random element of the receiver or nil if the receiver is empty.
append(anObject1, anObject2, ...)

Appends the arguments to the end of the list. Returns self.
appendIfAbsent(anObject)

Adds each value not already contained by the receiver, returns self.
appendSeq(aList1, aList2, ...)

Add the items in the lists to the receiver. Returns self.
asEncodedList

Returns a Sequence with an encoding of the list. Nil, Number and Symbol objects are copied into the encoding, for other object types, referenceIdForObject(item) will be called to request a reference id for the object. Also see: List fromEncodedList.
asJson

undocumented
asMap

The reverse of Map asList: converts a list of lists (key-value pairs) into a Map. The first item of each pair list must be a sequence. The second item is the value.
asMessage

undocumented
asMessage Converts each element in the list to unnamed messages

with their cached result set to the value of the element (without activating). Returns an unnamed message whose arguments map 1:1 with the elements (after being converted to messages themselves).
asSimpleString

undocumented
asString

undocumented
asVector

undocumented
at(index)

Returns the value at index. Returns Nil if the index is out of bounds.
atInsert(index, anObject)

Inserts anObject at the index specified by index. Adds anObject if the index equals the current count of the receiver. Raises an exception if the index is out of bounds. Returns self.
atPut(index, anObject)

Replaces the existing value at index with anObject. Raises an exception if the index is out of bounds. Returns self.
average

Returns the average of the items.
capacity

Returns the number of potential elements the receiver can hold before it needs to grow.
contains(anObject)

Returns true if the receiver contains anObject, otherwise returns false.
containsAll(list)

Returns true the target contains all of the items in the argument list.
containsAny(list)

Returns true the target contains any of the items in the argument list.
containsIdenticalTo(anObject)

Returns true if the receiver contains a value identical to anObject, otherwise returns false.
copy(v)

Replaces self with `v` list items. Returns self.
cursor

Returns a ListCursor for the receiver.
detect(optionalIndex, value, message)

Returns the first value for which the message evaluates to a non-nil. Example: `list(1, 2, 3, 4) detect(i, v, v > 2) ==> 3 list(1, 2, 3, 4) detect(v, v > 2) ==> 3`
difference(list)

Returns a new list containing items from the target list which aren't in the argument list.
empty

Removes all items from the receiver.
exSlice

undocumented
first(optionalSize)

Returns the first item or Nil if the list is empty. If optionalSize is provided, that number of the first items in the list are returned.
flatten

Creates a new list, with all contained lists flattened into the new list. For example: `list(1,2,list(3,4,list(5))) flatten ==> list(1, 2, 3, 4, 5)`
foreach(optionalIndex, value, message)

Loops over the list values setting the specified index and value slots and executing the message. Returns the result of the last execution of the message. Example:

    list(1, 2, 3) foreach(i, v, writeln(i, " = ", v))
    list(1, 2, 3) foreach(v, writeln(v))

fromEncodedList(aSeq)

Returns a List with the decoded Nils, Symbols and Numbers from the input raw array. For each object reference encounters, objectForReferenceId(id) will be called to allow the reference to be resolved. Also see: List asEncodedList.
indexOf(anObject)

Returns the index of the first occurrence of anObject in the receiver. Returns Nil if the receiver doesn't contain anObject.
insertAfter(item, afterItem)

Inserts item after first occurance of afterItem and returns self. If afterItem is not found, item is appended to the end of the list.
insertAt(item, index)

Inserts item at the specified index. Raises an exception if the index is out of bounds. Returns self.
insertBefore(item, beforeItem)

Inserts item before first occurance of beforeItem or to the end of the list if beforeItem is not found. Returns self.
intersect(list)

Returns a new list containing the common values from the target and argument lists.
isEmpty

undocumented
isNotEmpty

undocumented
itemCopy

Returns a new list containing the items from the receiver.
join(optionalString)

Returns a Sequence of the concatenated items with optionalString between each item or simply the concatenation of the items if no optionalString is supplied.
justSerialized(stream)

Writes the receiver's code into the stream.
last(optionalSize)

Returns the last item or Nil if the list is empty. If optionalSize is provided, that number of the last items in the list are returned.
map(optionalIndex, value, message)

Same as calling mapInPlace() on a clone of the receiver, but more efficient.
mapFromKey

undocumented
mapInPlace

Same as `map`, but result replaces self.
max

undocumented
min

undocumented
pop

Returns the last item in the list and removes it from the receiver. Returns nil if the receiver is empty.
preallocateToSize(aNumber)

Preallocates array memory to hold aNumber number of items.
prepend(anObject1, anObject2, ...)

Inserts the values at the beginning of the list. Returns self.
push(anObject1, anObject2, ...)

Same as add(anObject1, anObject2, ...).
reduce

Also known as foldl or inject. Combines values in target start on the left. reduce(+) or reduce(x, y, x + y).
remove(anObject, ...)

Removes all occurrences of the arguments from the receiver. Returns self.
removeAll

undocumented
removeAt(index)

Removes the item at the specified index and returns the value removed. Raises an exception if the index is out of bounds.
removeFirst

Returns the first item and removes it from the list. nil is returned if the list is empty.
removeLast

Returns the last item and removes it from the list. nil is returned if the list is empty.
removeSeq

Removes each of the items from the current list which are contained in the sequence passed in.
reverse

Reverses the ordering of all the items of the receiver. Returns copy of receiver.
reverseForeach(index, value, message)

Same as foreach, but in reverse order.
reverseInPlace

Reverses the ordering of all the items in the receiver. Returns self.
reverseReduce

Also known as foldr and inject. Combines values in target starting on the right. reverseReduce(+) or reverseReduce(x, y, x + y).
second

Returns third element (same as `at(2)`)
select(optionalIndex, value, message)",

"Like foreach, but the values for which the result of message are non-nil are returned in a new List. Example: `list(1, 5, 7, 2) select(i, v, v > 3) print ==> 5, 7 list(1, 5, 7, 2) select(v, v > 3) print ==> 5, 7`
selectInPlace

Same as `select`, but result replaces self.
setSize

Sets the size of the receiver by either removing excess items or adding nils as needed.
shuffle

Randomizes the ordering of all the items of the receiver. Returns copy of receiver.
shuffleInPlace

Randomizes the order of the elements in the receiver. Returns self.
size

Returns the number of items in the receiver.
slice(startIndex, endIndex)

Returns a new string containing the subset of the receiver from the startIndex to the endIndex. The endIndex argument is optional. If not given, it is assumed to be the end of the string.
sliceInPlace(startIndex, endIndex)

Returns the receiver containing the subset of the receiver from the startIndex to the endIndex. The endIndex argument is optional. If not given, it is assumed to be the end of the string.
sort

undocumented
sortBy

undocumented
sortByKey

undocumented
sortInPlace(optionalExpression)

Sorts the list using the compare method on the items. Returns self. If an optionalExpression is provided, the sort is done on the result of the evaluation of the optionalExpression on each value.
sortInPlaceBy(aBlock)

Sort the list using aBlock as the compare function. Returns self.
sortKey

undocumented
sum

Returns the sum of the items.
swapIndices(index1, index2)

Exchanges the object at index1 with the object at index2. Raises an exception if either index is out of bounds. Returns self.
third

undocumented
union(list)

Returns a new list containing items from the target and items which are only in the argument list.
unique

Returns a new list containing all the values in the target, but no duplicates.
uniqueCount

Returns a list of list(value, count) for each unique value in self.
with(anObject, ...)

Returns a new List containing the arguments.

## MD5

Module: MD5
Category: Digests

### Description

An object for calculating MD5 hashes. Each has calculation should instiate it's own MD5 instance.

### Slot Index

appendSeq()
hash
hashString
md5
md5String

### Slots

appendSeq(aSequence)

Appends aSequence to the hash calculation. Returns self.
hash

undocumented
hashString

undocumented
md5

Completes the MD5 calculation and returns the hash as a Buffer. Once this method is called, append() should not be called again on the receiver or it will raise an exception.
md5String

Returns a string containing a hexadecimal representation of the md5 hash.

## MDOConnection

Module: DistributedObjects
Category: Networking

### Description

A Minimal Distributed Objects connection. Example;

    dateServerCon := MDOConnection clone setHost("127.0.0.1") setPort(8123) connect
    writeln("date from date server: ", Date fromNumber(dateServerCon currentDate))
    dateServerCon close

See the docs for MDOServer for the DateServer code.

A MDOConnection will pause calling coroutines until the response is received. Mutliple requests can be sent before a single request returns if they are sent from separate coroutines.

### Slot Index

close
connect
corosWaitingOnResponses
debugWriteln
localObject
receiveLoop
receiveResponse
receiveSend
remoteObject
send
setCorosWaitingOnResponses
setHost
setLocalObject
setPort
setRemoteObject
setSocket
socket

### Slots

close

undocumented
connect

undocumented
corosWaitingOnResponses

undocumented
debugWriteln

undocumented
localObject

undocumented
receiveLoop

undocumented
receiveResponse

undocumented
receiveSend

undocumented
remoteObject

undocumented
send

undocumented
setCorosWaitingOnResponses

undocumented
setHost

undocumented
setLocalObject

undocumented
setPort

undocumented
setRemoteObject

undocumented
setSocket

undocumented
socket

undocumented

## MDOServer

Module: DistributedObjects
Category: Networking

### Description

A Minimal Distributed Objects server. Example;

    DateServer := Object clone do(
    	acceptedMessageNames := list("currentDate")
    	currentDate := method(Date clone asNumber)
    )

    mdoServer := MDOServer clone
    mdoServer setHost("127.0.0.1")  setPort(8123)
    mdoServer setLocalObject(DateServer clone)
    mdoServer start

### Slot Index

handleSocket
localObject
setLocalObject
socket

### Slots

handleSocket

undocumented
localObject

undocumented
setLocalObject

undocumented
socket

undocumented

## Map

Module: Core
Category: DataStructures

### Description

A key/value dictionary appropriate for holding large key/value collections.

### Slot Index

addKeysAndValues
asJson
asList
asObject
at()
atIfAbsentPut()
atPut()
detect()
empty
foreach()
hasKey()
hasValue()
i
justSerialized()
keys
map()
removeAt()
reverseMap
select()
size
values
with()

### Slots

addKeysAndValues

undocumented
asJson

undocumented
asList

Converts a Map to a list of lists. Each element in the returned list will be a list of two elements: the key, and the value.
asObject

Create a new Object whose slotDescriptionMap will be equal to self
at(keyString, optionalDefaultValue)

Returns the value for the key keyString. Returns nil if the key is absent.
atIfAbsentPut(keyString, aValue)

If a value is present at the specified key, the value is returned. Otherwise, inserts/sets aValue and returns aValue.
atPut(keyString, aValue)

Inserts/sets aValue with the key keyString. Returns self.
detect(optionalIndex, optionalValue, message)

Returns a random value for which message evals to non-nil.
empty

Removes all keys from the receiver. Returns self.
foreach(optionalKey, value, message)

For each key value pair, sets the locals key to the key and value to the value and executes message. Example:

    	aMap foreach(k, v, writeln(k, " = ", v))
    aMap foreach(v, write(v))

Example use with a block:

    	myBlock = block(k, v, write(k, " = ", v, "\n"))
    aMap foreach(k, v, myBlock(k, v))

hasKey(keyString)

Returns true if the key is present or false otherwise.
hasValue(aValue)

Returns true if the value is one of the Map's values or false otherwise.
i

undocumented
justSerialized(stream)

Writes the receiver's code into the stream.
keys

Returns a List of the receivers keys.
map(key, value, message)

Create a List of results of message applied to self's items in a random order.
removeAt(keyString)

Removes the specified keyString if present. Returns self.
reverseMap

Create a new Map using values as keys and keys as values
select(optionalIndex, optionalValue, message)

Create a new Map with keys,values of self for which message evaluated to non-nil.
size

Returns the number of key/value pairs in the receiver.
values

Returns a List of the receivers values.
with(key1, value1, key2, value2, ...)

Returns a new map containing the given keys and values

## Message

Module: Core
Category: Core

### Description

A Message object encapsulates the action of a message send. Blocks are composed of a Message and its children.

Terminology

    Example:
      Io> msg := message(A B(C D); E F)
      ==> A B(C D); E F

    In the above example:
      msg name            =>  A
      msg next            =>  B(C D); E F
      msg next arguments  =>  list(C D)
      msg next next name  =>  ;
      msg next next next  =>  E F

Important: Modifying the message tree of a block currently in use may cause a crash if a garbage collection cycle occurs. If the implementation were changed to retain every called message, this could be avoided. But the cost to performance seems to outweigh the need to cover this case for now.

### Slot Index

OperatorTable
appendArg()
appendCachedArg()
argAt()
argCount
argsEvaluatedIn()
arguments
asMessageWithEvaluatedArgs()
asSimpleString
asStackEntry
asString
cachedResult
characterNumber
clone
code
codeOfLength()
description
doInContext()
evaluatedArgs
fromString()
hasCachedResult
isEndOfLine
label
last
lastBeforeEndOfLine
lineNumber
name
next
nextIgnoreEndOfLines
opShuffle
opShuffleC
previous
removeCachedResult
setArguments()
setCachedArgs()
setCachedResult()
setCharacterNumber()
setLabel()
setLineNumber()
setName()
setNext()
setPrevious()
union()

### Slots

OperatorTable

undocumented
appendArg(aMessage)

Adds aMessage to the argument list of receiver. Examples,

    Io> message(a) appendArg(message(b))
    ==> a(b)

    Io> message(a(1,2)) appendArg(message(3))
    ==> a(1, 2, 3)

appendCachedArg(aValue)

Adds aValue to the argument list of receiver as a cachedResult.
argAt(indexNumber)

Returns Message object for the specified argument or Nil if none exists.
argCount

Returns the number of arguments this message has. A faster way to do, msg arguments size. Examples,

    Io> message(a(1,2,3)) argCount
    ==> 3

    Io> message(a) argCount
    ==> 0

argsEvaluatedIn(anObject)

Returns a List containing the argument messages evaluated in the context of anObject.
arguments

Returns a list of the message objects that act as the receiver's arguments. Modifying this list will not alter the actual list of arguments. Use the arguments_() method to do that.
asMessageWithEvaluatedArgs(optionalContext)

Returns a copy of receiver with arguments evaluated in the context of sender if optionalContext is nil.
asSimpleString

Returns one-line string representation up to 40 characters long.
asStackEntry

Returns a string containing message name, file and line.
asString

Same as code().
cachedResult

Returns the cached result of the Message or Nil if there is none.
characterNumber

Returns the message character number. The charcter number is typically the beggining character index in the source text from with the message was read.
clone

Returns a Message that is a deep copy of the receiver.
code

Returns a String containing a decompiled code representation of the receiver.
codeOfLength(n)

Same as `Message code`, but returns first `n` characters only.
description

Returns a string containing a short description of the method.
doInContext(anObject, locals)

Evaluates the receiver in the context of anObject. Optional `locals` object is used as message sender. `anObject` is used as sender otherwise.
evaluatedArgs

Returns a List containing the argument messages evaluated in the context.
fromString(aString)

Returns a new Message object for the compiled(but not executed) result of aString.
hasCachedResult

Returns true if there is a cached result. Nil is a valid cached result.
isEndOfLine

Returns true if the message marks the end of the line. A ';' message.
label

Returns the message label. The label is typically set the the name of the file from which the source code for the message was read.
last

Returns the last message in the chain.
lastBeforeEndOfLine

Returns the last message in the chain before the EndOfLine or nil.
lineNumber

Returns the line number of the message. The charcter number is typically the line number in the source text from with the message was read.
name

Returns the name of the receiver.
next

Returns the next message in the message chain or nil if there is no next message.
nextIgnoreEndOfLines

Returns the next message in the message chain which is not an EndOfLine or nil if there is no next message.
opShuffle

undocumented
opShuffleC

undocumented
previous

Returns the previous message in the message chain or Nil if there is no previous message.
removeCachedResult

Removes the cached result of the Message.
setArguments(aListOfMessages)

Sets the arguments of the receiver to deep copies of those contained in aListOfMessages. Returns self.
setCachedArgs(listOfValues)

Appends evaluated arguments to a message. Returns self.
setCachedResult(anObject)

Sets the cached result of the message. Returns self.
setCharacterNumber(aNumber)

Sets the character number of the message. Returns self.
setLabel(aString)

Sets the label of the message and its children. Returns self.
setLineNumber(aNumber)

Sets the line number of the message. Returns self.
setName(aString)

Sets the name of the receiver. Returns self.
setNext(aMessageOrNil)

Sets the next message in the message chain to a deep copy of aMessage or it removes the next message if aMessage is nil.
setPrevious(aMessageOrNil)

Sets the previous message in the message chain to a deep copy of aMessage or it removes the previous message if aMessage is Nil.
union(other) Creates a union of the receiver and the other parameter.

Returns a new message object with the receivers message as the first argument of the returned message, and the other parameter's arguments as each successive argument to the new message.

      Io> message(a) union(message(b))
      ==> [unnamed](a, b)

## MutableSequence

Module: Core

### Slot Index

IoSeq_insertSeqEvery()
IoSeq_leaveThenRemove()

### Slots

IoSeq_insertSeqEvery(aSequence, aNumberOfItems)

Inserts aSequence every aNumberOfItems. Returns self.
IoSeq_leaveThenRemove(aNumberToLeave, aNumberToRemove)

Leaves aNumberToLeave items then removes aNumberToRemove items. Returns self.

## MySQL

Module: MySQL
Category: Databases

### Description

MySQL is a fast, multi-threaded, multi-user SQL database server. IoMySQL is a MySQL binding for Io, by Min-hee Hong.

    my := MySQL establish("localhost", "user", "password", "database")

    # Get rows by Map
    my queryThenMap("SELECT * FROM rel") foreach(at("col") println)
    # Get rows by List
    my query("SELECT * FROM rel") foreach(at(0) println)

    my close

### Slot Index

close
connect()
connected
establish
lastInsertRowId
query
queryThenMap

### Slots

close

Closes a previously opened connection.
connect(host, user, password, database, port, unixSocket, useSSL)

Connect to a MySQL database.
connected

undocumented
establish

Establish a connection to a MySQL database.
lastInsertRowId

Returns the value generated for an AUTO_INCREMENT column by the previous INSERT or UPDATE statement.
query

undocumented
queryThenMap

undocumented

## NetworkAdapter

Module: NetworkAdapter
Category: Networking

### Description

Interface to network adapter functionality.

### Slot Index

macAddress

### Slots

macAddress

Returns the MAC address for the primary network adapter in a Hex string.

## NullAddon

Module: NullAddon
Category: Server

### Description

A do-nothing addon for Io, primarily intended to serve as a skeleton for writing your own addons, without having to rewrite all the boilerplate yourself. It implements only one method, hello, which does the obvious job of greeting the world.

### Slot Index

hello

### Slots

hello

undocumented

## Number

Module: Core
Category: Core

### Description

A container for a double (a 64bit floating point number on most platforms).

### Slot Index

%()
&()
*()
**()
+()
-()
/()
<<()
>>()
^()
abs
acos
asBinary
asBuffer()
asCharacter
asHex
asJson
asLowercase
asNumber
asOctal
asSimpleString
asString()
asUint32Buffer
asUppercase
asin
at()
atan
atan2()
between()
bitwiseAnd()
bitwiseComplement
bitwiseOr()
bitwiseXor()
ceil
clip()
combinations()
constants
cos
cubed
doubleMin
e
exp
factorial
floatMax
floatMin
floor
inf
integerMax
integerMin
isAlphaNumeric
isControlCharacter
isDigit
isEven
isGraph
isHexDigit
isInASequenceSet
isLetter
isLowercase
isNan
isOdd
isPrint
isPunctuation
isSpace
isUppercase
justSerialized()
log
log10
log2
longMax
longMin
max()
min()
minMax()
mod()
nan
negate
permutations()
pi
pow()
print
repeat()
round
roundDown
roundedUpToPowerOf2
shiftLeft
shiftRight
shortMax
shortMin
sin
sqrt
squared
tan
toggle
unsignedIntMax
unsignedLongMax
unsignedShortMax
|()

### Slots

%(aNumber)

Returns the receiver modulus aNumber.
&(aNumber)

Returns a new number with the bitwise AND of the receiver and aNumber.
*(aNumber)

Returns a new number that is the product of the receiver and aNumber.
**(aNumber)

Same as pow(aNumber).
+(aNumber)

Returns a new number that is the sum of the receiver and aNumber.
-(aNumber)

Returns a new number that is the difference of the receiver and aNumber.
/(aNumber)

Returns a new number with the value of the receiver diveded by aNumber.
<<(aNumber)

Shifts the bits of the receiver left by the number of places specified by aNumber.
>>(aNumber)

Shifts the bits of the receiver right by the number of places specified by aNumber.
^(aNumber)

Returns the bitwise xor with the receiver (both numbers are converted to longs for the operation).
abs

Returns a number with the absolute value of the receiver.
acos

Returns a number with the arc cosine of the receiver.
asBinary

Returns the number as binary digits inside a string. 42 asBinary -> "101010"
asBuffer(optionalNumberOfBytes)

Returns a Buffer containing a the number of bytes specified by optionalNumberOfBytes (up to the size of a double on the platform) of the reciever. If no optionalNumberOfBytes is specified, it is assumed to be the number of bytes in a double on the host platform.
asCharacter

Returns a String containing a single character whose value is the value of the first byte of the receiver. Returns nil if the number has no valid UCS mapping.
asHex

Returns the number as hex digits inside a string. 97 asHex -> "61"
asJson

undocumented
asLowercase

Returns a new Number containing a lower case version of the receiver.
asNumber

Returns self.
asOctal

Returns the number as octal digits inside a string. 436 asOctal -> "664"
asSimpleString

undocumented
asString(optionalIntegerDigits, optionalFactionDigits)

Returns a string representation of the receiver. For example:

    1234.5678 asString(0, 2)

would return:

    1234.57

asUint32Buffer

Returns a Sequence containing a 4 byte representation of the uint32 value of the receiver.
asUppercase

Returns a new Number containing a upper case version of the receiver.
asin

Returns a number with the arc sine of the receiver.
at(bitIndexNumber)

Returns a new Number containing 1 if the receiver cast to a long has it's bit set to 1 at bitIndexNumber. Otherwise returns 0.
atan

Returns a number with the arc tangent of the receiver.
atan2(aNumber)

Returns a number with the arc tangent of y/x where y is the receiver and x is aNumber.
between(aNumber1, aNumber2)

Returns the true if the receiver's value is between or equal to aNumber1 and aNumber2, otherwise returns false.
bitwiseAnd(aNumber)

Returns a new number with the bitwise AND of the receiver and aNumber.
bitwiseComplement

Returns a new number with the bitwise complement of the receiver. (Turns the 0 bits of become 1s and the 1 bits become 0s. )
bitwiseOr(aNumber)

Returns a new number with the bitwise AND of the receiver and aNumber.
bitwiseXor(aNumber)

Returns a new number with the bitwise XOR of the receiver and aNumber.
ceil

Returns the a number with the receiver's value rounded up to the nearest integer if it's fractional component is greater than 0.
clip(aNumber1, aNumber2)

Returns self if the receiver is between aNumber1 and aNumber2. Returns aNumber1 if it is less than aNumber1. Returns aNumber2 if it is greater than aNumber2.
combinations(size)

Returns the combinations where the receiver is the number of different objects and size is the number to be arranged.
constants

Object containing number constants e, inf, nan and pi.
cos

Returns the cosine of the receiver.
cubed

Returns the cube of the receiver.
doubleMin

Returns the minimum double precision float value.
e

Returns the constant e.
exp

Returns e to the power of the receiver.
factorial

Returns the factorial of the receiver.
floatMax

Returns the maximum double precision float value.
floatMin

Returns the minimum float value.
floor

Returns the a number with the receiver's value rounded down to the nearest integer if it's fractional component is not 0.
inf

Returns a not-a-number constant.
integerMax

Returns the maximum integer value.
integerMin

Returns the minimum integer value.
isAlphaNumeric

Returns true if receiver is an alphanumeric character value , false otherwise.
isControlCharacter

Returns true if receiver is a control character value , false otherwise.
isDigit

Returns true if receiver is a numeric digit value , false otherwise.
isEven

Returns true if integer form of the receiver is even , false otherwise.
isGraph

Returns true if the receiver is a printing character value except space , false otherwise.
isHexDigit

Returns true if the receiver is a hexadecimal character value , false otherwise.
isInASequenceSet

Return true if receiver is in one of the Sequence sequenceSets, otherwise false.
isLetter

Returns true if receiver is a letter character value , false otherwise.
isLowercase

Returns true if the receiver is a lowercase character value , false otherwise.
isNan

Returns true if the receiver is not a number. Otherwise returns false.
isOdd

Returns true if integer form of the receiver is odd , false otherwise.
isPrint

Returns true if the receiver is a printing character value, including space , false otherwise.
isPunctuation

Returns true if the receiver is a punctuation character value , false otherwise.
isSpace

Returns true if the receiver is a space, formfeed, newline carriage return, tab or vertical tab character value , false otherwise.
isUppercase

Returns true if the receiver is a uppercase character value , false otherwise.
justSerialized(stream)

Writes the receiver's code into the stream.
log

Returns the logarithm of the receiver. The base is taken as the value of the first argument or the constant e if the first argument is omitted.
log10

Returns the base 10 logarithm of the receiver.
log2

Returns the base 2 logarithm of the receiver.
longMax

Returns the maximum long value.
longMin

Returns the minimum long value.
max(aNumber)

Returns the greater of the receiver and aNumber.
min(aNumber)

Returns the lesser of the receiver and aNumber.
minMax(low, high)

Returns a number between or equal to low and high. If the receiver is equal to or between low and high, the reciever is returned. If the reciever is less than low, low is returned. If the receiver is greater than high, high is returned.
mod(aNumber)

Returns the receiver modulus aNumber.
nan

Returns a infinity constant.
negate

Returns new number that is negated version of the receiver.
permutations(size)

Returns the permutations where the receiver is the number of different objects and size is the number to be arranged.
pi

Returns the constant pi.
pow(aNumber)

Returns the value of the receiver to the aNumber power.
print

Prints the number.
repeat(optionalIndex, expression)

Evaluates message a number of times that corresponds to the receivers integer value. This is significantly faster than a for() or while() loop.
round

Returns the a number with the receiver's value rounded up to the nearest integer if it's fraction component is >= .5.
roundDown

Returns the a number with the receiver's value rounded down to the nearest integer if it's fraction component is <= .5.
roundedUpToPowerOf2

undocumented
shiftLeft

undocumented
shiftRight

undocumented
shortMax

Returns the maximum short value.
shortMin

Returns the minimum short value.
sin

Returns the sine of the receiver.
sqrt

Returns the square root of the receiver.
squared

Returns the square of the receiver.
tan

Returns the tangent of the receiver.
toggle

Returns 1 if the receiver is 0. Returns 0 otherwise.
unsignedIntMax

Returns the maximum unsigned int value.
unsignedLongMax

Returns the maximum unsigned long value.
unsignedShortMax

Returns the minimum unsigned int value.
|(aNumber)

Returns a new number with the bitwise OR of the receiver and aNumber.

## ODEBody

Module: ODE

### Description

ODEBody binding

### Slot Index

addForce
addRelForce
addRelTorque
addTorque
bodyId
force
glMultMatrix
linearVelocity
mass
position
quaternion
rotation
setForce
setLinearVelocity
setMass
setPosition
setRotation
setTorque
slotDescriptionMap
torque
world

### Slots

addForce

undocumented
addRelForce

undocumented
addRelTorque

undocumented
addTorque

undocumented
bodyId

undocumented
force

undocumented
glMultMatrix

undocumented
linearVelocity

undocumented
mass

undocumented
position

undocumented
quaternion

undocumented
rotation

undocumented
setForce

undocumented
setLinearVelocity

undocumented
setMass

undocumented
setPosition

undocumented
setRotation

undocumented
setTorque

undocumented
slotDescriptionMap

undocumented
torque

undocumented
world

undocumented

## ODEBox

Module: ODE

### Description

ODEBox binding

### Slot Index

body
collide
geomId
lengths
pointDepth
setBody
setLengths
slotDescriptionMap

### Slots

body

undocumented
collide

undocumented
geomId

undocumented
lengths

undocumented
pointDepth

undocumented
setBody

undocumented
setLengths

undocumented
slotDescriptionMap

undocumented

## ODEContact

Module: ODE

### Description

ODEContact binding

### Slot Index

bounce
bounceEnabled
bounceVelocity
depth
disableBounce
disableFrictionDirection
disableMotion1
disableMotion2
disableMu2
disableSlip1
disableSlip2
disableSoftCfm
disableSoftErp
frictionDirection
frictionDirectionEnabled
geom1
geom2
motion1
motion1Enabled
motion2
motion2Enabled
mu
mu2
mu2Enabled
normal
position
setBounce
setBounceVelocity
setDepth
setFrictionDirection
setGeom1
setGeom2
setMotion1
setMotion2
setMu
setMu2
setNormal
setPosition
setSide1
setSide2
setSlip1
setSlip2
setSoftCfm
setSoftErp
side1
side2
slip1
slip1Enabled
slip2
slip2Enabled
slotDescriptionMap
softCfm
softCfmEnabled
softErp
softErpEnabled

### Slots

bounce

undocumented
bounceEnabled

undocumented
bounceVelocity

undocumented
depth

undocumented
disableBounce

undocumented
disableFrictionDirection

undocumented
disableMotion1

undocumented
disableMotion2

undocumented
disableMu2

undocumented
disableSlip1

undocumented
disableSlip2

undocumented
disableSoftCfm

undocumented
disableSoftErp

undocumented
frictionDirection

undocumented
frictionDirectionEnabled

undocumented
geom1

undocumented
geom2

undocumented
motion1

undocumented
motion1Enabled

undocumented
motion2

undocumented
motion2Enabled

undocumented
mu

undocumented
mu2

undocumented
mu2Enabled

undocumented
normal

undocumented
position

undocumented
setBounce

undocumented
setBounceVelocity

undocumented
setDepth

undocumented
setFrictionDirection

undocumented
setGeom1

undocumented
setGeom2

undocumented
setMotion1

undocumented
setMotion2

undocumented
setMu

undocumented
setMu2

undocumented
setNormal

undocumented
setPosition

undocumented
setSide1

undocumented
setSide2

undocumented
setSlip1

undocumented
setSlip2

undocumented
setSoftCfm

undocumented
setSoftErp

undocumented
side1

undocumented
side2

undocumented
slip1

undocumented
slip1Enabled

undocumented
slip2

undocumented
slip2Enabled

undocumented
slotDescriptionMap

undocumented
softCfm

undocumented
softCfmEnabled

undocumented
softErp

undocumented
softErpEnabled

undocumented

## ODEJoint

Module: ODE

### Description

ODEJoint binding

### Slot Index

attach
attachedBody1
attachedBody2
jointGroup
jointId

### Slots

attach

undocumented
attachedBody1

undocumented
attachedBody2

undocumented
jointGroup

undocumented
jointId

undocumented

## ODEJointGroup

Module: ODE

### Description

ODEJointGroup binding

### Slot Index

createContact
empty
jointGroupId
joints
slotDescriptionMap
world

### Slots

createContact

undocumented
empty

undocumented
jointGroupId

undocumented
joints

undocumented
slotDescriptionMap

undocumented
world

undocumented

## ODEMass

Module: ODE

### Description

ODEMass binding

### Slot Index

==
asSimpleString
centerOfGravity
inertiaTensor
mass
parameters
reset
setBoxDensity
setBoxMass
setCappedCylinderDensity
setCappedCylinderMass
setCenterOfGravity
setMass
setParameters
setSphereDensity
setSphereMass
slotDescriptionMap

### Slots

==

undocumented
asSimpleString

undocumented
centerOfGravity

undocumented
inertiaTensor

undocumented
mass

undocumented
parameters

undocumented
reset

undocumented
setBoxDensity

undocumented
setBoxMass

undocumented
setCappedCylinderDensity

undocumented
setCappedCylinderMass

undocumented
setCenterOfGravity

undocumented
setMass

undocumented
setParameters

undocumented
setSphereDensity

undocumented
setSphereMass

undocumented
slotDescriptionMap

undocumented

## ODEPlane

Module: ODE

### Description

ODEPlane binding

### Slot Index

body
collide
geomId
params
setParams
slotDescriptionMap

### Slots

body

undocumented
collide

undocumented
geomId

undocumented
params

undocumented
setParams

undocumented
slotDescriptionMap

undocumented

## ODESimpleSpace

Module: ODE

### Description

ODESimpleSpace binding

### Slot Index

box
collide
plane
slotDescriptionMap
spaceId

### Slots

box

undocumented
collide

undocumented
plane

undocumented
slotDescriptionMap

undocumented
spaceId

undocumented

## ODEWorld

Module: ODE

### Description

ODEWorld binding

### Slot Index

asSimpleString
bodies
cfm
erp
gravity
jointGroups
quickStep
setCfm
setErp
setGravity
slotDescriptionMap
step
worldId

### Slots

asSimpleString

undocumented
bodies

undocumented
cfm

undocumented
erp

undocumented
gravity

undocumented
jointGroups

undocumented
quickStep

undocumented
setCfm

undocumented
setErp

undocumented
setGravity

undocumented
slotDescriptionMap

undocumented
step

undocumented
worldId

undocumented

## Object

Module: Core
Category: Core

### Description

An Object is a key/value dictionary with string keys and values of any type. The prototype Object contains a clone slot that is a CFuntion that creates new objects. When cloned, an Object will call it's init slot (with no arguments).

### Slot Index

!=()
()
-()
..()
<()
<=()
==()
>()
>=()
?()
@
@@
NullCharacter
The
actorProcessQueue
actorRun
ancestorWithSlot()
ancestors
and()
appendProto()
apropos
argIsActivationRecord
argIsCall()
asSimpleString
asString
become()
block()
break()
clone
cloneWithoutInit
compact
compactState
compare()
contextWithSlot()
continue
coroDo()
coroDoLater()
coroFor()
coroWith()
currentCoro
debugOff
debugOn
debugWriteln
deprecatedWarning()
do()
doFile()
doMessage()
doRelativeFile()
doString()
doURL()
evalArg()
evalArgAndReturnNil()
evalArgAndReturnSelf()
for()
foreach()
foreachSlot()
forward
getLocalSlot()
getSlot()
handleActorException()
hasDirtySlot
hasLocalSlot()
hasProto()
hasSlot()
if()
ifDebug()
ifError
ifNil()
ifNilEval()
ifNonNil()
ifNonNilEval()
in()
inlineMethod
isActivatable
isError
isIdenticalTo()
isKindOf()
isLaunchScript
isNil
isTrue
justSerialized()
launchFile()
lazySlot()
list()
localsForward
localsUpdateSlot()
loop()
markClean
memorySize
memorySizeOfState
message()
method()
newSlot()
not
or()
ownsSlots
pSlots
pause
perform()
performWithArgList()
persist
persistData
persistMetaData
persistSlots
ppid
prependProto()
print
println
proto
protos
raiseIfError
relativeDoFile()
removeAllProtos
removeAllSlots
removeProto()
removeSlot()
resend
return()
returnIfError
returnIfNonNil
self
serialized
serializedSlots()
serializedSlotsWithNames()
setIsActivatable()
setPpid
setProto()
setProtos()
setSlot()
setSlotWithType()
shallowCopy
shouldPersistByDefault
slotDescriptionMap
slotNames
slotSummary
slotValues
stopStatus
super()
switch()
tailCall()
thisContext
thisLocalContext
thisMessage
try()
type
uniqueHexId
uniqueId
unpersist
updateSlot()
wait()
while()
write()
writeln()
yield

### Slots

!=(aValue)

Returns true the receiver is not equal to aValue, false otherwise.
(expression)

The '' method evaluates the argument and returns the result.
-(aNumber)

Returns the negative version of aNumber. Raises an exception if argument is not a number.
..(arg)

.. is an alias for: method(arg, self asString append(arg asString))
<(expression)

Evaluates argument and returns self if self is less or Nil if not.
<=(expression)

Evaluates argument and returns self if self is less than or equal to it, or Nil if not.
==(aValue)

Returns true if receiver and aValue are equal, false otherwise.
>(expression)

Evaluates argument and returns self if self is greater than it, or Nil if not.
>=(expression)

Evaluates argument and returns self if self is greater than or equal to it, or Nil if not.
?(aMessage)

description: Sends the message aMessage to the receiver if it can respond to it. Example:

    	MyObject test // performs test
    	MyObject ?test // performs test if MyObject has a slot named test

The search for the slot only follows the receivers proto chain.
@

Sends asynchronous message to an object, returns a FutureProxy.
Caller coroutine is paused when proxy is accessed (i.e. message is sent) till result is ready. Proxy will become an actual result when it is ready.
See IoGuide for more information.
Usage: obj @someMethod(a, b, c)
@@

Same as Object @, but returns nil instead of FutureProxy.
Might be useful in a command line or as a last expression in a block/method when you don't want to return a future.
NullCharacter

A sequence with a single zero byte.
The

'' method evaluates the argument and returns the result.
actorProcessQueue

Processes each message in a queue, yielding between each message.
actorRun

Starts actor mode if not started already. Basically, sets actorProcessQueue for later execution.
ancestorWithSlot(slotName)

Returns the first ancestor of the receiver that contains a slot of the specified name or Nil if none is found.
ancestors

Returns a list of all of the receiver's ancestors as found by recursively following the protos links.
and(arg)

Evaluates argument and returns the result.
appendProto(anObject)

Appends anObject to the receiver's proto list. Returns self.
apropos

Prints out `Protos Core` slot descriptions.
argIsActivationRecord

Note: seems to be an obsolete method.
argIsCall(arg)

Returns true if arg is an activation context (i.e. Call object)
Note: this is used internally in one place only (Coroutine callStack). Refactoring should be considered.
asSimpleString

Returns <type>_<uniqueHexId> string.
asString

Same as `slotSummary`.
become(anotherObject)

Replaces receiver with `anotherObject` and returns self. Useful for implementing transparent proxies. See also `FutureProxy` and `Object @`.
Note: primitives cannot become new values.
block(args..., body)

Creates a block and binds it to the sender context (i.e. lexical context). In other words, block locals' proto is sender's locals. `args` is a list of formal arguments (can be empty).
`body` is evaluated in the context of Locals object.
See also `Object method`.

    	Io> block(x, x*2) scope == thisContext
      ==> true

break(optionalReturnValue)

Break the current loop, if any.
clone

Returns a clone of the receiver.
cloneWithoutInit

Returns a clone of the receiver but does not call init.
compact

Compact the memory for the object if possible. Returns self.
compactState

Attempt to compact the memory of the IoState if possible.
compare(anObject)

Returns a number containing the comparison value of the target with anObject.
contextWithSlot(slotName)

Returns the first context (starting with the receiver and following the lookup path) that contains a slot of the specified name or Nil if none is found.
continue

Skip the rest of the current loop iteration and start on the next, if any.
coroDo(code)

Creates a new coro to be run in a context of sender and yields to it. Returns a coro.
coroDoLater(code)

Returns a new coro to be run in a context of sender. New coro is moved to the top of the yieldingCoros queue to be executed when current coro yields.
Note: run target is `self` (i.e. receiver), not `call sender` as in coroDo.
coroFor(code)

Returns a new coro to be run in a context of sender.
coroWith(code)

Returns a new coro to be run in a context of receiver.
currentCoro

Returns the currently running coroutine.
debugOff

Sets debugWriteln to nil. Returns self.
debugOn

Sets debugWriteln to writeln. Returns self.
debugWriteln

Method for writing debug messages (nil/writeln by default)
deprecatedWarning(optionalNewName)

Prints a warning message that the current method is deprecated. If optionalNewName is supplied, the warning will suggest using that instead. Returns self.
do(expression)

Evaluates the message in the context of the receiver. Returns self.
doFile(pathString)

Evaluates the File in the context of the receiver. Returns the result. pathString is relative to the current working directory.
doMessage(aMessage, optionalContext)

Evaluates the message object in the context of the receiver. Returns the result. optionalContext can be used to specific the locals context in which the message is evaluated.
doRelativeFile(pathString)

Evaluates the File in the context of the receiver. Returns the result. pathString is relative to the file calling doRelativeFile. (Duplicate of relativeDoFile)
doString(aString)

Evaluates the string in the context of the receiver. Returns the result.
doURL(urlString)

Fetches the URL and evals it in the context of the receiver.
evalArg(expression)

The '' method evaluates the argument and returns the result.
evalArgAndReturnNil(expression)

Evaluates the argument and returns nil.
evalArgAndReturnSelf(expression)

Evaluates the argument and returns the target.
for(<counter>, <start>, <end>, <do message>)

A for-loop control structure. See the io Programming Guide for a full description.
foreach([name,] value, message)

For each slot, set name to the slot's name and value to the slot's value and execute message. Examples:

    myObject foreach(n, v,
    	writeln("slot ", n, " = ", v type)
    )

    myObject foreach(v,
    	writeln("slot type ", v type)
    )

foreachSlot(slotName, slotValue, code)

Iterates over all the slots in a receiver. Provides slotValue (non-activated) along with slotName. Code is executed in context of sender. `slotName` and `slotValue` become visible in the receiver (no Locals created! Maybe, it is not the best decision).

      Io> thisContext foreachSlot(n, v, n println)
      Lobby
      Protos
      exit
      forward
      n
      v
      ==> false

forward

Called when the receiver is sent a message it doesn't recognize. Default implementation raises an "Object doesNotRespond" exception. Subclasses can override this method to implement proxies or special error handling.

Example:

    myProxy forward = method(
    	messageName := thisMessage name
    	arguments := thisMessage arguments
    	myObject doMessage(thisMessage)
    )

getLocalSlot(slotNameString)

Returns the value of the slot named slotNameString (not looking in the object's protos) or nil if no such slot is found.
getSlot(slotNameString)

Returns the value of the slot named slotNameString (following the lookup path) or nil if no such slot is found.
handleActorException(exception)

Callback for handling exceptions during asynchronous message processing.
Default value: method(e, e showStack)
hasDirtySlot

undocumented
hasLocalSlot(slotNameString)

Returns true if the slot exists in the receiver or false otherwise.
hasProto(anObject)

Returns true if anObject is found in the proto path of the target, false otherwise.
hasSlot(name)

Returns `true` if slot is found somewhere in the inheritance chain (including receiver itself).
if(<condition>, <trueMessage>, <optionalFalseMessage>)

Evaluates trueMessage if condition evaluates to a non-Nil. Otherwise evaluates optionalFalseMessage if it is present. Returns the result of the evaluated message or Nil if none was evaluated.
ifDebug(code)

Executes code if debugWriteln is not nil.
ifError

Does nothing, returns self.
ifNil(arg)

Does nothing, returns self.
ifNilEval(arg)

Does nothing, returns self.
ifNonNil(arg)

Evaluates argument and returns self.
ifNonNilEval(arg)

Evaluates argument and returns the result.
in(aList)

Same as: aList contains(self)
inlineMethod

Creates a method which is executed directly in a receiver (no Locals object is created).

      Io> m := inlineMethod(x := x*2)
      Io> x := 1
      ==> 1
      Io> m
      ==> 2
      Io> m
      ==> 4
      Io> m
      ==> 8

isActivatable

Returns true if the receiver is activatable, false otherwise.
isError

Returns false if not an error.
isIdenticalTo(aValue)

Returns true if the receiver is identical to aValue, false otherwise.
isKindOf(anObject)

Returns true if anObject is in the receiver's ancestors.
isLaunchScript

Returns true if the current file was run on the command line. Io's version of Python's __file__ == "__main__"
isNil

Returns false.
isTrue

undocumented
justSerialized(stream)

Writes serialized representation to a stream. Returns stream contents. [This is unintended side effect! Returned value may change in the future.]
launchFile(pathString)

Eval file at pathString as if from the command line in it's folder.
lazySlot(code)

Defines a slot with a lazy initialization code. Code is run only once: the first time slot is accessed. Returned value is stored in a regular slot.

      Io> x := lazySlot("Evaluated!" println; 17)
      Io> x
      Evaluated!
      ==> 17
      Io> x
      ==> 17
      Io> x
      ==> 17

Another form is `lazySlot(name, code)`:

      Io> lazySlot("x", "Evaluated!" println; 17)
      Io> x
      Evaluated!
      ==> 17
      Io> x
      ==> 17
      Io> x
      ==> 17

list(...)

Returns a List containing the arguments.
localsForward

CFunction used by Locals prototype for forwarding.
localsUpdateSlot(slotNameString, valueObject)

Local's version of updateSlot mthod.
loop(expression)

Keeps evaluating message until a break.
markClean

undocumented
memorySize

Return the amount of memory used by the object.
memorySizeOfState

Returns the number of bytes in the IoState (this may not include memory allocated by C libraries).
message(expression)

Return the message object for the argument or Nil if there is no argument.
method(args..., body)

Creates a method. `args` is a list of formal arguments (can be empty).
`body` is evaluated in the context of Locals object.
Locals' proto is a message receiver (i.e. self).
Slot with a method is activatable. Use getSlot(name) to retrieve method object without activating it (i.e. calling).
See also `Object block`.
newSlot(slotName, aValue)

Creates a getter and setter for the slot with the name slotName and sets it's default the value aValue. Returns self. For example, newSlot("foo", 1) would create slot named foo with the value 1 as well as a setter method setFoo().
not

Returns nil.
or(arg)

Returns true.
ownsSlots

A debug method.
pSlots

PDB extension to set a list of slots to persist with PDB. Creates the specified slots using newSlot and sets them to nil.
pause

Removes current coroutine from the yieldingCoros queue and yields to another coro. Exits if no coros left.
See Coroutine documentation for more details.
perform(methodName, <arg1>, <arg2>, ...)

Performs the method corresponding to methodName with the arguments supplied.
performWithArgList(methodName, argList)

Performs the method corresponding to methodName with the arguments in the argList.
persist

Force immediate persistence of this object with PDB.
persistData

Force immediate persistence of this object's serialized form (using asSerialization) into PDB, if possible.
persistMetaData

Force immediate persistence of this object's type data into PDB
persistSlots

Force immediate persistence of this object's dirty slots into PDB.
ppid

This PDB extension returns a unique identifier for this object and registers it for persistence with PDB.
prependProto(anObject)

Prepends anObject to the receiver's proto list. Returns self.
print

Prints a string representation of the object. Returns Nil.
println

Same as print, but also prints a new line. Returns self.
proto

Same as; method(self protos first)
protos

Returns a copy of the receiver's protos list.
raiseIfError

Does nothing, returns self.
relativeDoFile(pathString)

Evaluates the File in the context of the receiver. Returns the result. pathString is relative to the file calling doRelativeFile. (Duplicate of doRelativeFile)
removeAllProtos

Removes all of the receiver's protos. Returns self.
removeAllSlots

Removes all of the receiver's slots. Returns self.
removeProto(anObject)

Removes anObject from the receiver's proto list if it is present. Returns self.
removeSlot(slotNameString)

Removes the specified slot (only) in the receiver if it exists. Returns self.
resend

Send the message used to activate the current method to the Object's proto. For example:

      Dog := Mammal clone do(
        init := method(
      	  resend
        )
      )

Calling Dog init will send an init method to Mammal, but using the Dog's context.
return(anObject)

Return anObject from the current execution block.
returnIfError

Does nothing, returns self.
returnIfNonNil

Returns the receiver from the current execution block if it is non nil. Otherwise returns the receiver locally.
self

Returns self.
serialized

Returns a serialized representation of the receiver.

      Io> Object clone do(x:=1) serialized
      ==> Object clone do(
      	x := 1
      )

serializedSlots(stream)

Writes all slots to a stream.
serializedSlotsWithNames(names, stream)

Writes selected slots to a stream.
setIsActivatable(aValue)

When called with a non-Nil aValue, sets the object to call it's activate slot when accessed as a value. Turns this behavior off if aValue is Nil. Only works on Objects which are not Activatable Primitives (such as CFunction or Block). Returns self.
setPpid

PDB extension to set the value returned by ppid.
setProto(anObject)

Sets the first proto of the receiver to anObject, replacing the current one, if any. Returns self.
setProtos(aList)

Replaces the receiver's protos with a copy of aList. Returns self.
setSlot(slotNameString, valueObject)

Sets the slot slotNameString in the receiver to hold valueObject. Returns valueObject.
setSlotWithType(slotNameString, valueObject)

Sets the slot slotNameString in the receiver to hold valueObject and sets the type slot of valueObject to be slotNameString. Returns valueObject.
shallowCopy

Returns a shallow copy of the receiver.
shouldPersistByDefault

PDB boolean flag indicating whether this object should be considered for persistence when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist. Always false by default for Object.
slotDescriptionMap

Returns raw map of slot names and short values' descriptions. See also `Object slotSummary`.
slotNames

Returns a list of strings containing the names of the slots in the receiver (but not in it's lookup path).
slotSummary

Returns a formatted `slotDescriptionMap`.

      Io> slotSummary
      ==>  Object_0x30c590:
        Lobby            = Object_0x30c590
        Protos           = Object_0x30c880
        exit             = method(...)
        forward          = method(...)

slotValues

Returns a list of the values held in the slots of the receiver.
stopStatus

Returns the internal IoState->stopStatus.
super(aMessage)

Sends the message aMessage to the receiver's proto with the context of self. Example:

    	self test(1, 2)   // performs test(1, 2) on self
    	super(test(1, 2)) // performs test(1, 2) on self proto but with the context of self

switch(<key1>, <expression1>, <key2>, <expression2>, ...)

Execute an expression depending on the value of the caller. (This is an equivalent to C switch/case) `hour := Date hour switch( 12, "midday", 0, "midnight", 17, "teatime", Date hour asString )`
tailCall(expression)

Does a tailCall on the currently executing Block. Example:

    Io> a := method(x, x = x + 1; if(x > 10, return x); tailCall(x))
    ==> method(x, updateSlot("x", x +(1));
    		if(x >(10), return(x));
    		tailCall(x))
    Io> a(1)
    ==> 11

thisContext

Synonym to self.
thisLocalContext

Returns current locals.
thisMessage

Returns the calling message (i.e. thisMessage itself, huh).
try(code)

Executes particular code in a new coroutine. Returns exception or nil if no exception is caught.
See also documentation for Exception catch and pass.
type

Returns a string containing the name of the type of Object (Number, String, etc).
uniqueHexId

Returns uniqueId in a hexadecimal form (with a "0x" prefix)

      Io> Object uniqueId
      ==> 3146784
      Io> Object uniqueHexId
      ==> 0x300420

uniqueId

Returns a Number containing a unique id for the receiver.
unpersist

PDB extension to populate this object with the data associated with this object's ppid from PDB.
updateSlot(slotNameString, valueObject)

Same as setSlot(), but raises an error if the slot does not already exist in the receiver's slot lookup path.
wait(s)

Pauses current coroutine for at least `s` seconds.
Note: current coroutine may wait much longer than designated number of seconds depending on circumstances.
while(<condition>, expression)

Keeps evaluating message until condition return Nil. Returns the result of the last message evaluated or Nil if none were evaluated.
write(<any number of arguments>)

Sends a print message to the evaluated result of each argument. Returns Nil.
writeln(<any number of arguments>)

Same as write() but also writes a return character at the end. Returns Nil.
yield

Yields to another coroutine. Does nothing if yieldingCoros queue is empty.
See Coroutine documentation for more details.

## Obsidian

Module: Obsidian
Category: Databases
Credits: In collaboration with Rich Collins

### Description

A double key/value database with cursors on first key. Basis for PDB.

### Slot Index

close
delete
onAt

### Slots

close

Closes the persistence database file.
delete

Removes the persistence database file set via setPath.
onAt

Return the value associated with slotName of stored object whose ppid is objId.

## ObsidianServer

Module: Obsidian
Category: Databases

### Description

A network interface for Obsidian.

#### Starting a Server

    oServer := ObsidianServer clone
    oServer localObject setName("foo") open
    oServer start

#### Example Client Code

    client := MDOConnection clone setHost("127.0.0.1") setPort(8000) connect
    client onAtPut("1", "aKey", "aSlot")
    client onAtPut("1", "cKey", "cSlot")
    client onAtPut("1", "bKey", "bSlot")
    client first("1", 5) println
    a := client onAt("1", "aKey")
    writeln("a = ", a)
    b := client onAt("1", "bKey")
    writeln("b = ", b)
    client close

The messages accepted by the Obsidian server include:

    onAtPut(id, key, value)
    onAt(id, key)
    onRemoveAt(id, key)
    onFirst(id, count)
    onLast(id, count)
    onAfter(id, key, count)
    onBefore(id, key, count)

### Slot Index

### Slots

## OpenGL

Module: OpenGL
Category: Graphics

### Slot Index

glRasterPos2d
glRasterPos2dv
glRasterPos2f
glRasterPos2fv
glRasterPos2i
glRasterPos2iv
glRasterPos2s
glRasterPos2sv
glRasterPos3d
glRasterPos3dv
glRasterPos3f
glRasterPos3fv
glRasterPos3i
glRasterPos3iv
glRasterPos3s
glRasterPos3sv
glRasterPos4d
glRasterPos4dv
glRasterPos4f
glRasterPos4fv
glRasterPos4i
glRasterPos4iv
glRasterPos4s
glRasterPos4sv
glReadBuffer
glReadPixels
glRectd
glRectdv
glRectf
glRectfv
glRecti
glRectiv
glRects
glRectsv
glRenderMode
glRotated
glRotatef
glScaled
glScalef
glScissor
glSelectBuffer
glShadeModel
glStencilFunc
glStencilMask
glStencilOp
glTexCoord1d
glTexCoord1dv
glTexCoord1f
glTexCoord1fv
glTexCoord1i
glTexCoord1iv
glTexCoord1s
glTexCoord1sv
glTexCoord2d
glTexCoord2dv
glTexCoord2f
glTexCoord2fv
glTexCoord2i
glTexCoord2iv
glTexCoord2s
glTexCoord2sv
glTexCoord3d
glTexCoord3dv
glTexCoord3f
glTexCoord3fv
glTexCoord3i
glTexCoord3iv
glTexCoord3s
glTexCoord3sv
glTexCoord4d
glTexCoord4dv
glTexCoord4f
glTexCoord4fv
glTexCoord4i
glTexCoord4iv
glTexCoord4s
glTexCoord4sv
glTexCoordPointer
glTexEnvf
glTexEnvfv
glTexEnvi
glTexEnviv
glTexImage1D
glTexImage2D
glTexParameterf
glTexParameterfv
glTexParameteri
glTexParameteriv
glTexSubImage1D
glTexSubImage2D
glTranslated
glTranslatef
glTranslatei
glVertex2d
glVertex2dv
glVertex2f
glVertex2fv
glVertex2i
glVertex2iv
glVertex2s
glVertex2sv
glVertex3d
glVertex3dv
glVertex3f
glVertex3fv
glVertex3i
glVertex3iv
glVertex3s
glVertex3sv
glVertex4d
glVertex4dv
glVertex4f
glVertex4fv
glVertex4i
glVertex4iv
glVertex4s
glVertex4sv
glVertexPointer
glViewport

### Slots

glRasterPos2d

undocumented
glRasterPos2dv

undocumented
glRasterPos2f

undocumented
glRasterPos2fv

undocumented
glRasterPos2i

undocumented
glRasterPos2iv

undocumented
glRasterPos2s

undocumented
glRasterPos2sv

undocumented
glRasterPos3d

undocumented
glRasterPos3dv

undocumented
glRasterPos3f

undocumented
glRasterPos3fv

undocumented
glRasterPos3i

undocumented
glRasterPos3iv

undocumented
glRasterPos3s

undocumented
glRasterPos3sv

undocumented
glRasterPos4d

undocumented
glRasterPos4dv

undocumented
glRasterPos4f

undocumented
glRasterPos4fv

undocumented
glRasterPos4i

undocumented
glRasterPos4iv

undocumented
glRasterPos4s

undocumented
glRasterPos4sv

undocumented
glReadBuffer

undocumented
glReadPixels

undocumented
glRectd

undocumented
glRectdv

undocumented
glRectf

undocumented
glRectfv

undocumented
glRecti

undocumented
glRectiv

undocumented
glRects

undocumented
glRectsv

undocumented
glRenderMode

undocumented
glRotated

undocumented
glRotatef

undocumented
glScaled

undocumented
glScalef

undocumented
glScissor

undocumented
glSelectBuffer

undocumented
glShadeModel

undocumented
glStencilFunc

undocumented
glStencilMask

undocumented
glStencilOp

undocumented
glTexCoord1d

undocumented
glTexCoord1dv

undocumented
glTexCoord1f

undocumented
glTexCoord1fv

undocumented
glTexCoord1i

undocumented
glTexCoord1iv

undocumented
glTexCoord1s

undocumented
glTexCoord1sv

undocumented
glTexCoord2d

undocumented
glTexCoord2dv

undocumented
glTexCoord2f

undocumented
glTexCoord2fv

undocumented
glTexCoord2i

undocumented
glTexCoord2iv

undocumented
glTexCoord2s

undocumented
glTexCoord2sv

undocumented
glTexCoord3d

undocumented
glTexCoord3dv

undocumented
glTexCoord3f

undocumented
glTexCoord3fv

undocumented
glTexCoord3i

undocumented
glTexCoord3iv

undocumented
glTexCoord3s

undocumented
glTexCoord3sv

undocumented
glTexCoord4d

undocumented
glTexCoord4dv

undocumented
glTexCoord4f

undocumented
glTexCoord4fv

undocumented
glTexCoord4i

undocumented
glTexCoord4iv

undocumented
glTexCoord4s

undocumented
glTexCoord4sv

undocumented
glTexCoordPointer

undocumented
glTexEnvf

undocumented
glTexEnvfv

undocumented
glTexEnvi

undocumented
glTexEnviv

undocumented
glTexImage1D

undocumented
glTexImage2D

undocumented
glTexParameterf

undocumented
glTexParameterfv

undocumented
glTexParameteri

undocumented
glTexParameteriv

undocumented
glTexSubImage1D

undocumented
glTexSubImage2D

undocumented
glTranslated

undocumented
glTranslatef

undocumented
glTranslatei

undocumented
glVertex2d

undocumented
glVertex2dv

undocumented
glVertex2f

undocumented
glVertex2fv

undocumented
glVertex2i

undocumented
glVertex2iv

undocumented
glVertex2s

undocumented
glVertex2sv

undocumented
glVertex3d

undocumented
glVertex3dv

undocumented
glVertex3f

undocumented
glVertex3fv

undocumented
glVertex3i

undocumented
glVertex3iv

undocumented
glVertex3s

undocumented
glVertex3sv

undocumented
glVertex4d

undocumented
glVertex4dv

undocumented
glVertex4f

undocumented
glVertex4fv

undocumented
glVertex4i

undocumented
glVertex4iv

undocumented
glVertex4s

undocumented
glVertex4sv

undocumented
glVertexPointer

undocumented
glViewport

undocumented

## PDB

Module: Obsidian
Category: Databases
Credits: In collaboration with Rich Collins

### Description

An arbitrary graph database with support for on-disk garbage collection. Example use:

#### Setup

    PDB open
    PDB root atPut("users", PMap clone)
    PDB sync
    PDB close

PMap is a Map/Dictionary whose keys are lazily loaded from the database. PDB root is the root PMap in the database and the root object used for PDB's garbage collector. PDB sync needs to be called to write any changes to the database.

#### Defining a Persistent Object

    User := Object clone pSlots(name, email)

The pSlots(), declares which slots on the object should be persisted. The List, Date, Sequence and Number primitives already know how to persist themselves.

#### Inserting a Persistent Object

    PDB open
    user := User clone setName("steve") setEmail("steve@foo.com")
    PDB root users atPut("steve", user)
    PDB sync
    PDB close

#### Accessing a Persistent Object

    user := PDB root users at("steve")
    writeln("user name = ", user name, " email = ", user email)

#### Updating a Persistent Object

    user setEmail("steve@newDomain.com")
    PDB sync

PDB sync will scan all persistent objects in the vm and save any with changes to their persistent slots. If the object was already in the database, only it's updated slots will be written.

#### Removing an entry in a PMap

    PDB root users removeAt("steve")

#### Removing a persistent object

This is never done explicitly, instead calling:

    PDB collectGarbage

Will remove all objects unreachable by the reference graph from the root PMap.

Notes: Currently, PDB is a singleton.

### Slot Index

addObjectToPersist
close
collectGarbage
newId
objectAtPpid
reopen
root
show
sync

### Slots

addObjectToPersist

Register an object to be persisted in the next PDB sync.
close

Close the persistence database.
collectGarbage

Remove from PDB all objects not accessible via the root object.
newId

Generate a new PDB id number for use as a persistent object's ppid.
objectAtPpid

Return the object associated in the database with a ppid.
reopen

Sync, close and reopen the PDB store.
root

Return the root PMap object used to store and retrieve persistent objects and their slots.
show

Print to standard output a listing of all objects and IDs stored in PDB.
sync

Immediately persist data for all objects marked dirty by Collector whose shouldPersistByDefault is true, or that have specifically requested to be persisted since the last sync via addObjectToPersist.

## PMap

Module: Obsidian

### Description

PMap stores persistent data in a Map-like fashion and lazily loads available slots from the PDB backing store. Values stored or loaded are cached into local object slots.

### Slot Index

at()
atPut()
createIfAbsent
objectsForKeys
persist
persistSlots
removeAt
removeSlot
shouldPersistByDefault
slotCount

### Slots

at(slotName)

Tries to obtain a value for slot slotName from a local slot of that name, or tries to load it from the PDB if the local slot does not exist. When all else fails, returns nil.

If slotName begins with an underscore ("_"), returns the id of the slot from PDB instead of the value.

atPut(slotName, value)

Records value in the slot named slotName.
createIfAbsent

Creates a slot with a new PMap clone if not already present.
objectsForKeys

Returns a list of values for each key in the list given. Keys beginning with an underscore ("_") are returned verbatim.
persist

Commits the PMap's slots to PDB.
persistSlots

Cleans up dirty slots by committing them to PDB.
removeAt

Marks a value for removal.
removeSlot

Marks a value for removal.
shouldPersistByDefault

PDB boolean flag indicating whether this object should be considered for persistence when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist. Always true by default for PMap.
slotCount

Returns the number of slots committed to PDB.

## Path

Module: Core
Category: FileSystem

### Slot Index

absolute
hasDriveLetters
isPathAbsolute
thisSourceFilePath
with()

### Slots

absolute

Returns an absolute version of the path.
hasDriveLetters

returns true if the platform requires DOS C: style drive letters.
isPathAbsolute

Returns true if path is absolute, false if it is relative.
thisSourceFilePath

Uses call message label to return an absolute path to the file that contains the sender.
with(aSequence)

Returns a new Path object for the given Sequence.

## Postgres

Module: Postgres
Category: Databases

### Slot Index

ConnStatusType
ExecStatusType
PGTransactionStatusType
PGVerbosity
PGconn
PGnumber
PGresult
PGstring
PostgresPollingStatusType
convert
enum
forward
fromPostgres
libpq
map
returns
void

### Slots

ConnStatusType

undocumented
ExecStatusType

undocumented
PGTransactionStatusType

undocumented
PGVerbosity

undocumented
PGconn

undocumented
PGnumber

undocumented
PGresult

undocumented
PGstring

undocumented
PostgresPollingStatusType

undocumented
convert

undocumented
enum

undocumented
forward

undocumented
fromPostgres

undocumented
libpq

undocumented
map

undocumented
returns

undocumented
void

undocumented

## Python

Module: Python
Category: Server

### Description

This object provides access the world of python.

### Slot Index

### Slots

## QDBM

Module: QDBM
Category: Databases

### Description

An ordered key/value database that supports transactions and arbitrary kay and value sizes.

### Slot Index

abort
at()
atPut()
atRemove()
begin
close
commit
cursor
cursorFirst
cursorJumpBackward()
cursorJumpForward()
cursorKey
cursorLast
cursorNext
cursorPrevious
cursorPut()
cursorRemove
cursorValue
name
open()
optimize
path
removeAt
setPath
size
sizeAt()
sync
transactionalAtPut
transactionalRemoveAt

### Slots

abort

Abort transaction. Returns self
at(keySymbol)

Returns a Sequence for the value at the given key or nil if there is no such key.
atPut(keySymbol, valueSequence)

Sets the value of valueSequence with the key keySymbol. Returns self.
atRemove(keySymbol)

Removes the specified key. Returns self
begin

Begin transaction. Returns self
close

Closes the database.
commit

Commit transaction. Returns self
cursor

undocumented
cursorFirst

Move cursor to first record. Returns self
cursorJumpBackward(key)

Move cursor to previous record around key. Returns self
cursorJumpForward(key)

Move cursor to next record around key. Returns self
cursorKey

Returns current cursor key or nil.
cursorLast

Move cursor to last record. Returns self
cursorNext

Move cursor to next record. Returns true if there is another key, or false if there is no next record.
cursorPrevious

Move cursor to previous record. Returns true if there is another key, or false if there is no previous record.
cursorPut(value)

Sets the value at the current cursor postion. Returns self.
cursorRemove

Removes the current cursor postion. Returns self.
cursorValue

Returns current cursor value or nil.
name

Returns the name of the database.
open(path)

Opens the database.
optimize

Optimizes the database. Returns self
path

undocumented
removeAt

undocumented
setPath

undocumented
size

Returns number of records in database. Returns self
sizeAt(keySymbol)

Returns the size of the value at the given key or nil if there is no such key.
sync

Syncs the database. Returns self
transactionalAtPut

undocumented
transactionalRemoveAt

undocumented

## Random

Module: Random
Category: Math

### Description

A high quality and reasonably fast random number generator based on Makoto Matsumoto, Takuji Nishimura, and Eric Landry's implementation of the Mersenne Twister algorithm. The default seed is and xor of the ANSI C time() and clock() return values.

### Slot Index

bytes()
flip
gaussian()
setSeed()
value()

### Slots

bytes(count)

Returns a Sequence of size count containing random bytes.
flip

Returns a random bit as a true or false object.
gaussian(optionalMean, optionalStandardDeviation)

Returns a pseudo random number between 0 and 1 with a gaussian distribution.
setSeed(aNumber)

Sets the random number generator seed to the unsign int version of aNumber.
value(optionalArg1, optionalArg2)

If called with:

- no arguments, it returns a floating point random Number between 0 and 1.
- one argument, it returns a floating point random Number between 0 and optionalArg1.
- two arguments, it returns a floating point random Number between optionalArg1 and optionalArg2.

## Range

Module: Range
Category: Jeremy Tregunna, 2006

### Description

Simple datastructure representing the items at and between two specific points.

### Slot Index

asList
at()
contains
first
foreach()
index
indexOf()
last
levenshtein()
map()
next
nextInSequence()
previous
rewind
select
setRange()
slice()
to
to()
toBy()
toBy()
value

### Slots

asList

Returns a list containing all the items within and including the ranges starting and ending points.
at(position)

Rewinds the range, skips forward until we're at the supplied position then returns the value at that position. Raises an exception if the position is out of bounds.
contains

Returns a boolean value if the range contains the argument. This works independant of any increment value.
first

Moves the current cursor to the beginning of the range, and returns it.
foreach(optionalIndex, value, message)

Iterates over each item beginning with the starting point, and finishing at the ending point inclusive. This method can operate several ways; these include: (1) Takes one argument, the message tree to be executed during each iteration; (2) Takes two arguments, the first argument is the name of the current value being iterated over, and the second is the message tree to be executed during each iteration; (3) Takes three arguments: the first is the current index within the range, the second is the name of the current value being iterated over, and the third is the message tree to be executed during each iteration. For example:

    // First method (operating on numbers)
    1 to(10) foreach("iterating" print) // prints "iterating" 10 times
    // Second method (operating on numbers)
    1 to(10) foreach(v, v print) // prints each value
    // Third method (operating on numbers)
    1 to(10) foreach(i, v, writeln(i .. ": " .. v)) // prints "index: value"

index

Returns the current index number starting from zero and extending outward up to the maximum number of items in the range.
indexOf(aValue)

Calculates each value, checking to see if it matches the aValue parameter. If so, return the position within the range. NOTE: This method rewinds the range before searching. If you need to revert back to your original position, make a duplicate of the range, and use indexOf on it instead.
last

Moves the current cursor to the end of the range, and returns it.
levenshtein(other)

Returns the levenshtein distance to other.
map([value], body)

Returns a new list which contains the result of the 'body' for every element stepped over in the range, from the starting point to the ending point inclusive.
next

Sets the current item in the range to the next item in the range, and returns a boolean value indicating whether it is not at the end of the range.
nextInSequence(skipVal)

Returns the next item in the sequence. The optional skipVal parameter allows you to skip ahead skipVal places.
previous

Sets the current item in the range to the previous item in the range, and returns a boolean value indicating whether it is not at the beginning of the range.
rewind

Sets the current item and the index to the values the receiver started out with.
select

Operates the same as 'List select'
setRange(start, end, increment)

Has several modes of operation. First, if only two parameters are specified, the increment value is set to 1 by default, while the first parameter represents the point to start from, and the second parameter represents the point to end at. If the second parameter is smaller than the first, the range will operate backwards. If the third parameter is specified, a custom iteration value will be used instead of 1.
slice(start, end, [by])

Returns a list containing the values from the Range starting at the start parameter, ending at the end parameter, and optionally incremented by the by parameter.
to

Convenience constructor that returns a cursor object representing the range of numbers from the receiver to the 'endingPoint' parameter. Increments over each item in that range by 1.
to(endpoint)

Convenience constructor that returns a range of sequences from the receiver to the endpoint argument. Increments over each item in that range by 1.
toBy(endingPoint, incrementValue)

Convenience constructor that returns a cursor object representing the range of numbers from the receiver to the 'endingPoint' parameter. Increments over each item in that range by the 'incrementValue' parameter.
toBy(endpoint, increment)

Convenience constructor that returns a range of sequences from the receiver to the endpoint argument. Increments over each item in that range by the value of the increment parameter. The increment parameter must be positive.
value

Returns the value of the current item in the range.

## Rational

Module: Rational
Category: Math

### Slot Index

!=()
%()
*()
+()
-()
/()
==()
abs
asNumber
asRational
asString
compare()
denominator
divmod()
gcd()
negate
numerator
pow()
reduce
serialized
setDenominator()
setNumerator()
with()

### Slots

!=(other)

Compares two numbers against one another. Returns true if they are equal (represent the same number), false otherwise.
%(aNum)

Returns the receiver modulus aNum
*(aNum)

Returns the value of the receiver multiplied by aNum.
+(aNum)

Returns the value of the receiver added to aNum.
-(aNum)

Returns the value of the receiver subtracted from aNum.
/(aNum)

Returns the value of the receiver divided by aNum.
==(other)

Compares two numbers against one another. Returns true if they are equal (represent the same number), false otherwise.
abs

Returns a Rational number with the absolute value of the receiver.
asNumber

Converts the Rational number to a floating point number.
asRational

Converts the number to a Rational number. CAVEAT: Numbers in Io are floating point entities, which means since they are imprecise, this conversion may yield values not expected.")
asString

Returns a text string representing the Rational number.
compare(other)

Compares two numbers against one another. Returns a positive, zero or negative value based on whether the receiver is larger, equal or less than the argument.
denominator

Returns the denominator.
divmod(aNum)

Returns a list containing the integer value and the receiver modulus aNum.
gcd(aNum)

Calculates the greatest common denominator between the receiver and the argument.
negate

Negates the Rational number.
numerator

Returns the numerator.
pow(aNum)

Returns the value of the receiver to the power of aNum.
reduce

Reduces the numerator and denominator to their lowest terms.
serialized

Returns a bit of code which can be used to serialize the Rational number.
setDenominator(aNumber)

Sets the denominator. Returns self.
setNumerator(aNumber)

Sets the numerator. Returns self.
with(aNumerator, aDenominator)

Convenience constructor. Returns a new Rational number whose numerator and denominator are represented by the arguments aNumerator and aDenominator respectively.")

## ReadEvent

Module: Socket
Category: Networking

### Description

Object for read events.

### Slot Index

eventType

### Slots

eventType

undocumented

## ReadLine

Module: ReadLine
Category: Core

### Description

Binding to GNU readline.

### Slot Index

### Slots

## Regex

Module: Regex
Category: Parsers

### Description

The Regex addon adds support for Perl regular expressions using the PCRE library by Philip Hazel.

#### Example 1

    Io> re := "is.*a" asRegex
    Io> "This is a test. This is also a test." allMatchesOfRegex("is.*a") replaceAllWith("is not a")
    ==> "This is not a test. This is not a test.

#### Example 2

    Io> "11aabb" allMatchesOfRegex("aa*")
    ==> list("a", "a")

    Io> re := "(wom)(bat)" asRegex
    Io> "wombats are cuddly" matchesOfRegex(re) replaceAllWith("$2$1!")
    ==> batwom!s are cuddly

### Slot Index

asRegex
asString
captureCount
caseless
dotAll
extended
isCaseless
isDotAll
isExtended
isMultiline
matchesIn()
multiline
nameTable
namedCaptures
names
notCaseless
notDotAll
notExtended
notMultiline
pattern
version
with()

### Slots

asRegex

Returns self.
asString

Returns a string containing a textual representation of the receiver.
captureCount

Returns the number of captures defined by the pattern.
caseless

Returns a case insensitive clone of the receiver, or self if the receiver itself is case insensitive:

    	Io> "WORD" matchesRegex("[a-z]+")
    	==> false

    	Io> "WORD" matchesRegex("[a-z]+" asRegex caseless)
    	==> true

dotAll

Returns a clone of the receiver with the dotall option turned on, or self if the receiver itself has the option turned on.

In dotall mode, "." matches any character, including newline. By default it matches any character except newline.

    	Io> "A\nB" matchesOfRegex(".+") next string
    	==> A

    	Io> "A\nB" matchesOfRegex(".+" asRegex dotAll) next string
    	==> A\nB

extended

Returns a clone of the receiver with the extended option turned on, or self if the receiver itself has the option turned on.

In extended mode, a Regex ignores any whitespace character in the pattern except when escaped or inside a character class. This allows you to write clearer patterns that may be broken up into several lines.

Additionally, you can put comments in the pattern. A comment starts with a "#" character and continues to the end of the line, unless the "#" is escaped or is inside a character class.

isCaseless

Returns true if the receiver is case insensitive, false if not.
isDotAll

Returns true if the receiver is in dotall mode, false if not.
isExtended

Returns true if the receiver is in extended mode, false if not.
isMultiline

Returns true if the receiver is in multiline mode, false if not.
matchesIn(aString)

Returns a RegexMatches object that enumerates the matches of the receiver in the given string.
multiline

Returns a clone of the receiver with the multiline option turned on, or self if the receiver itself has the option turned on.

In multiline mode, "^" matches at the beginning of the string and at the beginning of each line; and "$" matches at the end of the string, and at the end of each line. By default "^" only matches at the beginning of the string, and "$" only matches at the end of the string.

    	Io> "A\nB\nC" allMatchesForRegex("^.")
    	==> list("A")

    	Io> "A\nB\nC" allMatchesForRegex("^." asRegex multiline)
    	==> list("A", "B", "C")

nameTable

Returns a list with the name of each capture. The first element will always be nil, because it corresponds to the whole match. The second element will contain the name of the first capture, or nil if the first capture has no name. And so on.
namedCaptures

Returns a Map that contains the index of each named group.
names

Returns a list of the name of each named capture. If there are no named captures, the list will be empty.
notCaseless

The reverse of caseless.
notDotAll

The reverse of dotAll.
notExtended

The reverse of extended.
notMultiline

The reverse of multiline.
pattern

Returns the pattern string that the receiver was created from.
version

Returns a string with PCRE version information.
with(pattern)

Returns a new Regex created from the given pattern string.

## RegexMatch

Module: Regex
Category: Parsers

### Description

Contains the result of a regular expression match operation. It acts as a read-only list of captured strings. The first item is the entire matched string. Each item after that is a captured sub pattern (anything inbetween parenthesis in the pattern).

    Io> match := "37signals" findRegex("([0-9]+)([a-z]+)(!!)?")
    ==> RegexMatch: "37signals"

    # Item 0 is the entire matched string:
    Io> match at(0)
    ==> 37signals

    # Item 1 is the first capture ("[0-9]+"):
    Io> match at(1)
    ==> 37

    # Item 2 is the second capture ("[a-z]+"):
    Io> match at(2)
    ==> signals

    # The third sub pattern wasn't part of the match, so item 3 is nil:
    Io> match at(3)
    ==> nil

    # You can access captures by name:
    Io> match at("number")
    ==> 37
    Io> match at("word")
    ==> signals

### Slot Index

asString
at()
captures
end
endOf()
expandTo()
foreach()
indexOf()
map()
nameOf()
names
postfix
prefix
range
rangeOf()
ranges
regex
select()
size
sizeInChars
slice()
start
startOf()
string
subject

### Slots

asString

Returns a string containing a textual representation of the receiver.
at(indexOrName)

Returns the capture with the given index or name. `at(0)` is the entire match.
captures

Returns a list of captured strings. The first element is the whole match.
end

Returns the index into the subject at which the match ends.
endOf(indexOrName)

Returns the index into the subject at which the capture with the given index or name ends.
expandTo(templateString)

Returns templateString with capture placeholders replaced with what they represent. `$0` is replaced with the whole match, `$1` is replaced with the first sub capture, etc. `${name}` is replaced with the capture of that name.
foreach([index], capture, message)

Loops through the captures, assigns each capture to capture, and evaluates message. Returns a list with the result of each evaluation.
indexOf(name)

Returns the index of the capture with the given name.
map([index], capture, message)

Like `foreach`, but the result of each evaluation of message is returned in a list.
nameOf(index)

Returns the name of the capture with the given index.
names

Returns a list of the name of each named capture. If there are no named captures, the list will be empty.
postfix

Returns a slice of the subject string that contains all text after this match. Equivalent to:

    	match subject slice(match end)

prefix

Returns a slice of the subject string that contains all text before this match. Equivalent to:

    	match subject slice(0, match start)

range

Returns the range of the match in the subject.
rangeOf(indexOrName)

Returns the range of the capture with the given index or name.
ranges

Returns a list containing the range of each capture.
regex

Returns the Regex that was used to find this match.
select([index], capture, message)

Like `foreach`, but the values for which the result of evaluating message are non-nil are returned in a list.
size

Returns the number of captures.
sizeInChars

Returns the length of the match, in characters.
slice(startIndex, [endIndex])

Returns a new list containing the subset of the receiver from the startIndex to the endIndex. The endIndex argument is optional. If not given, it is assumed to be the end of the capture list.
start

Returns the index into the subject at which the match starts.
startOf(indexOrName)

Returns the index into the subject at which the capture with the given index or name starts.
string

Returns the matched string.
subject

Returns the string that this match was found in.

## RegexMatches

Module: Regex
Category: Parsers

### Description

A regular expression match iterator.

### Slot Index

all
allowEmptyMatches
allowsEmptyMatches
anchored
disallowEmptyMatches
endPosition
foreach()
foreachInterval()
last
map()
next
position
regex
replace()
replaceAllWith()
reset
setEndPosition()
setPosition()
setRegex()
setString()
splitString
string

### Slots

all

Returns a list containing all matches in the string.
allowEmptyMatches

Tells the receiver to allow zero length matches. Empty matches are allowed by default. Returns self.
allowsEmptyMatches

Returns true if the receiver allows empty matches, false if not.
anchored

Like `next`, but will only match at the current search position.
disallowEmptyMatches

Tells the receiver not to allow zero length matches. Returns self.
endPosition

Returns the index in the string where the receiver stops searching.
foreach(value, message)

Loops through the matches, assigns each match to value, and evaluates message. Returns the result of the last evaluation.
foreachInterval(value, matchMessage, nonMatchMessage)

Like `foreach`, but takes an extra message that will be evaluated for the non-matching text before each match, and the non-matching text after the last match.
last

Returns the last match in the string.
map(value, message)

Like `foreach`, but the result of each evaluation of message is returned in a list.
next

Returns the next match, or nil if there is none.
position

Returns the search position as an index in the string.
regex

Returns the Regex that the receiver uses for finding matching.
replace(name, message)

Replaces each match in the string with the result of message and returns the resulting string.
replaceAllWith(templateString)

Same as:

    	replace(match, match expandTo(templateString))

reset

Resets the search position to the beginning of the string. Returns self.
setEndPosition(anIndex)

Sets the index in the string where the receiver should stop searching. It will be as if the string ends at that index. If index is nil, the end position will be set to the end of string. Returns self.

    	Io> "funkadelic" matchesOfRegex("\\w+") setEndPosition(4) next string
    	==> funk

    	Io> "funkadelic" matchesOfRegex("\\w+") setEndPosition(nil) next string
    	==> funkadelic

setPosition(aRegexOrString)

Sets the search position to the given index in the string. Returns self.
setRegex(aRegexOrString)

Sets the regex to find matches in. Returns self.
setString(aString)

Sets the string to find matches in. Returns self.
splitString

Splits the string being matched against into pieces using the regex as the delimiter and returns the piece as a list of strings.
string

Returns the string that the receiver finds matches in.

## SGMLElement

Module: SGML

### Slot Index

allText
asObject
asString
attribute
attributes
beginTag
elementWithName
elementsWithName
elementsWithNameAndClass
elementsWithNameAndId
endTag
firstText
linkStrings
name
parent
redirectStrings
search
setAttributes
setName()
setParent
setSubitems
setText
subitems
tableData
text
withText
writeToStream

### Slots

allText

undocumented
asObject

undocumented
asString

Returns a String representation of the tag and all of it's subitems.
attribute

undocumented
attributes

Returns a Map containing the tag's attributes.
beginTag

undocumented
elementWithName

undocumented
elementsWithName

undocumented
elementsWithNameAndClass

undocumented
elementsWithNameAndId

undocumented
endTag

undocumented
firstText

undocumented
linkStrings

undocumented
name

Returns the tag name
parent

undocumented
redirectStrings

undocumented
search

undocumented
setAttributes

undocumented
setName(aString)

Sets the tag name. Returns self.
setParent

undocumented
setSubitems

undocumented
setText

undocumented
subitems

Returns a List containing the tag's subitems.
tableData

undocumented
text

undocumented
withText

undocumented
writeToStream

undocumented

## SGMLParser

Module: SGML
Category: XML

### Description

This object can be used to parse SGML / HTML / XML.

### Slot Index

elementForString
elementProto
endElement
newAttribute
newText
parse()
startElement
tagForString()
top

### Slots

elementForString

undocumented
elementProto

undocumented
endElement

undocumented
newAttribute

undocumented
newText

undocumented
parse(aSequence)

Parses aSequence and calls the following methods on self;

    startElement(name)
    endElement(name)
    newAttribute(key, value)
    newText(text)

for each of the items it finds. Returns self.
startElement

undocumented
tagForString(aSequence)

Parses aSequence and returns an SGMLTag object.
top

undocumented

## SHA1

Module: SHA1
Category: Digests

### Description

An object for calculating SHA1 hashes. Each has calculation should instiate it's own SHA1 instance.

### Slot Index

appendSeq()
hash
hashString
sha1
sha1String

### Slots

appendSeq(aSequence)

Appends aSequence to the hash calculation. Returns self.
hash

undocumented
hashString

undocumented
sha1

Completes the SHA1 calculation and returns the hash as a Buffer. Once this method is called, append() should not be called again on the receiver or it will raise an exception.")
sha1String

Returns a string containing a hexadecimal representation of the sha1 hash.")

## SQLite

Module: SQLite
Category: Databases

### Description

SQLite provides a embedded simple and fast (2x faster than PostgreSQL or MySQL) SQL database. See http://www.hwaci.com/sw/sqlite/ for details. It's SQL command set is described at http://www.hwaci.com/sw/sqlite/lang.html. SQLite was written by Dr. Richard Hipp who offers consulting services for custom modifications and support of SQLite. Example:

    db := SQLite clone
    db setPath("myDatabase.sqlite")
    db open
    db exec("CREATE TABLE Dbm (key, value)")
    db exec("CREATE INDEX DbmIndex ON Dbm (key)")
    db exec("INSERT INTO Dbm ('key', 'value') VALUES ('a', '123')")
    db exec("INSERT INTO Dbm ('key', 'value') VALUES ('a', 'efg')")
    rows := db exec("SELECT key, value FROM Dbm WHERE key='a'")
    db exec("DELETE FROM Dbm WHERE key='a'")
    rows := db exec("SELECT key, value FROM Dbm WHERE key='a'")
    db close

### Slot Index

changes
close
columnNamesOfTable()
debugOff
debugOn
error
escapeString()
exec()
isOpen
lastInsertRowId
open()
path
setPath()
setTimeoutSeconds()
tableNames
timeoutSeconds
version
viewNames

### Slots

changes

Returns the number of rows that were changed by the most recent SQL statement. Or Nil if the database is closed.
close

Closes the database if it is open. Returns self. If the database is open when the open is garbage collected, it will be automatically closed.
columnNamesOfTable(tableName)

Returns a list containing the names of all columns in the specified table.
debugOff

Turns off debugging.
debugOn

Turns on debugging.
error

Results a string containing the current error. If there is no error, Nil is returned.
escapeString(aString)

Returns a translated version of aString by making two copies of every single-quote (') character. This has the effect of escaping the end-of-string meaning of single-quote within a string literal.
exec(aString)

Opens the database if it is not already open and executes aString as an sql command. Results a List of Map objects or Nil if there was an error. Each map holds the contents of a row. The key/value pairs of the maps being column name/column value pairs for a row. ")
isOpen

Returns true if the database is open, false otherwise.
lastInsertRowId

Returns the number with the row id of the last row inserted.
open(optionalPathString)

Opens the database.Returns self on success or nil upon failure. If the databse is locked, "yield" will be called until it is accessable or timeoutSeconds has expired.
path

Returns the path to the database file.
setPath(aSeq)

Sets the path to the database file. Returns self.
setTimeoutSeconds(aNumber)

Sets the open timeout to aNumber. If aNumber is 0, an open call will never timeout. Returns self.
tableNames

Returns a list containing the names of all tables in the database.
timeoutSeconds

Returns the number of seconds to wait before timing out an open call. If the number is 0, an open call will never timeout.
version

Results a string the version of SQLite being used.
viewNames

Returns a list containing the names of all views in the database.

## SQLite3

Module: SQLite3
Category: Databases

### Description

SQLite provides a embedded simple and fast (2x faster than PostgreSQL or MySQL) SQL database. See http://www.hwaci.com/sw/sqlite/ for details. It's SQL command set is described at http://www.hwaci.com/sw/sqlite/lang.html. SQLite was written by Dr. Richard Hipp who offers consulting services for custom modifications and support of SQLite. Example:

    db := SQLite clone
    db setPath("myDatabase.sqlite")
    db open
    db exec("CREATE TABLE Dbm (key, value)")
    db exec("CREATE INDEX DbmIndex ON Dbm (key)")
    db exec("INSERT INTO Dbm ('key', 'value') VALUES ('a', '123')")
    db exec("INSERT INTO Dbm ('key', 'value') VALUES ('a', 'efg')")
    rows := db exec("SELECT key, value FROM Dbm WHERE key='a'")
    db exec("DELETE FROM Dbm WHERE key='a'")
    rows := db exec("SELECT key, value FROM Dbm WHERE key='a'")
    db close

### Slot Index

changes
close
columnNamesOfTable()
debugOff
debugOn
error
escapeString()
exec()
isOpen
lastInsertRowId
open()
path
setPath
setTimeoutSeconds()
tableNames
timeoutSeconds
version
viewNames

### Slots

changes

Returns the number of rows that were changed by the most recent SQL statement. Or Nil if the database is closed.
close

Closes the database if it is open. Returns self. If the database is open when the open is garbage collected, it will be automatically closed.
columnNamesOfTable(tableName)

Returns a list containing the names of all columns in the specified table.
debugOff

Turns off debugging.
debugOn

Turns on debugging.
error

Results a string containing the current error. If there is no error, Nil is returned.
escapeString(aString)

Returns a translated version of aString by making two copies of every single-quote (') character. This has the effect of escaping the end-of-string meaning of single-quote within a string literal.
exec(aString)

Opens the database if it is not already open and executes aString as an sql command. Results a List of Map objects or Nil if there was an error. Each map holds the contents of a row. The key/value pairs of the maps being column name/column value pairs for a row.
isOpen

Returns true if the database is open, false otherwise.
lastInsertRowId

Returns the number with the row id of the last row inserted.
open(optionalPathString)

Opens the database. If there is an optionalPathString argument, the path is set to it's value before opening the database. If path is "" or ":memory:" a database will be created in-memory, otherwise the file specified by path is opened. Returns self or Nil upon failure. If the databse is locked, "yield" will be called until it is accessable or timeoutSeconds has expired. ""
path

Returns the path to the database file.
setPath

Sets the path to the database file. Returns self.
setTimeoutSeconds(aNumber)

Sets the open timeout to aNumber. If aNumber is 0, an open call will never timeout. Returns self.
tableNames

Returns a list containing the names of all tables in the database.
timeoutSeconds

Returns the number of seconds to wait before timing out an open call. If the number is 0, an open call will never timeout.
version

Results a string the version of SQLite being used.
viewNames

Returns a list containing the names of all views in the database.

## SampleRateConverter

Module: SampleRateConverter
Category: Media

### Description

A binding for lib sample rate.

### Slot Index

### Slots

## Sandbox

Module: Core
Category: Core

### Description

Sandbox can be used to run separate instances of Io within the same process.

### Slot Index

doSandboxString()
messageCount
printCallback()
setMessageCount()
setTimeLimit()
timeLimit

### Slots

doSandboxString(aString)

Evaluate aString inside the Sandbox.
messageCount

Returns a number containing the messageCount limit of the Sandbox.
printCallback(string)

default implementation is; method(string, string print)
setMessageCount(anInteger)

Sets the messageCount limit of the receiver.
setTimeLimit(aDouble)

Sets the time limit of the Sandbox.
timeLimit

Returns a number containing the time limit of calls made to the Sandbox.

## Scheduler

Module: Core

### Slot Index

currentCoroutine
setTimers()
setYieldingCoros()
timers
waitForCorosToComplete
yieldingCoros

### Slots

currentCoroutine

Returns the currently running coroutine.
setTimers(aListOfTimers)

Sets the list of active timers.
setYieldingCoros(aListOfCoros)

Sets the list of yielding Coroutine objects.
timers

The List of active timers.
waitForCorosToComplete

undocumented
yieldingCoros

The List of yielding Coroutine objects.

## SecureClient

Module: SecureSocket
Category: Networking

### Description

Interface to secure network communication. A SecureClient is a wrapper on an OpenSSL SSL_CTX object and supports both TLSv1 and DTLSv1. Example:

    //...

""")

### Slot Index

### Slots

## SecureServer

Module: SecureSocket
Category: Networking

### Description

Interface to secure network communication. A SecureServer is a wrapper on an OpenSSL SSL_CTX object and supports both TLSv1 and DTLSv1. Example:

    //...

""")

### Slot Index

port
setHost()
setPort()
stop

### Slots

port

Returns the port on which the server will listen for connections.")
setHost(hostName)

Sets the hostName. Returns self.")
setPort(aNumber)

Sets the port on which the server will listen for connections. Returns self.")
stop

Stops the server if it is running. Returns self.")

## SecureSocekt

Module: SecureSocket

### Slot Index

### Slots

## SecureSocket

Module: SecureSocket
Category: Networking

### Slot Index

### Slots

## Sequence

Module: Core
Category: Core

### Description

A Sequence is a container for a list of data elements. Typically these elements are each 1 byte in size. A Sequence can be either mutable or immutable. When immutable, only the read-only methods can be used.

Terminology

- Buffer: A mutable Sequence of single byte elements, typically in a binary encoding
- Symbol or String: A unique immutable Sequence, typically in a character encoding

### Slot Index

*()
*=()
+()
+=()
-
-=()
..()
/()
/=()
<
<=
>
>=
EscapeRegex
Max
Min
abs
acos
addEquals
afterSeq()
alignCenter()
alignLeft()
alignLeftInPlace()
alignRight()
allMatchesOfRegex()
alpha
append()
appendPathSeq()
appendSeq()
asBase64
asBinaryNumber
asBuffer
asCapitalized
asDecodedList
asFile
asFixedSizeType
asHTML
asHex
asHtml
asIoPath
asJson
asLowercase
asMessage()
asMutable
asNumber
asOSPath
asRegex
asSGML
asSimpleString
asString
asStruct()
asSymbol
asUCS2
asUCS4
asURL
asUTF8
asUppercase
asXML
asin
at()
atInsertSeq()
atPut()
atan
beforeSeq()
beginsWithSeq()
between()
betweenSeq
bitAt()
bitCount
bitwiseAnd()
bitwiseNot()
bitwiseOr()
bitwiseXor()
blue
byteAt()
cPrint
capitalize
ceil
clear
clipAfterSeq()
clipAfterStartOfSeq()
clipBeforeEndOfSeq()
clipBeforeSeq()
cloneAppendPath()
cloneAppendSeq
contains()
containsAnyCaseSeq()
containsSeq()
convertToFixedSizeType
convertToItemType()
copy()
cos
cosh
depth
distanceTo()
dotProduct()
drawAsLine
drawFilled
drawLineLoop
drawLineLoopi
drawQuad
drawQuadTo
duplicateIndexes
empty
encoding
endsWithSeq()
escape
escapeRegexChars
exSlice
exclusiveSlice()
exp
fileName
findNthSeq()
findRegex()
findSeq()
findSeqs()
floor
foreach()
fromBase()
glClearColor
glColor
glNormal
glProject
glRotate
glScale
glTranslate
glTranslatei
glUnproject
glVertex
greaterThan()
greaterThanOrEqualTo()
green
hasMatchOfRegex()
hash
height
inSlice
inclusiveSlice()
insertSeqEvery
interpolate()
interpolateInPlace()
isEmpty
isEqualAnyCase()
isLowercase
isMutable
isSymbol
isUppercase
isZero
itemCopy
itemSize
itemType
justSerialized()
lastPathComponent
leaveThenRemove
lessThan()
lessThanOrEqualTo()
levenshtein
linePrint
log
log10
logicalAnd()
logicalOr()
lowercase
lstrip()
makeFirstCharacterLowercase
makeFirstCharacterUppercase
matchesOfRegex()
matchesRegex()
max
md5
md5String
mean
meanSquare
min
negate
nextInSequence
normalize
occurancesOfSeq()
orderedSplit
pathComponent
pathExtension
preallocateToSize()
prependSeq()
print
product
rangeFill
red
removeAt()
removeEvenIndexes
removeLast
removeOddIndexes
removePrefix()
removeSeq()
removeSlice()
removeSuffix()
repeated()
replaceFirstSeq()
replaceMap()
replaceSeq()
reverse
reverseFindSeq()
reverseInPlace
rootMeanSquare
rstrip()
sequenceSets
set()
setAlpha
setBlue
setDepth
setEncoding()
setGreen
setHeight
setItemType()
setItemsToDouble()
setItemsToLong()
setRed
setSize()
setWidth
setX
setY
setZ
sha1
sha1String
sin
sinh
size
sizeInBytes
slice
slicesBetween()
sort
split()
splitAt()
splitAtRegex()
splitNoEmpties
sqrt
square
strip()
sum
tan
tanh
to
toBase()
toBy
translate()
unescape
uppercase
validEncodings
validItemTypes
whiteSpaceStrings
width
with()
withStruct()
writeToStream
x
y
z
zCompress
zUncompress
zero

### Slots

*(aSeq)

Multiplies the values of aSeq to the corresponding values of the receiver returning a new vector with the result. Only works on Sequences whose item type is numeric.
*=(aSeq)

Multiplies the values of aSeq to the corresponding values of the receiver. Only works on Sequences whose item type is numeric. Returns self.
+(aSeq)

Vector addition - Adds the values of aSeq to the corresponding values of the receiver returning a new vector with the result. Only works on Sequences whose item type is numeric.
+=(aSeq)

Vector addition - adds the values of aSeq to those of the receiver. Only works on Sequences whose item type is numeric. Returns self.
-

undocumented
-=(aSeq)

Vector subtraction - subtracts the values of aSeq to those of the receiver. Only works on Sequences whose item type is numeric. Returns self.
..(aSequence)

Returns a copy of the receiver with aSequence appended to it.
/(aSeq)

Divides the values of aSeq to the corresponding values of the receiver returning a new vector with the result. Only works on Sequences whose item type is numeric.
/=(aSeq)

Divides the values of aSeq to the corresponding values of the receiver. Only works on Sequences whose item type is numeric. Returns self.
<

undocumented
<=

undocumented
>

undocumented
>=

undocumented
EscapeRegex

undocumented
Max

Returns the maximum value in the sequence.
Min

Returns the minimum value in the sequence.
abs

Sets each value of the Sequence to it's absolute value. Returns self.
acos

Sets each value of the Sequence to the trigomentic arcsine of it's value. Returns self.
addEquals

undocumented
afterSeq(aSequence)

Returns the slice of the receiver (as a Symbol) after aSequence or nil if aSequence is not found. If aSequence is empty, the receiver (or a copy of the receiver if it is mutable) is returned.
alignCenter(width, [padding]) ""

Example: `Io> "abc" alignCenter(10, "-") ==> ---abc---- Io> "abc" alignCenter(10, "-=") ==> -=-abc-=-=`
alignLeft(width, [padding])

Example:

`Io> "abc" alignLeft(10, "+") ==> abc+++++++ Io> "abc" alignLeft(10, "-=") ==> abc-=-=-=-`

alignLeftInPlace(width, [padding])

Same as align left but operation is performed on the receiver.
alignRight(width, [padding])

Example:

`Io> "abc" alignRight(10, "-") ==> -------abc Io> "abc" alignRight(10, "-=") ==> -=-=-=-abc`

allMatchesOfRegex(aRegexOrString)

Returns a List containing all matches of the given regex found in the receiver.
alpha

undocumented
append(aNumber)

Appends aNumber (cast to a byte) to the receiver. Returns self.
appendPathSeq(aSeq)

Appends argument to the receiver such that there is one and only one path separator between the two. Returns self.
appendSeq(object1, object2, ...)

Calls asString on the arguments and appends the string to the receiver. Returns self.
asBase64

Returns an immutable, base64 encoded (according to RFC 1421) version of self.
asBinaryNumber

Returns a Number containing the first 8 bytes of the receiver without casting them to a double.
asBuffer

undocumented
asCapitalized

Returns a copy of the receiver with the first charater made uppercase.
asDecodedList

undocumented
asFile

Returns a new File object with the receiver as it's path.
asFixedSizeType

Returns a new sequence with the receiver encoded in the minimal fixed width text encoding that it's characters can fit into (either, ascii, utf8, utf16 or utf32).
asHTML

SGML extension to interpret the Sequence as HTML and return an SGML object using SGMLParser elementForString
asHex

Returns a hex string for the receiving sequence, e.g., \"abc\" asHex -> \"616263\".")
asHtml

undocumented
asIoPath

Returns a Io style path for an OS style path.
asJson

undocumented
asLowercase

Returns a symbol containing the reveiver made Lowercase.
asMessage(optionalLabel)

Returns the compiled message object for the string.
asMutable

Returns a mutable copy of the receiver.
asNumber

Returns the receiver converted to a number. Initial whitespace is ignored.
asOSPath

Returns a OS style path for an Io style path.
asRegex

Returns a new Regex created from the receiver.
asSGML

SGML extension to interpret the Sequence as SGML and return an SGML object using SGMLParser elementForString
asSimpleString

undocumented
asString

undocumented
asStruct(memberList)

For a sequence that contains the data for a raw memory data structure (as used in C), this method can be used to extract it's members into an Object. The memberList argument specifies the layout of the datastructure. It's form is:

list(memberType1, memberName1, memberType2, memberName2, ...)

Member types include:

    int8, int16, int32, int64
    uint8, uint16, uint32, uint64
    float32, float64

Example:

    pointObject := structPointSeq asStruct(list("float32", "x", "float32", "y"))

The output pointObject would contain x and y slots with Number objects.
asSymbol

Returns a immutable Sequence (aka Symbol) version of the receiver.
asUCS2

Returns a new copy of the receiver converted to UCS2 (fixed character width UTF16) encoding.
asUCS4

Returns a new copy of the receiver converted to UCS4 (fixed character width UTF32) encoding.
asURL

Returns a new URL object instance with the receiver as it's url string.
asUTF8

Returns a new copy of the receiver converted to utf8 encoding.
asUppercase

Returns a symbol containing the reveiver made uppercase.
asXML

SGML extension to interpret the Sequence as XML and return an SGML object using SGMLParser elementForString
asin

Sets each value of the Sequence to the trigomentic arcsine of it's value. Returns self.
at(aNumber)

Returns a value at the index specified by aNumber. Returns nil if the index is out of bounds.
atInsertSeq(indexNumber, object)

Calls asString on object and inserts the string at position indexNumber. Returns self.
atPut(aNumberIndex, aNumber)

Sets the value at the index specified by aNumberIndex to aNumber. Returns self.
atan

Sets each value of the Sequence to the trigomentic arctangent of it's value. Returns self.
beforeSeq(aSequence)

Returns the slice of the receiver (as a Symbol) before aSequence or self if aSequence is not found.
beginsWithSeq(aSequence)

Returns true if the receiver begins with aSequence, false otherwise.
between(aSequence, anotherSequence)

Returns a new Sequence containing the bytes between the occurance of aSequence and anotherSequence in the receiver.
betweenSeq

undocumented
bitAt(bitIndex)

Returns a Number containing the bit at the bit index value.
bitCount

Returns the number of bits in the sequence.
bitwiseAnd(aSequence)

Updates the receiver to be the result of a bitwiseAnd with aSequence. Returns self.
bitwiseNot(aSequence)

Updates the receiver to be the result of a bitwiseNot with aSequence. Returns self.
bitwiseOr(aSequence)

Updates the receiver to be the result of a bitwiseOr with aSequence. Returns self.
bitwiseXor(aSequence)

Updates the receiver to be the result of a bitwiseXor with aSequence. Returns self.
blue

undocumented
byteAt(byteIndex)

Returns a Number containing the byte at the byte index value.
cPrint

undocumented
capitalize

First charater of the receiver is made uppercase.
ceil

Round each value to smallest integral value not less than x. Returns self.
clear

Set all values in the sequence to 0. Returns self.
clipAfterSeq(aSequence)

Removes the contents of the receiver after the end of the first occurance of aSequence. Returns true if anything was removed, or false otherwise.
clipAfterStartOfSeq(aSequence)

Removes the contents of the receiver after the beginning of the first occurance of aSequence. Returns true if anything was removed, or false otherwise.
clipBeforeEndOfSeq(aSequence)

Removes the contents of the receiver before the end of the first occurance of aSequence. Returns true if anything was removed, or false otherwise.
clipBeforeSeq(aSequence)

Clips receiver before aSequence.
cloneAppendPath(aSequence)

Appends argument to a copy the receiver such that there is one and only one path separator between the two and returns the result.
cloneAppendSeq

undocumented
contains(aNumber)

Returns true if the receiver contains an element equal in value to aNumber, false otherwise.
containsAnyCaseSeq(aSequence)

Returns true if the receiver contains the aSequence regardless of casing, false otherwise.
containsSeq(aSequence)

Returns true if the receiver contains the substring aSequence, false otherwise.
convertToFixedSizeType

undocumented
convertToItemType(aTypeName)

Converts the underlying machine type for the elements, expanding or contracting the size of the Sequence as needed. Valid names are uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, and float64. Note that 64 bit types are only available on platforms that support such types. Returns self.
copy(aSequence)

Replaces the bytes of the receiver with a copy of those in aSequence. Returns self.
cos

undocumented
cosh

Sets each value of the Sequence to the hyperbolic cosine of it's value. Returns self.
depth

undocumented
distanceTo(aSeq)

Returns a number with the square root of the sum of the square of the differences of the items between the sequences.
dotProduct(aSeq)

Returns a new Sequence containing the dot product of the receiver with aSeq.
drawAsLine

undocumented
drawFilled

undocumented
drawLineLoop

undocumented
drawLineLoopi

undocumented
drawQuad

undocumented
drawQuadTo

undocumented
duplicateIndexes

Duplicates all indexes in the receiver. For example, list(1,2,3) duplicateIndexes == list(1,1,2,2,3,3). Returns self.
empty

Sets all bytes in the receiver to 0x0 and sets it's length to 0. Returns self.
encoding

Returns the encoding of the elements.
endsWithSeq(aSequence)

Returns true if the receiver ends with aSequence, false otherwise.
escape

Escape characters in the receiver are replaced with escape codes. For example a string containing a single return character would contain the following 2 characters after being escaped: "\n". Returns self.
escapeRegexChars

Returns a clone of the receiver with all special regular expression characters ("^", "$", etc) backslashed. Useful if you have a string that contains such characters, but want it to be treated as a literal string.
exSlice

undocumented
exclusiveSlice(inclusiveStartIndex, exclusiveEndIndex)

Returns a new string containing the subset of the receiver from the inclusiveStartIndex to the exclusiveEndIndex. The exclusiveEndIndex argument is optional. If not given, it is assumed to be one beyond the end of the string.
exp

Sets each value of the Sequence to the base 10 log of it's value. Returns self.
fileName

Returns the last path component sans the path extension.
findNthSeq(aSequence, n)

Returns a number with the nth occurence of aSequence")
findRegex(aRegexOrString, [startIndex])

Returns the first match of the given regex in the receiver, after the given start index. If you don't specify a start index, the search will start at the beginning of the receiver. The method returns nil if no match is found.
findSeq(aSequence, optionalStartIndex)

Returns a number with the first occurrence of aSequence in the receiver after the startIndex. If no startIndex is specified, the search starts at index 0. nil is returned if no occurences are found.
findSeqs(listOfSequences, optionalStartIndex)

Returns a object with two slots - an \"index\" slot which contains the first occurrence of any of the sequences in listOfSequences found in the receiver after the startIndex, and a \"match\" slot, which contains a reference to the matching sequence from listOfSequences. If no startIndex is specified, the search starts at index 0. nil is returned if no occurences are found.
floor

Round each value to largest integral value not greater than x. Returns self.
foreach(optionalIndex, value, message)

For each element, set index to the index of the element and value the element value and execute message. Example:

    aSequence foreach(i, v, writeln("value at index ", i, " is ", v))
    aSequence foreach(v, writeln("value ", v))

fromBase(aNumber)

Returns a number with a base 10 representation of the receiver converted from the specified base. Only base 2 through 32 are currently supported.
glClearColor

undocumented
glColor

undocumented
glNormal

undocumented
glProject

undocumented
glRotate

undocumented
glScale

undocumented
glTranslate

undocumented
glTranslatei

undocumented
glUnproject

undocumented
glVertex

undocumented
greaterThan(aSeq)

Returns true if the receiver is greater than aSeq, false otherwise.
greaterThanOrEqualTo(aSeq)

Returns true if the receiver is greater than or equal to aSeq, false otherwise.
green

undocumented
hasMatchOfRegex(aRegexOrString)

Returns true if the string contains one or more matches of the given regex.
hash

Returns a Number containing a hash of the Sequence.
height

undocumented
inSlice

undocumented
inclusiveSlice(inclusiveStartIndex, inclusiveEndIndex)

Returns a new string containing the subset of the receiver from the inclusiveStartIndex to the inclusiveEndIndex. The inclusiveEndIndex argument is optional. If not given, it is assumed to be the end of the string.
insertSeqEvery

undocumented
interpolate(ctx)

Returns immutable copy of self with interpolateInPlace(ctx) passed to the copy.
interpolateInPlace(optionalContext)

Replaces all #{expression} with expression evaluated in the optionalContext. If optionalContext not given, the current context is used. Returns self.
isEmpty

Returns true if the size of the receiver is 0, false otherwise.
isEqualAnyCase(aSequence)

Returns true if aSequence is equal to the receiver ignoring case differences, false otherwise.
isLowercase

Returns self if all the characters in the string are lower case.
isMutable

Returns true if the receiver is a mutable Sequence or false otherwise.
isSymbol

Returns true if the receiver is a immutable Sequence (aka, a Symbol) or false otherwise.
isUppercase

Returns self if all the characters in the string are upper case.
isZero

Returns true if all elements are 0, false otherwise.
itemCopy

Returns a new sequence containing the items from the receiver.
itemSize

Returns number of bytes in each element.
itemType

Returns machine type of elements.
justSerialized(stream)

Writes the receiver's code into the stream.
lastPathComponent

Returns a string containing the receiver clipped up to the last path separator.
leaveThenRemove

undocumented
lessThan(aSeq)

Returns true if the receiver is lass than aSeq, false otherwise.
lessThanOrEqualTo(aSeq)

Returns true if the receiver is lass than or equal to aSeq, false otherwise.
levenshtein

undocumented
linePrint

Prints the Sequence and a newline character.
log

undocumented
log10

undocumented
logicalAnd(aSequence)

Updates the receive's values to be the result of a logical OR operatiosn with the values of aSequence. Returns self.
logicalOr(aSequence)

Updates the receive's values to be the result of a logical OR operatiosn with the values of aSequence. Returns self.
lowercase

Makes all the uppercase characters in the receiver lowercase. Returns self.
lstrip(aSequence)

Strips the characters in aSequence stripped from the beginning of the receiver. Example:

    "Keep the tail" lstrip(" eKp")
    ==> "the tail"

makeFirstCharacterLowercase

Receiver must be mutable (see also asMutable). Returns receiver.

      Io> "ABC" asMutable makeFirstCharacterLowercase
      ==> aBC

makeFirstCharacterUppercase

Receiver must be mutable (see also asMutable). Returns receiver.

      Io> "abc" asMutable makeFirstCharacterUppercase
      ==> Abc

matchesOfRegex(aRegexOrString)

Returns a RegexMatches object that enumerates all matches of the given regex in the receiver.
matchesRegex(aRegexOrString)

Returns true if the receiver matches the given regex, false if not.
max

undocumented
md5

undocumented
md5String

undocumented
mean

Returns the arithmetic mean of the sequence's values after they have been squared.
meanSquare

undocumented
min

Returns the maximum value of the Sequence.
negate

Negates the values of the receiver. Returns self.
nextInSequence

undocumented
normalize

Divides each value of the Sequence by the max value of the sequence. Returns self.
occurancesOfSeq(aSeq)

Returns count of aSeq in the receiver.
orderedSplit

undocumented
pathComponent

Returns a slice of the receiver before the last path separator as a symbol.
pathExtension

Returns a string containing the receiver clipped up to the last period.
preallocateToSize(aNumber)

If needed, resize the memory alloced for the receivers byte array to be large enough to fit the number of bytes specified by aNumber. This is useful for pio_reallocating the memory so it doesn't keep getting allocated as the Sequence is appended to. This operation will not change the Sequence's length or contents. Returns self.
prependSeq(object1, object2, ...)

Prepends given objects asString in reverse order to the receiver. Returns self.")
print

Prints the receiver as a string. Returns self.
product

Returns the product of all the sequence's values multipled together.
rangeFill

Sets each value of the Sequence to the trigomentic cosine of it's value. Returns self.
red

undocumented
removeAt(index)

Removes the item at index. Returns self.
removeEvenIndexes

Removes even indexes in the receiver. For example, list(1,2,3) removeEvenIndexes == list(1, 3). Returns self.
removeLast

Removes the last element from the receiver. Returns self.
removeOddIndexes

Removes odd indexes in the receiver. For example, list(1,2,3) removeOddIndexes == list(2). Returns self.
removePrefix(aSequence)

If the receiver begins with aSequence, it is removed. Returns self.
removeSeq(aSequence)

Removes occurances of aSequence from the receiver.
removeSlice(startIndex, endIndex)

Removes the items from startIndex to endIndex. Returns self.
removeSuffix(aSequence)

If the receiver end with aSequence, it is removed. Returns self.
repeated(n)

Returns a new sequence containing the receiver repeated n number of times.
replaceFirstSeq(aSequence, anotherSequence, optionalStartIndex)

Returns a new Sequence with the first occurance of aSequence replaced with anotherSequence in the receiver. If optionalStartIndex is provided, the search for aSequence begins at that index. Returns self.
replaceMap(aMap)

In the receiver, the keys of aMap replaced with it's values. Returns self.
replaceSeq(aSequence, anotherSequence)

Returns a new Sequence with all occurances of aSequence replaced with anotherSequence in the receiver. Returns self.
reverse

Reverses the ordering of all the items of the receiver. Returns copy of receiver.
reverseFindSeq(aSequence, startIndex)

Returns a number with the first occurrence of aSequence in the receiver before the startIndex. The startIndex argument is optional. By default reverseFind starts at the end of the string. Nil is returned if no occurrences are found.
reverseInPlace

Reverses the bytes in the receiver, in-place.
rootMeanSquare

undocumented
rstrip(aSequence)

Strips the characters in aSequence stripped from the end of the receiver. Example:

    "Cut the tail off" rstrip(" afilot")
    ==> "Cut the"

sequenceSets

undocumented
set(aNumber1, aNumber2, ...)

Sets the values of the receiver to the sequences of numbers in the arguments. Unset values will remain unchanged. Returns self.
setAlpha

undocumented
setBlue

undocumented
setDepth

undocumented
setEncoding(encodingName)

Sets the encoding flag of the receiver (only the encoding flag, itemSize and itemType will change, no conversion is done between UTF encodings - you can use convertToUTF8, etc methods for conversions). Valid encodings are number, utf8, utf16, and utf32. Returns self.
setGreen

undocumented
setHeight

undocumented
setItemType(aTypeName)

Sets the underlying machine type for the elements. Valid names are uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, and float64. Note that 64 bit types are only available on platforms that support such types. Returns self.
setItemsToDouble(aNumber)

Sets all items in the Sequence to the double floating point value of aNumber.
setItemsToLong(aNumber)

Sets all items in the Sequence to the long integer value of aNumber.
setRed

undocumented
setSize(aNumber)

Sets the length in bytes of the receiver to aNumber. Return self.
setWidth

undocumented
setX

undocumented
setY

undocumented
setZ

undocumented
sha1

undocumented
sha1String

undocumented
sin

undocumented
sinh

Sets each value of the Sequence to the hyperbolic sine of it's value. Returns self.
size

Returns the length in number of items (which may or may not be the number of bytes, depending on the item type) of the receiver. For example,

    "abc" size == 3

sizeInBytes

Returns the length in bytes of the receiver.
slice

undocumented
slicesBetween(startSeq, endSeq)

Returns a list of slices delimited by `startSeq` and `endSeq`.

      Io> "" slicesBetween("<", ">")
      ==> list("a", "b", "/b", "/a")

sort

Sorts the characters/numbers the array. Returns self.
split(optionalArg1, optionalArg2, ...)

Returns a list containing the non-empty sub-sequences of the receiver divided by the given arguments. If no arguments are given the sequence is split on white space. Examples: `"a b c d" splitNoEmpties => list("a", "b", "c", "d") "a***b**c*d" splitNoEmpties("*") => list("a", "b", "c", "d") "a***b||c,d" splitNoEmpties("*", "|", ",") => list("a", "b", "c", "d")`
splitAt(indexNumber)

Returns a list containing the two parts of the receiver as split at the given index.
splitAtRegex(aRegexOrString)

Splits the receiver into pieces using the given regex as the delimiter and returns the pieces as a list of strings.
splitNoEmpties

undocumented
sqrt

Sets each value of the Sequence to the square root of it's value. Returns self.
square

Sets each value of the Sequence to the square of it's value. Returns self.
strip(optionalSequence)

Trims the whitespace (or optionalSequence) off both ends:

    "   Trim this string   \r\n" strip
    ==> "Trim this string"

sum

Returns the sum of the Sequence.
tan

Sets each value of the Sequence to the trigomentic tangent of it's value. Returns self.
tanh

Sets each value of the Sequence to the hyperbolic tangent of it's value. Returns self.
to

undocumented
toBase(aNumber)

Returns a Sequence containing the receiver(which is assumed to be a base 10 number) converted to the specified base. Only base 8 and 16 are currently supported.
toBy

undocumented
translate(fromChars, toChars)

In the receiver, the characters in fromChars are replaced with those in the same positions in toChars. Returns self.
unescape

Escape codes replaced with escape characters. Returns self.
uppercase

Makes all characters of the receiver uppercase.
validEncodings

undocumented
validItemTypes

undocumented
whiteSpaceStrings

Returns a List of strings. Each string contains a different whitespace character.
width

undocumented
with(aSequence, ...)

Returns a new Sequence which is the concatination of the arguments. The returned sequence will have the same mutability status as the receiver.
withStruct(memberList)

This method is useful for producing a Sequence containing a raw datastructure with the specified types and values. The memberList format is:

list(memberType1, memberName1, memberType2, memberName2, ...)

Member types include:

    int8, int16, int32, int64
    uint8, uint16, uint32, uint64
    float32, float64

Example:

    pointStructSeq := Sequence withStruct(list("float32", 1.2, "float32", 3.5))

The output pointStructSeq would contain 2 raw 32 bit floats.
writeToStream

undocumented
x

undocumented
y

undocumented
z

undocumented
zCompress

undocumented
zUncompress

undocumented
zero

undocumented

## Server

Module: Socket
Category: Networking

### Description

The Server object provides a simple interface for running a server. You just need to set the port and define a handleSocket method. Here's an example of an echo server:

    Echo := Object clone
    Echo handleSocketFromServer := method(aSocket, aServer,
      write("[Got echo connection from ", aSocket host, "]\n")
      while(aSocket isOpen,
       if(aSocket read, aSocket write(aSocket readBuffer asString))
       aSocket readBuffer empty
      )
      write("[Closed ", aSocket host, "]\n")
    )

    write("[Starting echo server on port 8456]\n")
    server := Server clone setPort(8456)
    server handleSocket := method(aSocket,
      Echo clone @handleSocketFromServer(aSocket, self)
    )
    server start

Notes

Io's use of lightweight threading and select for dealing with sockets makes for servers that are much more efficient(both memory and cpu wise) than those written with kernel threads and socket polling.

### Slot Index

handleSocket()
port
setHost()
setPort()
start
stop

### Slots

handleSocket(aSocket)

This method is called when the server accepts a new socket. The new sockets is passed as the argument. Override this method in your own server subclass. The default implementation raises an exception.
port

Returns the port on which the server will listen for connections.
setHost(hostName)

Sets the hostName. Returns self.
setPort(aNumber)

Sets the port on which the server will listen for connections. Returns self.
start

Starts the server. This method will not return until server is stopped, so you may want to send the start message as an asynchronous message. Returns self or an Error, if one occurs.
stop

Stops the server if it is running. Returns self.

## SignalEvent

Module: Socket
Category: Networking

### Description

Object for signal events.

### Slot Index

eventType

### Slots

eventType

undocumented

## SkipDB

Module: SkipDB
Category: Databases

### Description

A key/value database.

### Slot Index

at()
atPut()
atRemove()
cursor
headerPid
size

### Slots

at(keySymbol)

Returns a Sequence for the value at the given key or nil if there is no such key.
atPut(keySymbol, valueSequence)

Sets the value of valueSequence with the key keySymbol. Returns self.
atRemove(keySymbol)

Removes the specified key. Returns self
cursor

Returns a new cursor to enumerate the receiver.
headerPid

Returns the headerPid number.
size

Returns the number of keys in the receiver.

## SkipDBCursor

Module: SkipDB
Category: Databases")

### Description

An interator object for a SkipDB.

### Slot Index

first
goto()
key
last
next
previous
value

### Slots

first

Move cursor to first item. Returns self.
goto(aKey)

Move cursor to the specified key or nearest preceeding key. Returns self
key

Returns the current cursor key, or nil if the cursor is out of range.
last

Move cursor to last item. Returns self.
next

Move cursor to next item. Returns self.
previous

Move cursor to previous item. Returns self.
value

Returns the current cursor key, or nil if the cursor is out of range.

## SkipDBM

Module: SkipDB
Category: Databases")

### Description

SkipDB is a skip-list based key-value database. SkipDBM manages any number of skipdbs within the same file. The root skipdb can be accessed using the root method.") docObject

### Slot Index

at()
beginTransaction
close
commitTransaction
compact
delete
open
path
root
setPath()

### Slots

at(pidNumber)

Returns the SkipDB at the specified persistent ID or nil if it is not found.
beginTransaction

Begin a transaction. Returns self.
close

Closes the dbm.
commitTransaction

Commit a transaction. Returns self.
compact

Compacts the database. Returns self.
delete

Deletes the db. Returns self.
open

Opens the dbm. Returns self.
path

Returns the path to the dbm. Returns self.
root

Returns the root SkipDB.
setPath(aString)

Sets the path to the dbm folder. Returns self.

## Socket

Module: Socket
Category: Networking

### Description

Interface to network communication. Sockets will auto yield to other coroutines while waiting on a request. All blocking operations use the timeout settings of the socket. Reads are appended to the socket's read buffer which can be accessed using the readBuffer method. Example:

    socket := Socket clone setHost("www.yahoo.com") setPort(80) connect
    if(socket error) then( write(socket error, "\n"); exit)

    socket write("GET /\n\n")

    while(socket read, Nop)
    if(socket error) then(write(socket error, "\n"); exit)

    write("read ", socket readBuffer length, " bytes\n")

### Slot Index

acceptTimeout
appendToWriteBuffer()
asyncAccept()
asyncBind
asyncConnect()
asyncListen
asyncStreamOpen
asyncStreamRead()
asyncStreamWrite()
asyncUdpOpen
asyncUdpRead()
asyncUdpWrite()
bytesPerRead
bytesPerWrite
close
connect
connectTimeout
descriptorId
errorDescription
errorNumber
getSocketReadLowWaterMark
getSocketWriteLowWaterMark
host
ipAddress
isOpen
isStream
isValid
port
readListMessage
readMessage
readTimeout
readUntilSeq()
serverOpen
serverWaitForConnection
setAcceptTimeout()
setBytesPerRead()
setBytesPerWrite()
setConnectTimeout()
setHost()
setHost()
setIpAddress()
setNoDelay
setPort()
setReadTimeout()
setSocketReadBufferSize()
setSocketReadLowWaterMark()
setSocketWriteBufferSize()
setSocketWriteLowWaterMark()
setWriteTimeout()
streamOpen
streamRead()
streamReadNextChunk()
streamReadWhileOpen
streamWrite()
udpOpen
udpRead()
udpReadNextChunk()
udpWrite
writeFromBuffer()
writeListMessage()
writeMessage()
writeTimeout

### Slots

acceptTimeout

Returns the length of time in seconds for accept timeouts on the socket.
appendToWriteBuffer(aSequence)

Appends aSequence to the write buffer if it is non-nil. Returns self.
asyncAccept(ipAddressObject)

Immediately returns a socket for an connection if one is available or nil otherwise. Returns an Error object on error.
asyncBind

Binds the socket and returns self immediately or an Error object on error.
asyncConnect(ipAddressObject)

Connects ti the given IPAddress and returns self or an Error object on error.
asyncListen

Listens to the socket and returns self immediately or an Error object on error.
asyncStreamOpen

Submits an async request to open the socket in stream mode and returns self immediately or an Error object on error.
asyncStreamRead(aSeq, readSize)

Reads up to readSize number of bytes into aSeq if data is available. Returns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.
asyncStreamWrite(aSeq, start, writeSize)

Writes the slice of aSeq from start to start + writeSize to the socket. Returns self immediately if successful, otherwise closes the socket. Returns an error object on Error. Returns nil if the socket is disconnected.
asyncUdpOpen

Submits an async request to open the socket in UDP mode and returns self immediately or an Error object on error.
asyncUdpRead(ipAddress, aSeq, readSize)

Reads up to readSize number of bytes from ipAddress into aSeq if data is available. Returns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.
asyncUdpWrite(ipAddress, aSeq, startIndex, readSize)

Writes readsize bytes from aSeq starting at startIndex to ipAddress. Returns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.
bytesPerRead

Returns number of bytes to read per read call.
bytesPerWrite

Returns number of bytes to write per write call.
close

Closes the socket and returns self. Returns nil on error.
connect

Connects to the socket's host. Returns self on success or an Error object on error.
connectTimeout

Returns the length of time in seconds for connect timeouts on the socket.
descriptorId

Returns the socket's file descriptor id as a Number.
errorDescription

Returns a description of the last error on the socket as a string.
errorNumber

Returns the socket error number for the last error.
getSocketReadLowWaterMark

Returns the read low water mark for the socket on success or nil on error.
getSocketWriteLowWaterMark

Returns the write low water mark for the socket on success or nil on error.
host

Returns the host for the socket.
ipAddress

Returns the IpAddress object for the socket.
isOpen

Returns true if the socket is open, false otherwise.
isStream

Returns true if the socket is a stream, false otherwise.
isValid

Returns true if the socket is in valid state, closes the socket and returns false otherwise.
port

Returns the port number for the socket.
readListMessage

A shortcut for List fromEncodedList(socket readMessage).
readMessage

Empties the readBuffer and reads a 4 byte uint32 in network byte order. This number is the number of bytes in the message payload which are then read into the socket's readBuffer. The readBuffer is returned.
readTimeout

Returns the length of time in seconds for read timeouts on the socket.
readUntilSeq(aSequence)

Reads the socket until it's readBuffer contains aSequence, then returns a Sequence containing the readBuffer's contents up to (but not including) aSequence and clips that section from the readBuffer.
serverOpen

Opens the socket as a stream, binds it to it's ipAddress and calls asyncListen to prepare the socket to accept connections. Returns self on success or an Error object on error.
serverWaitForConnection

Waits for a connection or timeout. When a connection is received, this method returns the connection socket. An Error object is returned on timeour or error.
setAcceptTimeout(seconds)

Sets the length of time in seconds for accept timeouts on the socket. Returns self.
setBytesPerRead(numberOfBytes)

Sets number of bytes to read per read call. Returns self.
setBytesPerWrite(numberOfBytes)

Sets number of bytes to write per write call. Returns self.
setConnectTimeout(seconds)

Sets the length of time in seconds for connect timeouts on the socket. Returns self.
setHost(hostName)

Translates hostName to an IP using asynchronous DNS and sets the host attribute. Returns self.
setHost(hostNameOrIpString)

Set the host for the socket. Returns self on success, an Error object otherwise.
setIpAddress(ipAddressObject)

Sets the ipAddress for the socket. Returns self. The setHost() method should generally be used to set the host instead of this method.
setNoDelay

Sets the socket to be no-delay. Returns self on success or nil on error.
setPort(portNumber)

Sets the port number for the socket, returns self.
setReadTimeout(seconds)

Sets the length of time in seconds for read timeouts on the socket. Returns self.
setSocketReadBufferSize(numberOfBytes)

Sets the read buffer size for the socket. Returns self on success or nil on error.
setSocketReadLowWaterMark(numberOfBytes)

Sets the read low water mark for the socket. Returns self on success or nil on error.
setSocketWriteBufferSize(numberOfBytes)

Sets the write buffer size for the socket. Returns self on success or nil on error.
setSocketWriteLowWaterMark(numberOfBytes)

Sets the write low water mark for the socket. Returns self on success or nil on error.
setWriteTimeout(seconds)

Sets the length of time in seconds for write timeouts on the socket. Returns self.
streamOpen

Opens the socket in stream mode. Returns self.
streamRead(numberOfBytes)

Reads numberOfBytes from the socket into the socket's readBuffer. Returns self when all bytes are read or an Error object on error.
streamReadNextChunk(optionalProgressBlock)

Waits for incoming data on the socket and when found, reads any available data and returns self. Returns self on success or an Error object on error or timeout.
streamReadWhileOpen

Reads the stream into the socket's readBuffer until it closes. Returns self on success or an Error object on error.
streamWrite(buffer, optionalProgressBlock)

Write's buffer to the socket. If optionalProgressBlock is supplied, it is periodically called with the number of bytes written as an argument. Returns self on success or an Error object on error.
udpOpen

Opens the socket in UDP (connectionless) mode. Returns self.
udpRead(ipAddress, numBytes)

Waits for and reads numBytes of udp data from the specified ipAddress into the socket's readBuffer. Returns self on success or an Error object on error.
udpReadNextChunk(ipAddress)

Waits to receive UDP data from the specified ipAddress. As soon as any data is available, it reads all of it into the socket's readBuffer. Returns self on success or an Error object on error.
udpWrite

Same as asyncUdpWrite.
writeFromBuffer(optionalProgressBlock)

Write's the contents of the socket's writeBuffer to the socket. If optionalProgressBlock is supplied, it is periodically called with the number of bytes written as an argument. Returns self on success or an Error object on error.
writeListMessage(aList)

A shortcut for writeMessage(aList asEncodedList).
writeMessage(aSeq)

Writes a 4 byte uint32 in network byte order containing the size of aSeq. Then writes the bytes in aSeq and returns self.
writeTimeout

Returns the length of time in seconds for write timeouts on the socket.

## SoundTouch

Module: SoundTouch
Category: Media

### Description

Used to change the tempo and/or pitch of an audio stream. Input and output are in 32 bit floats in 2 channels at a rate of 44100 samples per second.

### Slot Index

inputBuffer
outputBuffer
process
setChannels()
setPitchSemitones()
setSampleRate()
setTempo()
setTempoChange()
start

### Slots

inputBuffer

Returns the input buffer.
outputBuffer

Returns the output buffer.
process

Processes a chunk of the inputBuffer and appends the results to the outputBuffer.
setChannels(aNumber)

Sets the number of input channels.
setPitchSemitones(aNumber)

Sets the output increase in pitch semitones.
setSampleRate(aNumber)

Sets the input sample rate in Hz.
setTempo(aNumber)

Sets the tempo.
setTempoChange(aNumber)

Sets the tempo change amount.
start

Cleans up SoundTouch.

## State

Module: Core

### Slot Index

### Slots

## Syslog

Module: Syslog
Category: Server

### Description

Provides access to a Unix system's system logger.

    logger = Syslog clone do(
    	identity("SyslogTest")
    	facility(facilityMap at("LOG_USER"))
    	options(List append(optionsMap at("LOG_PID"), optionsMap at("LOG_CONS")))
    	priority(priorityMap at("LOG_INFO"))
    	open(facility, options)
    	mask(List append(maskMap at("LOG_PRIMASK")))
    	log(priority, "*** Merely a test ***")
    	close
    )

Note: This is partially tested. Please let me know of any problems you happen to stumble across, or if it could be better. --Jeremy Tregunna

### Slot Index

close
facility()
facilityMap
identity()
isOpen
log
mask()
maskMap
open()
options()
optionsMap
priority()
priorityMap
reopen()

### Slots

close

Closes a log that has previously been opened for writing.")
facility(optionalFacility)

Specifies the logging facility, which can be one of any of the values found in the facilityMap map. If optionalFacility is omitted, returns the currently set facility.
facilityMap

Contains the following keys, which represent numbers that can be used when opening a log:

- LOG_KERN
- LOG_USER
- LOG_MAIL
- LOG_DAEMON
- LOG_AUTH
- LOG_SYSLOG
- LOG_LPR
- LOG_NEWS
- LOG_UUCP
- LOG_CRON
- LOG_AUTHPRIV
- LOG_FTP
- LOG_RESERVED0
- LOG_RESERVED1
- LOG_RESERVED2
- LOG_RESERVED3
- LOG_LOCAL0
- LOG_LOCAL1
- LOG_LOCAL2
- LOG_LOCAL3
- LOG_LOCAL4
- LOG_LOCAL5
- LOG_LOCAL6
- LOG_LOCAL7

identity(optionalIdentity)

If optionalIdentity is specified, provides an identity for all of the messages you will be sending to the syslog daemon. Returns the identity.")
isOpen

Returns self if the log is opened for writing. Otherwise, returns Nil.")
log

Writes the supplied data to the log. Requires 2 arguments:

- Logging Priority
- Message to log

mask(optionalMask)

If optionalMask is specified, optionalMask is a list which contains any one or more values stored in the maskMap hash that will be OR'd together, to provide the proper mask. Returns the logging mask (as a List).
maskMap

Contains keys/value pairs which represent numbers that specify the logging mask. These values may be any one (or more) of the following:

- LOG_PRIMASK
- LOG_FACMASK

open(aPriority, someOptions, optionalIdentity)

Opens the syslog for writing. optionalIdentity need not be entered and will default to the name of the distribution of Io you are running or if you have embedded Io into your application and set Lobby distribution = "foo", it will be set to "foo".
options(optionalOptions)

If optionalOptions is specified, it should represent a list of the logging options you can find in the optionsMap slot. All the values in the supplied aList will be OR'd together when you call the open or reopen slots. Returns the list of options if optionalFacility is omitted.
optionsMap

A map containing key/value pairs holding all available options. These include:

- LOG_PID
- LOG_CONS
- LOG_ODELAY
- LOG_NDELAY
- LOG_NOWAIT
- LOG_PERROR

priority(optionalPriority)

If optionalPriority is specified, sets the value, and returns it. If no value is specified, will return the previously stored value if one has been set previously.
priorityMap

Contains key/value pairs for logging priorities for use when calling the log() method. These include:

- LOG_EMERG
- LOG_ALERT
- LOG_CRIT
- LOG_ERR
- LOG_WARNING
- LOG_NOTICE
- LOG_INFO
- LOG_DEBUG

reopen(aFacility, someOptions, optionalIdentity)

Reopens an already open log session. This is useful if you wish to change the facility you are logging to, the options you are logging with, or the identity of the session. Takes the same options as the open slot.

## System

Module: Core
Category: Core

### Slot Index

activeCpus
args
distribution
errorNumber
exit()
getEnvironmentVariable()
getOptions()
installPrefix
ioPath
launchPath
launchScript
maxRecycledObjects
platform
platformVersion
recycledObjectCount
setEnvironmentVariable()
setLobby()
setMaxRecycledObjects()
sleep()
symbols
system()
thisProcessPid()
userInterruptHandler
version

### Slots

activeCpus

Returns the number of active CPUs.
args

Returns the list of command line argument strings the program was run with.")
distribution

Returns the Io distribution name as a string.
errorNumber

Returns the C errno string.
exit(optionalReturnCodeNumber)

Shutdown the IoState (io_free all objects) and return control to the calling program (if any).
getEnvironmentVariable(nameString)

Returns a string with the value of the environment variable whose name is specified by nameString.
getOptions(args)

This primitive is used to get command line options similar to Cs getopt(). It returns a map in containing the left side of the argument, with the value of the right side. (The key will not contain the beginning dashes (--).

Example:

    	options := System getOptions(args)
    	options foreach(k, v,
    	  if(v type == List type,
    		v foreach(i, j, writeln(\"Got unnamed argument with value: \" .. j))
    		continue
    	  )
    	  writeln(\"Got option: \" .. k .. \" with value: \" .. v)
    	)

installPrefix

Returns the root path where io was install. The default is /usr/local.
ioPath

Returns the path of io installation. The default is $INSTALL_PREFIX/lib/io.
launchPath

Returns a pathComponent of the launch file.
launchScript

Returns the path of the io file run on the command line. Returns nil if no file was run.
maxRecycledObjects

Returns the max number of recycled objects used.
platform

Returns a string description of the platform.
platformVersion

Returns the version id of the OS.
recycledObjectCount

Returns the current number of objects being held for recycling.
setEnvironmentVariable(keyString, valueString)

Sets the environment variable keyString to the value valueString.
setLobby(anObject)

Sets the root object of the garbage collector.
setMaxRecycledObjects(aNumber)

Sets the max number of recycled objects used.
sleep(secondsNumber)

Performs a *blocking* sleep call for specified number of seconds.
symbols

Returns a List containing all Symbols currently in the system.
system(aString)

Makes a system call and returns a Number for the return value.
thisProcessPid()

Return the process id (pid) for this Io process.
userInterruptHandler

Called when control-c is hit. Override to add custom behavior. Returns self.
version

Returns a version number for Io.

## SystemCall

Module: SystemCall

### Slot Index

asyncRun()

### Slots

asyncRun(command, argList, envMap)

Run the system call.")

## Tag

Module: Core

### Slot Index

### Slots

## TagDB

Module: TagDB
Category: Databases

### Description

Binding for tagdb - a tagging database.

### Slot Index

close
open
setPath()

### Slots

close

Close the tagdb. Returns self.
open

Open the tagdb. Returns self.
setPath(aPath)

Sets the path to the tag database. Returns self.

## TagLib

Module: TagLib
Category: Media

### Description

Used to set tags on ape, flac, mp3, mpc, mpeg, and ogg files. The title, artist, album, year, track, genre slots can be written, and those plus the bitRate, sampleRate, channels and length slots can be read. To read, set the path slot and call the load method. To write, set the path and other slots and call the save method.

### Slot Index

load
save

### Slots

load

Loads tag data from the file specified in the path slot. Returns self.
save

Saves the tag settings and returns self.

## TestSuite

Module: Core
Category: Testing

### Description

An object to collect and run multiple UnitTests defined in *Test.io files within the System launchPath directory.

### Slot Index

name
path
run
setPath
verbose

### Slots

name

Return the name of the TestSuite.
path

undocumented
run

Collects and all files named *Test.io within the System launchPath directory, runs their tests and prints collated results.
setPath

undocumented
verbose

undocumented

## Thread

Module: Thread
Category: Concurrency

### Description

For native threads. Example use;

    Thread createThread()

### Slot Index

### Slots

## TimerEvent

Module: Socket
Category: Networking

### Description

Object for timer events.

### Slot Index

eventType

### Slots

eventType

undocumented

## Token

Module: Core

### Slot Index

### Slots

## TokyoCabinet

Module: TokyoCabinet
Category: Databases

### Description

An ordered key/value database that supports transactions and arbitrary kay and value sizes.

### Slot Index

abort
at()
atApple()
atPut()
atRemove()
begin
close
commit
compareType
cursor
open()
optimize
path
prefixCursor
setCompareType()
setPath()
size
sizeAt()
sync
transactionalAtPut()
transactionalRemoveAt()

### Slots

abort

Abort transaction. Returns self
at(keySymbol)

Returns a Sequence for the value at the given key or nil if there is no such key.
atApple(keySymbol, valueSequence)

Appends valueSequence to the current value at keySymbol. Returns self.
atPut(keySymbol, valueSequence)

Sets the value of valueSequence with the key keySymbol. Returns self.
atRemove(keySymbol)

Removes the specified key. Returns self
begin

Begin transaction. Returns self
close

Closes the database.
commit

Commit transaction. Returns self
compareType

Returns the compare type function name used.
cursor

Returns a new cursor object.
open(path)

Opens the database.
optimize

Optimizes the database. Returns self
path

Returns the path of the database file.
prefixCursor

Returns a new prefix cursor object.
setCompareType(name)

Sets the compare type function used to compare keys in the database. Valid compare types include: "lexical", "decimal", "int32", "int64" and "path". Returns self.
setPath(aPath)

Sets the path of the database file. Returns self.
size

Returns number of records in database. Returns self
sizeAt(keySymbol)

Returns the size of the value at the given key or nil if there is no such key.
sync

Syncs the database. Returns self
transactionalAtPut(key, value)

Transactionally insert the given key and value. Returns self.
transactionalRemoveAt(key)

Transactionally remove the given key. Returns self.

## TokyoCabinetCursor

Module: TokyoCabinet
Category: Databases

### Description

A database cursor.

### Slot Index

close
first
jump()
key
last
next
previous
put()
remove
value

### Slots

close

Closes the database.
first

Move cursor to first record. Returns self
jump(key)

Move cursor to record before key. Returns self
key

Returns current cursor key or nil.
last

Move cursor to last record. Returns self
next

Move cursor to next record. Returns true if there is another key, or false if there is no next record.
previous

Move cursor to previous record. Returns true if there is another key, or false if there is no previous record.
put(value)

Sets the value at the current cursor postion. Returns self.
remove

Removes the current cursor postion. Returns self.
value

Returns current cursor value or nil.

## TokyoCabinetPrefixCursor

Module: TokyoCabinet
Category: Databases

### Description

A database cursor.

### Slot Index

close
first
jump()
key
last
next
previous
put()
remove
value

### Slots

close

Closes the database.
first

Move cursor to first record. Returns self
jump(key)

Move cursor to record before key. Returns self
key

Returns current cursor key or nil.
last

Move cursor to last record. Returns self
next

Move cursor to next record. Returns true if there is another key, or false if there is no next record.
previous

Move cursor to previous record. Returns true if there is another key, or false if there is no previous record.
put(value)

Sets the value at the current cursor postion. Returns self.
remove

Removes the current cursor postion. Returns self.
value

Returns current cursor value or nil.

## URL

Module: Socket
Category: Networking

### Slot Index

cacheFile
cacheFolder
cacheLoad
cacheOn
cacheStore
cacheTimeout
childUrl
clear
connectAndWriteHeader
domain
escapeCodes
escapeString()
evFetch
fetch
fetchAndFollowRedirect
fetchHttp()
fetchOrFailToFilePath
fetchRaw
fetchToFile()
fetchWithDelegate
fetchWithProgress()
followRedirects
fourCharheaderBreaks
headerBreaks
host
openOnDesktop
parse
post()
processHttpResponse()
protocol
readHeader
referer
requestHeader
requestHeaders
setCacheOn
setHost
setProtocol
setReadHeader()
setReferer()
setRequest()
setSocketProto
setStatusCode
setStreamDestination
setTimeout
setURL()
socketProto
startStreaming
statusCode
stopFetch
streamDestination
test
twoCharheaderBreaks
unescapeString()
unparse
url
with()

### Slots

cacheFile

undocumented
cacheFolder

undocumented
cacheLoad

undocumented
cacheOn

undocumented
cacheStore

undocumented
cacheTimeout

undocumented
childUrl

undocumented
clear

Private method to clear the URL's parsed attributes.
connectAndWriteHeader

undocumented
domain

undocumented
escapeCodes

Returns a Map whose key/value pairs are special characters and their URL escape codes.
escapeString(aString)

Returns a new String that is aString with the appropriate characters replaced by their URL escape codes.
evFetch

undocumented
fetch

Fetches the url and returns the result as a Sequence. Returns an Error, if one occurs.
fetchAndFollowRedirect

undocumented
fetchHttp(optionalProgressBlock)

Private method that fetches an http url.
fetchOrFailToFilePath

undocumented
fetchRaw

Fetch and return the entire response. Note: This may have problems for some request times.
fetchToFile(aFile)

Fetch the url and save the result to the specified File object. Saving is done as the data is read, which help minimize memory usage. Returns self on success or nil on error.
fetchWithDelegate

undocumented
fetchWithProgress(progressBlock)

Same as fetch, but with each read, progressBlock is called with the readBuffer and the content size as parameters.
followRedirects

undocumented
fourCharheaderBreaks

undocumented
headerBreaks

Private method to connect to the host and write the header.
host

undocumented
openOnDesktop

Opens the URL in the local default browser. Supports OSX, Windows and (perhaps) other Unixes.
parse

Private method to parse the url.
post(parameters, headers)

Sends an http post message. If parameters is a Map, it's key/value pairs are send as the post parameters. If parameters is a Sequence or String, it is sent directly. Any headers in the headers map are sent with the request. Returns a sequence containing the response on success or an Error, if one occurs.
processHttpResponse(optionalProgressBlock)

Private method that processes http response.
protocol

undocumented
readHeader

undocumented
referer

Returns the referer String or nil if not set.
requestHeader

Returns a Sequence containing the request header that will be sent.
requestHeaders

undocumented
setCacheOn

undocumented
setHost

undocumented
setProtocol

undocumented
setReadHeader(headerString)

Private method that parses the headerFields.
setReferer(aString)

Sets the referer. Returns self.
setRequest(requestString)

Private method to set the url request.
setSocketProto

undocumented
setStatusCode

undocumented
setStreamDestination

undocumented
setTimeout

undocumented
setURL(urlString)

Sets the url string and parses into the protocol, host, port path, and query slots. Returns self.
socketProto

undocumented
startStreaming

undocumented
statusCode

undocumented
stopFetch

Stops the fetch, if there is one. Returns self.
streamDestination

undocumented
test

Private test method.
twoCharheaderBreaks

undocumented
unescapeString(aString)

Returns a new String that is aString with the URL escape codes replaced by the appropriate characters.
unparse

undocumented
url

Returns url string.
with(urlString)

Returns a new URL instance for the url in the urlString.

## UUID

Module: UUID
Category: Encryption

### Description

Generates UUIDs/GUIDs.

### Slot Index

urn
uuid
uuidRandom
uuidTime

### Slots

urn

Returns the uuid with "urn:uuid:" prepended to it.
uuid

Returns a new uuid in string format.
uuidRandom

Returns a new random uuid (type 4) in string format.
uuidTime

Returns a new time and mac uuid (type 1) in string format.

## UnitTest

Module: Core
Category: Test

### Description

An object for organizing and running unit tests validated by assertions.

### Slot Index

assertEquals()
assertEqualsWithinDelta()
assertFalse()
assertNil()
assertNotEquals()
assertNotNil()
assertNotSame()
assertRaisesException()
assertSame
assertTrue()
fail
knownBug
run
setUp
tearDown
testCount
testSlotNames
verbose

### Slots

assertEquals(a, b)

Fail the running test if a != b.
assertEqualsWithinDelta(expected, actual, delta)

Fail the running test if the expected value is not within delta of the actual value.
assertFalse(a)

Fail the running test if a != false.
assertNil(a)

Fail the running test if a != nil.
assertNotEquals(a, b)

Fail the running test if a == b.
assertNotNil(a)

Fail the running test if a == nil.
assertNotSame(a, b)

Fail the running test if a != b.
assertRaisesException(code)

Fail the running test if the code does not raise an Exception.
assertSame

undocumented
assertTrue(a)

Fail the running test if a != true.
fail

Call to trigger a test failure.
knownBug

undocumented
run

Runs all tests.
setUp

Method called prior to each test.
tearDown

Method called after each test.
testCount

Returns the number of tests defined in this object.
testSlotNames

undocumented
verbose

undocumented

## User

Module: User
Category: Server
Credits: Windows code by Mike Austin

### Description

This object provides access to the local operating system's information about the current user.

### Slot Index

homeDirectory
name

### Slots

homeDirectory

Returns the current user's home directory as a Directory object.
name

Returns the current user's name.

## Vector

Module: OpenGL

### Slot Index

average
derivative

### Slots

average

undocumented
derivative

undocumented

## Video

Module: AVCodec

### Slot Index

audioOn
frameNumber
readNextFrame Decodes the next video frame into the receiver's image object.
setAudioOn()
setFrameNumber()

### Slots

audioOn

Whether or not the decoded audio is directed to the AudioDevice.
frameNumber

The current frame number.
readNextFrame Decodes the next video frame into the receiver's image object.

Returns the image object if successful or nil otherwise.
setAudioOn(aBool)

Sets whether or not the decoded audio is directed to the AudioDevice. Returns self.
setFrameNumber(aNumber)

Private setter for frameNumber. Returns self.

## WeakLink

Module: Core
Category: Core

### Description

A WeakLink is a primitive that can hold a reference to an object without preventing the garbage collector from collecting it. The link reference is set with the setLink() method. After the garbage collector collects an object, it informs any (uncollected) WeakLink objects whose link value pointed to that object by calling their "collectedLink" method.

### Slot Index

link
setLink()

### Slots

link

Returns the link pointer or Nil if none is set.
setLink(aValue)

Sets the link pointer. Returns self.

## WriteEvent

Module: Socket
Category: Networking

### Description

Object for write events.

### Slot Index

eventType

### Slots

eventType

undocumented

## ZlibDecoder

Module: Zlib
Category: Compression

### Description

For Zlib uncompression. Example use;

    bf = ZlibDecoder clone
    bf beginProcessing
    bf inputBuffer appendSeq(inputData)
    bf process
    bf endProcess
    bf outputBuffer // this contains the output data

### Slot Index

beginProcessing
endProcessing
inputBuffer
outputBuffer
process
setInputBuffer
setOutputBuffer

### Slots

beginProcessing

Initializes the algorithm.
endProcessing

Finish processing remaining bytes of inputBuffer.
inputBuffer

undocumented
outputBuffer

undocumented
process

Process the inputBuffer and appends the result to the outputBuffer. The processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.
setInputBuffer

undocumented
setOutputBuffer

undocumented

## ZlibEncoder

Module: Zlib
Category: Compression

### Description

For Zlib compression. Example use:

    bf = ZlibEncoder clone
    bf beginProcessing
    bf inputBuffer appendSeq("this is a message")
    bf process
    bf endProcess
    bf outputBuffer // this contains the result data

### Slot Index

beginProcessing
endProcessing
process

### Slots

beginProcessing

Initializes the algorithm.
endProcessing

Finish processing remaining bytes of inputBuffer.
process

Process the inputBuffer and appends the result to the outputBuffer. The processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.

## category

Module: Obsidian

### Slot Index

### Slots

## false

Module: Core

### Slot Index

and
asSimpleString
asString
clone
else
elseif
ifFalse
ifTrue
justSerialized()
not
or
then
type

### Slots

and

Returns false.
asSimpleString

Returns "false".
asString

Returns "false".
clone

Returns self.
else

Evaluates the argument and returns nil.
elseif

Same as `if`.
ifFalse

Evaluates the argument and returns self.
ifTrue

Returns false.
justSerialized(stream)

Writes the receiver's code into the stream.
not

Returns true.
or

Evaluates the argument and returns the result.
then

Returns false.
type

Returns "false".

## nil

Module: Core

### Description

nil is a singleton object that is used as a placeholder and to mean false in Io.")

### Slot Index

and()
catch
clone
else()
ifNil()
isNil
justSerialized()
or()
pass
print
then()

### Slots

and(expression)

Returns nil without evaluating expression.
catch

Does nothing, returns nil. See `Exception catch`.
clone

returns self since nil is a singleton.
else(expression)

Returns nil without evaluating expression.
ifNil(expression)

Evaluates message.
isNil

Returns Lobby.
justSerialized(stream)

Writes the receiver's code into the stream.
or(anObject)

Returns anObject if anObject is not nil. Otherwise returns nil.
pass

Does nothing, returns nil. See `Exception pass`.
print

Prints 'nil'. Returns self.
then(expression)

Returns nil without evaluating expression.

## true

Module: Core

### Slot Index

and
asSimpleString
asString
clone
else
elseif
ifFalse
ifTrue
justSerialized()
not
or
then

### Slots

and

Evaluates the argument and returns the result.
asSimpleString

Returns true.
asString

Returns true.
clone

Returns true.
else

Does not eval argument and returns true.
elseif

Does not eval argument and returns true.
ifFalse

Does not eval argument and returns true.
ifTrue

Evaluates the argument and returns self.
justSerialized(stream)

Writes the receiver's code into the stream.
not

Does not eval argument and returns false.
or

Does not eval argument and returns true.
then

Evaluates the argument and returns nil.