Lutz wrote:yes, modifying a function while executing it, will crash most of the time.
I believe that a scripting language intended for easy everyday tasks (from really easy everyday tasks up to AI) should not crash on any conditions -- error should be caught and reported. Let us leave segfaults to hardcore C programmers! In fact, the very ability to crash the interpreter (left aside low-level functions like memcpy) is enough reason to search some other language for many people.
Lutz wrote:When doing hashes/dictionaries from web-pages etc., it is probable that the forbidden word (the default functor) comes along.
I think there are two styles of using contexts, and they are not to be mixed: either it is, er, context (object, closure, module etc.), and then all the symbols in it are explicitly written in a program (none are read from the outside world), or it is a dictionary (wrong but commonly called hash), and then all the keys are read from the outside world and none are written in the program. Unless you are mixing them, you are on the safe side. The idea of using the default context function as an interface to the very same context as a dictionary seems wrong to me.
In fact I've crushed into this misfeature when I've write a simple text processing script and feed the script own text to the script itself -- not surprisingly one of the words in input data coincides with one of the symbols in code. ;-)