changed:
-
A symbol is a "string":string that is cached (or in fact, permanently stored in a hash table) inside PureData. It can also have some data attached to it.
Symbols are a very important part of PureData since a lot of information (e.g. type info) is identified by using them.
The fact that a symbol is permanently resident has the following consequences:
* In a PureData "external":external symbol strings can be compared by comparing their pointer values, since there's only one copy in the system. This makes comparison much faster than comparing string characters.
* Data attached to a symbol won't get lost, since once a created, a symbol stays in the system.
* If many symbols are created (e.g. automatically in a "patch":patch), symbol lookup in the hash table will get slower - this can slow down the whole system as long as PureData is running.
ThomasGrill