----- Original Message ----- From: "Alexey Feldgendler" <[EMAIL PROTECTED]>
Subject: Re: [whatwg] Side effects free scripts


On Mon, 29 May 2006 08:31:06 +0700, Andrew Fedoniouk <[EMAIL PROTECTED]> wrote:

Ok, here you make it clear that with side effects you only mean visible
side effects?

No, all side effects in the mathematical sense. The script is not allowed
to alter the state of the world in any way.

Code which is not altering the state of the world cannot produce anything
  useful (work) for that world.

The only useful result of a side effects free script is its return value. That is, in fact, the very purpose for which CSS expression() exists. It's MEANT to be side effects free, but is systematically abused.

Strictly speaking returned result changes state of the world.

And in practice something like:
function foo() {  return "bar" + foo();  }
will definitely change state of the system.

Because of "halting problem" the only feasible way to ensure safety of the function (at some extent) is a sandbox.


By the way, there are even some optimizations for expression() handling possible when the scripts are forced to have no side effects -- it's possible to avoid repeated invocations of the script when it's known that the state of the world has not changed.


Optimization is a different story. It is not a proof of safety of some code.

Andrew Fedoniouk.
http://terrainformatica.com







Reply via email to