Axon

Axon is the core subsystem in Kamaelia

Axon forms the core of Kamaelia. The following modules in Axon are listed in importance order, and are likely to be the ones you will be interested in. (Importance in terms of the viewpoint of a user of the system)

The remaining modules in Axon are listed below in importance order, and you are unlikely to be the ones you will be interested in.

The following text is adapted from the README bundle that accompanies Axon's separate download...

Axon is the core of Kamaelia. The contents of this directory must be installed before the rest of Kamaelia can be used. It can also be used independently of Kamaelia.

The install procedure is python's usual dance:

Documentation is held in two places: (until this section is complete)

Sample producer/consumber & wrapper component system:

The testComponent creates 2 subcomponents, creates the links in place, and takes the output from the consumer and links it to its own private/internal _input inbox. When it recieves a value from the consumer, it reports this fact and ceases operation.

(It's probably worth noting that an introspection system would be possible to write/nice to see that would be able to derive the above diagram from the running system)

Example code:

(It would probably be nice to have better syntactic sugar here by using dictionaries, operators (eg '|' ) and decorators. The presentation on the website on Kamaelia shows a partial semi-reimplementation of ideas using decorators to eliminate the classes above)

For various reasons it makes sense to run all Axon code using the -OO flags - this is due to the currently highly inefficient debug framework. One downside of async systems is that debuggers tend to have a hard time - but this has been thought of upfront :), the downside is that if you run with debugging enabled/possible, then the system runs like a pig. (Due to some rather heavy duty fumbling around in the garbage collector)

Michael, December 2004