W3C home > Mailing lists > Public > public-qt-comments@w3.org > September 2015

[Bug 29161] [XSLT30] setting the context size with xsl:apply-templates during streaming

From: <bugzilla@jessica.w3.org>
Date: Wed, 30 Sep 2015 10:16:27 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-29161-523-exzNJbnA9y@http.www.w3.org/Bugs/Public/>

--- Comment #2 from Abel Braaksma <abel.braaksma@xs4all.nl> ---
> The same applies to other non-pipelinable operations such as reverse().

This won't happen in a sequence constructor, but I think you refer to something

a/b/copy-of() => reverse()

But since reverse() takes a sequence as an argument, it is different from
last() that it first must materialize the whole sequence. This is similar to,
say, string-join. I.e., even though it cannot be pipelined, the argument is
consuming, so in a pipeline or windowed streaming scenario, the semantics of
the function make sure that it does not break any rules.

As a result, the above is (from a streaming view) semantically equal to
reverse(a/b/copy-of()) and reverse(copy-of(a/b)). After a rewrite to the
latter, which cannot be done with last() inside a seqtor, the streamability
issue goes away (well, technically, it means that the whole sequence will be
grounded first, stored in memory, so this is not streaming at all).

You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 30 September 2015 10:16:29 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 30 September 2015 10:16:29 UTC