next up previous contents
Next: 3.2 Core Behaviors Up: 3 The Slate World Previous: 3 The Slate World   Contents

Subsections

3.1 Overall Organization

3.1.1 The lobby

The lobby is the root namespace object for the Slate object system. All 'global' objects are really only globally accessible because the lobby is delegated to by lexical contexts, directly or indirectly. The lobby in turn may delegate to other namespaces which contain different categorized objects of interest to the applications programmer, and this can be altered at run-time.

Every object reference which is not local to a block closure is sent to the enclosing namespace for resolution, which by default is the root namespace, the lobby (nested closures refer first to their surrounding closure). The lobby contains a loopback slot referring to itself by that name. To add or arrange globals, either implicit sends or explicit references to the lobby can be made. (Consider it good style to directly reference it.)

The lobby is essentially a threading context, and in the future bootstrap will be instantiable in that sense.

3.1.2 Naming and Paths

The lobby provides access to the major Namespaces, which are objects suitable for organizing things (for now, they are essentially just Oddball objects). The most important one is prototypes, which contains the major kinds of shared behavior used by the system. Objects there may be cloned and used directly, but they should not themselves be manipulated without some design effort, since these are global resources. prototypes is inherited by the lobby, so it is not necessary to use the namespace path to identify, for example, Collection or Boolean. However, without explicitly mentioning the path, adding slots will use the lobby or the local context by default.

The prototypes namespace further contains inherited namespaces for collections, and can be otherwise enhanced to divide up the system into manageable pieces.


next up previous contents
Next: 3.2 Core Behaviors Up: 3 The Slate World Previous: 3 The Slate World   Contents
The Slate Project 2003-07-29