Number |
Name |
Behavior |
Description |
0 |
nop |
does nothing. |
|
1 |
pop |
<a> -> |
pop the value from existance. |
2 |
mark |
-> MARK |
pushes a mark onto the stack. |
3 |
cons |
<a> <b> -> (a . b) |
conses arguments. |
4 |
list |
MARK ... -> (...) |
form a proper list from the arguments. |
5 |
listi |
MARK ... <b> -> (... .
b) |
form an improper list from arguments (non-eol terminal). |
6 |
vector |
MARK ... -> #(...) |
forms a vector (1d hetrogeneous array) from the
arguments. |
7 |
invalid-opcode |
<opcode-num> -> |
signals that an invalid opcode was recieved (unsupported
extension). upon recieving an unknown opcode all subsequent opcodes/data may be flushed on the sender. |
8 |
invalid-basetype |
<basetype> -> |
signals that an unknown basetype was recieved (also
unsupported extension). the basetype includes values from the header byte
and possibly following bytes, it is to only include up to the value in question
(everything past is zeroed). all subsequent data/opcodes are to be flushed
on the sender. |
9 |
request-property |
<name SYM> -> |
request the value of a property. |
10 |
reply-property |
<name SYM> <value> -> |
declares the value of a property on the source node. |
11 |
lookup |
<name SYM> -> <value> |
lookup value in dictionary. NULL will be the result
if value not found. for the time being this will be viewed as a facility for looking up extension info. |
12 |
bind |
<name SYM> <value> -> |
bind value in dictionary. allows some data to be
stored. |
13 |
apply |
... <block> -> ... (block) MARK ... <func> -> <ret> |
apply arguments to a function/block. |
Number |
Name |
Behavior |
Description |
32 |
addr |
<ip INT> <port> <type>
-> NODE-ADDR |
Compose a node address from the addr given. type:
1, ipv4udp; 2, ipv4tcp. |
33 |
node-id |
<guid BYTEVEC> -> NODE-ADDR |
Compose a node address from the guid (may involve
a search to locate the node). |
34 |
yref |
<obj-id> -> REF |
reference to object on target node. |
35 |
rref |
<obj-id> <obj-type>
-> REF |
reference to object on source node. |
36 |
lref |
<on ADDR> <obj-id> <obj-type>
-> REF |
refernece to object on a distant node. |
37 |
dispatch |
<message> <from REF>
<to REF> <cont-id> -> |
dispatch message to object indicated in 'to', or
if 'to' is NULL then the message is interpreted as referring to a named export.
if cont-id is 0 then no return value is to be sent. |
38 |
setter |
<value REF> <cont-id>
-> |
returns a setter-object associated with a given
reference. |
39 |
return |
<value REF> <cont-id>
-> |
return value from a dispatch. |
40 |
pop-ret |
<a> <cont-id> -> |
pop value and send a return containing 'a'. |
41 |
dropped-reference |
<ref> -> |
all references from the source node were dropped. |
42 |
search |
<dst-guid> <src-guid>
<cont-id> <ttl> |
search connections for a the address of dst-guid. |
43 |
search-found |
<src-guid> <cont-id>
<dst-addr ADDR> <ttl> |
results of search. |
Name |
Value |
Description |
OBJECT |
1 |
reference to a general object type. |
CONS |
2 |
reference to a cons cell/list. |
CLOSURE |
1<<3+1 |
reference to a closure. |
ENV |
2<<3+1 |
reference to a first class environment. |
ENVOBJ |
3<<3+1 |
reference to an object. |
CONTEXT |
4<<3+1 |
reference to a thread/process. |
FUNCTION |
5<<3+1 |
reference to a built in function. |
Number |
Name |
Behavior |
Description |
64 |
stub-object |
<mirrors> -> <obj> |
sends an object stub. |
65 |
mirror |
<of REF> <cont-id> -> <of GUID> <cont-id> -> |
sent to request that a flat form of 'of' be sent
(via return) to 'cont-id'. |
66 |
notify-stub |
<to REF> <from REF>
-> |
message sent from new stubs to objects to notify
them of existance. |
67 |
notify-mirror |
<to REF> <from REF>
-> |
sent from stubs after they activate to indicate
their activation. |
68 |
notify-removed |
<to REF> <from REF>
-> |
sent to indicate the mirror has gone away. |
69 |
delta |
<obj> <pattern> <value>
<stamp> -> |
sent to indicate a single slot change. |
70 |
delta2 |
<stamp> <pairs> <to
REF> <from REF> -> |
sent to indicate a state change in one of the mirrors. |
71 |
ty-flat |
<flat> <type-name> ->
<obj> |
sent to give the flat version of a type-extended object. |
72 |
ty-stub |
<mirrors> <type-name SYM>
-> <stub> <rsrc-id> <type-name SYM> -> <stub> |
sends the stub of a given type-extended object. in
the case of mirrors it is synchronized. rsrc-id is a bytevector giving
the guid of the object resource. those identified by guids are viewed as
immutable and are thus cached, pulled from cache, or mirrored as needed. |