AW: [erlang-questions] Preventing calling some functions

Thomas Lindgren <>
Fri Dec 11 19:28:45 CET 2009





----- Original Message ----
> - a "no side effect" mode of evaluation for the funs. Any bifs doing 
> sideeffects, spawn,
>   send, get, put would be disallowed. This mode would be nice for untrusted code 
> too...
>   (btw: list_to_atom would be disallowed, list_to_existing_atom could be 
> allowed)

Incidentally, disallowing visible side-effects (though mildly different from the above) could also serve as a cornerstone when implementing deep guards. I think this feature could be implemented under the hood by a bitmask, perhaps just a single bit. Set a bit in the mask when you're running a pure computation. Test the bit(s) before running a side-effect and throw an exception if purity was required. Save and restore the bitmask when entering/exiting such a scope.

Best,
Thomas


      


More information about the erlang-questions mailing list