- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 08 Dec 2010 14:52:30 +0000
- To: bugzilla@jessica.w3.org
- CC: public-qt-comments@w3.org
On 07/12/2010 22:22, bugzilla@jessica.w3.org wrote:
> http://www.w3.org/Bugs/Public/show_bug.cgi?id=10848
>
> --- Comment #4 from Jonathan Robie<jonathan.robie@redhat.com> 2010-12-07 22:22:22 UTC ---
> The f2f minutes from Lyon indicate this bug was closed:
>
> http://lists.w3.org/Archives/Member/w3c-xsl-query/2010Nov/0006.html
>
> However, it is not closed, and I am not certain how it was resolved. Can
> someone please record their interpretation of the minutes here, so it's clear
> what the intended resolution was?
>
Rightly or wrongly, the bug was closed with the decisions recorded in
the minutes, quoted below:
DECISION: change "an expression" to "Query Body" in XQuery 2.3.1:
"Independently of whether the Static Typing Feature is in effect,
if an
implementation can determine during the static analysis phase that the
evaluation of the QueryBody would necessarily raise a type error or a
dynamic error, the implementation may (but is not required to)
report that
error during the static analysis phase. However, the fn:error()
function
must not be evaluated during the static analysis phase."
Close http://www.w3.org/Bugs/Public/show_bug.cgi?id=10848
This does not close
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11171
This text was further refined by the following decision:
DECISION: Change text in 2.3.1:
Independently of whether the Static Typing Feature is in effect, if
an implementation can determine during the static analysis phase that an
expression, if evaluated, would necessarily raise a type error or a
dynamic error, the implementation may (but is not required to) report
that error during the static analysis phase.
- to -
Independently of whether the Static Typing Feature is in effect, if
an implementation can determine during the static analysis phase that a
query body, if evaluated, would necessarily raise a dynamic error or an
expression, if evaluated, would necessarily raise a type error, the
implementation may (but is not required to) report that error during the
static analysis phase.
DECISION: Remove the sentence "However, the fn:error() function must not
be evaluated during the static analysis phase." from 2.1.3, and add a
note to illustrate the differences introduced by the first sentence.
The change from "Query Body" to "expression" was considered sufficient
to ensure that dynamic errors could only be reported early if they would
necessarily occur while evaluating the query body (that is, the
query-as-a-whole), as distinct from doing early evaluation of some
subexpression within a function that might never be evaluated in real life.
I'm sure someone pointed out that this textual change needed adaptation
for XPath, where "Query Body" needs replacing by "top-level expression"
or somesuch, but that ramification was apparently missed by the
minute-taker.
Personally, I remain of the view that we should avoid temporal words
like "during" that suggest the static analysis and dynamic evaluation
phases cannot overlap in time. I would prefer a model where the static
analysis task only does static analysis, and the dynamic evaluation task
only does dynamic evaluation, but where dynamic evaluation is allowed to
start before static analysis finishes - that is, there is a functional
dependency between them, but no temporal dependency. I think that
approach would greatly simplify the exposition, as well as better
reflecting the architecture of implementations that do just-in-time
compilation.
Michael Kay
Saxonica
Received on Wednesday, 8 December 2010 14:52:59 UTC