Perhaps the most visible change from normal Objective C is the use of Zones within which objects are allocated. We have requiered that objects be allocated within specific Zones for two main reasons:
Probing. Zones will be used to facilitate the process of Probing.
Garbage Collection. In later versions of Swarm, the Zones will be used to coordinate garbage collection.
Parallelism. In Swarm 2.0 we hope to use the Zone system to facilitate the management of distributed memory.
As a beginning user, when required to provide a Zone, you can simply use the globalZone variable which is global and is already initialised to a valid zone. But, this is discouraged because the things in that Zone are expected to be resident throughout the entire execution of the program and can lead to inefficient use of memory. Also, you should always attempt to allocate memory from Zones rather than using malloc. And when allocating a temporary object that won't be needed past the current scope, a scratchZone is provided.