Re: Factual error was Re: Brainstorming: Best of all Worlds

On Thu, 22 Mar 2007, Dave Raggett wrote:
> On Thu, 22 Mar 2007, Ian Hickson wrote:
> > Some people have suggested some features, like declarative 
> > calculations, but it isn't clear how those features would work (the 
> > XForms Transitional draft, as previously discussed, doesn't actually 
> > define how they would work for all cases -- according to the current 
> > definition, in fact, one would have to solve the halting problem to 
> > implement the spec). In the case of declarative calculations it is 
> > also not clear how the feature could be made to degrade gracefully 
> > without breaking full implementations.
> You are incorrect on this point. Please re-read the XForms Transitional 
> draft spec as I have clarified the wording based upon how my 
> implementation works, and it should be noted that this has been tested 
> on a much wider range of browsers than Web Forms 2.0 has at this point 
> in time.

The new spec doesn't change the UA requirements, so you still (as far 
as I can tell) require UAs to do static analysis of turing complete code, 
which, here, reduces to the halting problem. (All you've done is made such 
cases non-conforming, but that doesn't affect the UA at all.)

There are other problems, too, such as how to handle fields whose exact 
lists of dependencies themselves depend on other field, e.g. because 
the calculate="" field does something like:

   calculate="document.forms[0][document.forms[0].field.value] + 1"

It's also unclear to me how UAs should handle cyclic graphs (which can't 
be sorted topologically) or graphs whose dependencies are either truly or 
apparently random (e.g. because the field used depends on the return value 
of an XMLHttpRequest call to a remote server).

Ian Hickson               U+1047E                )\._.,--....,'``.    fL       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Thursday, 22 March 2007 19:56:33 UTC