Skip to content

Commit 820035f

Browse files
committed
docs: Add a glossary
1 parent f415369 commit 820035f

3 files changed

Lines changed: 44 additions & 0 deletions

File tree

.cursorrules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ Error handling:
8181

8282
Documentation:
8383

84+
- Check the [glossary](./GLOSSARY.md) for definitions of unclear terms.
8485
- Use JSDoc and TypeDoc for public APIs.
8586
- Include examples and document error cases.
8687

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@ purposes only.
3131
### Adding new packages
3232

3333
See [`packages/create-package/README.md`](packages/create-package/README.md).
34+
35+
## References
36+
37+
- [Glossary](./GLOSSARY.md)

docs/glossary.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Glossary
2+
3+
### kernel
4+
A centralized manager of vats and distributed objects. See the [Kernel](../packages/ocap-kernel/src/Kernel.ts) class.
5+
6+
### vat
7+
A unit of compute managed by the kernel. See the [VatHandle](../packages/ocap-kernel/src/VatHandle.ts) and [VatSupervisor](../packages/ocap-kernel/src/VatSupervisor.ts) classes.
8+
9+
### cluster
10+
A logically related group of vats, intended to be operated together. See the `ClusterConfig` type in [`@ocap-kernel/src/types.ts`](../packages/ocap-kernel/src/types.ts).
11+
12+
### distributed object
13+
A persistent object residing in a vat and asynchronously accessible to other vats. See the [implementation](../packages/ocap-kernel/src/store/methods/object.ts) in the kernel's storage methods.
14+
15+
## Abbreviations
16+
17+
### clist
18+
19+
A _clist_ (short for "capability list") is a bidirectional mapping between short, channel-specific identifiers and actual object references. The clist is unique to a channel-runtime pair, and translates between the javascript runtime which holds the object references and the channel which communicates about them.
20+
21+
### eref
22+
23+
An _ERef_ (short for "endpoint reference") is a generic term for a ref which is either a [vref](#vref) or an [rref](#rref).
24+
25+
### kref
26+
27+
A _KRef_ (short for "kernel reference") designates an Object within the scope of the Kernel itself. It is used in the translation of References between one Vat and another. A KRef is generated and assigned by the Kernel whenever an Object reference is imported into or exported from a Vat for the first time. KRefs are strictly internal to the Kernel implementation. The differentiation between VRefs and KRefs enables the Kernel to maintain `2N` Reference translation tables for `N` Vats rather than having to potentially maintain `` translation tables.
28+
29+
### rref
30+
31+
An _RRef_ (short for "remote reference") designates an object within the scope of an established point-to-point communications Channel between two Clusters (more on Channels below). An RRef does not survive the Channel it is associated with. An RRef is generated when the Kernel for one Cluster exports an Object Reference into the Channel connecting it to another Cluster's Kernel.
32+
33+
### vref
34+
35+
A _VRef_ (short for "vat reference") designates an Object within the scope of the Objects known to a particular Vat. It is used across the Kernel/Vat boundary in the marshaling of messages delivered into or sent by that Vat. A VRef is generated and assigned by the Kernel when importing an Object Reference into a Vat for the first time and by the Vat when exporting an Object Reference from it for the first time.
36+
37+
### vso
38+
39+
A vso, or _vat syscall object_, represents a request from a vat to the kernel.

0 commit comments

Comments
 (0)