Bindings

make-ChannelCompiler Returns an unconnected simple channel

make-Chan-PairCompiler Returns an unconnected channel pair

connect-channel-inputCompiler
\begin{arguments}
\item[channel] a channel
\end{arguments}
A channel. Connects the thread executing the statement to the input end of the channel.

connect-channel-outputCompiler
\begin{arguments}
\item[channel] A channel
\end{arguments}
A channel. Connects the thread executng the statement to the output end of the channel.

connect-chan-pairCompiler
\begin{arguments}
\item[channel-pair] A channel pair
\end{arguments}
Returns one end of the specified channel as a connected channel.

IN

IN channel variable

Waits until transmitter (process on the other end of channel) is ready to send data (signaled by doing OUT on channel) and then reads the object from channel assigning it to variable. If the variable is ommited, IN simply returns the value on the channel.

OUT

OUT channel obj Waits until reciever (process on the other end of channel) is ready to receive data (by doing IN) and then outputs obj to the channel channel.

PAR

PAR expression* The expression can be any lisp expression. Execute each expression as a seperate thread. The construct waits until all its subexpressions have completed, and returns a list of values returned by the expressions.

MAPPAR

MAPPAR function list Apply function, which should take one argument to each element of the list, as a parallel operation.

FOR PAR as iteration over a sequence of values.

ALT ALT alternative* Each alternative has the following form:

((IN channel variable) expression*)
When one one the listed channels is known to be ready, this executes the code associated with the IN statement with the specified variable bound to the next value on the channel. This construct should be viewed as non-deterministic – ie. it does not necessarily return the first ready channel.

IN-FROM (channel-var value-var) channels . expressions

IN-FROM ( channel-var value-var ) channels expressions* When one of the channels is known to be ready, the expressions are evaluated with channel-var bound to the channel, and value-var to the value on that channel.

SEQ

SEQ expression* The same as progn, ie execute the following expressions in the order given.