I see two different situations when permissions/capabilities are concerned: the first is when one tries to run untrusted code, modules or parts of code and needs some kind of sanboxing mechanism. Safe has been built with this situation in mind, mostly.
The second is when one builds a perl system which is inteded to run potentialy untrustworty code from multiple users, such as in collaborative environments, muds, mushes and other kinds of online games. Restricted access to funcitions, variables and methods is needed, and an implementation of object ownership and user permissions, not just restrictions on code functionality. Perl5 has been completely usless in this field since it does not provide workable access restrictions and the Safe semantics (and bugs in its implementation) prevent and object-oriented interfaces between unrestricted and restricted code, or between two different restricted compartments. Any attemtps of mud writing in perl failed or provided muds with no ability for users to add code to the system. (Examples: http://kitenet.net/programs/perlmoo/, http://www.boutell.com/perlmud/) All these problems have been encountered and solved in the classic C-like scripting language of LP-muds, LPC. LPC is an object-oriented C derivative with heavy string manipulation extensions and solid support for multiuser security, running under the Muddriver (LPC virtual machine and low-level server fucntionality, written in C). LP muds are interesting because much of the game engine is written in LPC, including some interesting features, such as www interfaces, mail/news interfaces etc.: LPC is a complete, if tiny, language. I think developping a LPC compiler for Parrot would be a good exercice, it would provide a very useful little language and insure that the core contains any functionality that might be neede for multiuser systems coded in Perl6. (I am only sad that my bad coding skills do not permit me to do anything more substantial in this direction.) But I am completely convinced that the permission/ownership support as required by LPC is the minimal implementation needed in Parrot and Perl, if Perl6 is ever to be used in multiuser collaborative environments. More on LPC: http://www.lysator.liu.se/mud/lpc.html More on LP muds: http://www.alchar.org/~aedil/Prehistoric/lpmud.html An example of running LP mud with intellingent coders online: telnet://remud.org:4000/ __________________________________________________ Do You Yahoo!? Everything you'll ever need on one web page from News and Sport to Email and Music Charts http://uk.my.yahoo.com