The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
------------
Safe Support
------------

Agent now fully supports the Safe module.  There are some drawbacks to using
Safe, however.  This file explains the issues at hand.

NOTE: Please Don't let this disuade you from using Safe - it is very useful.


use()
-----
It seems Safe does not like to use() complicated modules.  I don't know why,
and I don't have the time to figure out why.  If someone could be kind
enough to figure this one out for me I'd appreciate it;  until then, if
you want your agents to work in a Safe compartment, don't try to use() any
complex extensions (ie: Agent :).


Functionality
-------------
When using Safe, one limits the actions a piece of code may perform.  In
order to allow code to do things that you know are ok, but Safe doesn't
(such as reading from a database, as opposed to reading any file in the
system)  you have to share code with the Safe Compartment.  This is
obviously tedious, not to mention dangerous if you screw it up.


Summary
-------

As a side effect of the above points, an agent that tries to 'store' itself
will have difficulties doing so unless you've shared the Agent:: namespace
with it.  And any agent that tries to communicate won't be able to unless
Agent::Message and Agent::Transport & co have also been shared.

It would be much nicer if I could solve all your problems by writing some
magic code that would solve all your problems.  Unfortunately I have better
things to do (like giving myself swirlies :), so I give you the standard
CAVEAT EMPTOR:

	The Safe module itself is only as secure as you make it!

+---
 Steve Purkis
 October 2, 1998