Namespaces
The Smalltalk global namespace consists of the following components:
One unmanaged namespace
A number of managed namespaces, which are also called application namespaces
The unmanaged namespace
Contains bindings from names to global variables and pools that are introduced into the image using runtime protocols (such as, at:put:, declareVariable:, and declarePoolDictionary:) sent to the Smalltalk dictionary.
VA Smalltalk does not create, maintain, or remove bindings from the runtime structures in the unmanaged namespace.
A managed namespace
Exists for each application. For an application and its subapplications, the managed namespace contains:
Bindings from names to application variables and pools declared using the mechanism described in Declarations
Bindings for defined classes
A name cannot be in both the unmanaged namespace and a managed namespace.
To ensure compatibility with existing protocols that operate on the unmanaged namespace, a name cannot be defined in more than one application namespace.
A Smalltalk image component contains a fully formed representation of its application namespace. This simplifies and accelerates the initialization of the image component. An image component cannot be created for an application that has unmanaged pools or variables.
Last modified date: 01/14/2021