- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 17 Jun 2025 17:42:13 +0100
- To: public-xslt-40@w3.org
Hi folks,
Here are the minutes from today’s meeting.
https://qt4cg.org/meeting/minutes/2025/06-17.html
QT4 CG Meeting 125 Minutes 2025-06-17
[1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
Pull Requests
Table of Contents
* [6]Draft Minutes
* [7]Summary of new and continuing actions [0/7]
* [8]1. Administrivia
+ [9]1.1. Roll call [7/12]
+ [10]1.2. Accept the agenda
+ [11]1.3. Approve minutes of the previous meeting
+ [12]1.4. Next meeting
+ [13]1.5. Review of open action items [1/6]
+ [14]1.6. Review of open pull requests and issues
o [15]1.6.1. Blocked
o [16]1.6.2. Merge without discussion
o [17]1.6.3. Close without action
* [18]2. Technical agenda
+ [19]2.1. PR 1942: 37 Support sequence, array, and map
destructuring declarations
+ [20]2.2. PR 2030: 2029 xsd validator notes and examples
+ [21]2.3. PR 1888: 366 xsl:package-location
* [22]3. Any other business
* [23]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/7]
* [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-123-01: MK to do the set example in XQuery.
1. Administrivia
1.1. Roll call [7/12]
Regrets: BTW, DB, JWL
* [ ] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [X] Juri Leino (JLO)
* [ ] John Lumley (JWL)
* [ ] Dimitre Novatchev (DN)
* [X] Wendell Piez (WP)
* [ ] Ed Porter (EP)
* [ ] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [24]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [25]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is scheduled for 24 June 2025.
1.5. Review of open action items [1/6]
(Items marked [X] are believed to have been closed via email before
this agenda was posted.)
* [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-123-01: MK to do the set example in XQuery.
* [X] QT4CG-124-01: MK to provide a copy of the slide deck for the
minutes.
+ Attachd to issue or PR in Github
1.6. Review of open pull requests and issues
This section summarizes all of the issues and pull requests that need
to be resolved before we can finish. See [26]Technical Agenda below for
the focus of this meeting.
1.6.1. Blocked
The following PRs are open but have merge conflicts or comments which
suggest they aren't ready for action.
* PR [27]#2019: 1776: XSLT template rules for maps and array
* PR [28]#1283: 77b Update expressions
* PR [29]#1062: 150bis revised proposal for fn:ranks
1.6.2. Merge without discussion
The following PRs are editorial, small, or otherwise appeared to be
uncontroversial when the agenda was prepared. The chairs propose that
these can be merged without discussion. If you think discussion is
necessary, please say so.
* PR [30]#2044: Hide `MarkedNCName` from XPath spec
* PR [31]#2042: 2041 Correction to xsl:namespace-alias example
Proposal: merge without discussion.
Accepted.
1.6.3. Close without action
It has been proposed that the following issues be closed without
action. If you think discussion is necessary, please say so.
* Issue [32]#1127: Binary resources
Closed because we completed it.
* JK: Can someone put a cross reference into #1127?
2. Technical agenda
The following substantive PRs were open when this agenda was prepared.
2.1. PR 1942: 37 Support sequence, array, and map destructuring declarations
See PR [33]#1942
RD walks through the PR.
* RD: The scope is to add destructuring support for sequences, maps,
and arrays.
+ ... Currently it's done for XPath, but there's more work for
XQuery
+ ... Also changed the inline examples to the example markup in
a few places for consistency.
+ ... LetBinding is renamed to LetValueBinding
+ ... There's a new LetSequenceBinding, $( ... )
+ ... And equivalent array and map bindings to destructure them.
+ ... The let binding has been rewritten to a style similar to
for binding.
* MK: You can have a type declaration both inside and outside the
brackets?
* RD: Yes.
* MK: Okay. I missed that.
* RD: The idea behind that is that you might want to check that the
map is a specific record type and then check the items inside it.
* MK: I think the fact that clauses A and B are referring to
different type declarations needs to be made clearer.
* MK: The substantive point is, do we coerce the sequence to the type
first and then decompose it, or do we decompose it and then coerce?
+ ... If the expression evaluates to a node and the node
produces five atomics when you atomize it, which way is the
binding done?
* RD: I assume that depends on whether the let expression itself has
a type declaration.
+ ... My understanding is that if the let expression has a type
declaration then the value of the temporary variable would get
coerced to that type.
* MK: So you coerce to the outermost type, then decompose, then
coerce each of the items.
* RD: Yes.
* MK: Okay. That's technically coherent.
* JL: We only have to coerce if there's something to coerce to.
+ ... It could become expensive to do two steps of coercion. And
how do we tackle things if the sequence is a string but it
contains an NCName.
+ ... Do we need to consider incompatible type declarations?
* RD: In that case, the coercion on the outer scope will succeed and
coerce it to the specified type but the inner type coercion will
fail. So you'll get a type error.
* MK: Yes, it will carry a cost to do the coercion twice, but that's
not something users are likely to do. And if they do, the types are
probably going to be consistent and the optimizer can return them.
* RD: There's a similar structure for LetArrayBinding.
+ ... It returns an empty sequence if there's no element.
* MK: Where's the error if you ask for a type that isn't an array
type?
Some discussion of how the type declarations are used to handle the
array case.
* RD: We should say that the type declaration must also be coerceable
to array.
+ ... The current wording doesn't verify that the type is an
array but it should.
* JL: More generally, if I don't care about some values, can I just
use $_ in several places?
* RD: Yes. The idea is that this works exactly as it would if you
expanded it out.
* RD: There's a similar process for LetMapBinding.
+ ... There is a similar issue here, there should be a note that
the type must be coerceable to a map.
+ ... Again, an empty sequence is returned if the key is
missing.
* RD: And we have a description of the result of the ForLetExpr.
Turning to the XQuery spec...
* RD: There's the change from example text to example block again.
+ ... And the nonterminal name changes.
* RD: The rest is hard to read because it's diffing off an older
branch.
* JL: Great to see it come to life, finally. Thank you.
+ ... I think it would be useful to have a note that you can
reuse a variable several times.
* CG: Thank you. It's really great. Do we have specific reasons for
allowing repeated variable names, beyond the fact that they're
allowed in FLOWR expressions in general?
* RD: It's useful because you can't mutate a variable; if you have a
complicated expression structure, it can be useful to have things
like an accumulator variable or something like that. And also, if
you've got a nested expression, it can be useful to have variables
named $i or $node or something generic.
* MK: There have definitely been cases where I've reused $temp in a
FLOWR expression.
* MK: I suggest that if we have technical consensus, I can take over
a redrafting.
* RD: Yeah, that's fine.
* JL: Is it necessary to have a $ in front of the brackets?
* RD: In the case of parenthesis, you can't distinguish the parens
from a function call.
Some discussion of declaring the default function namespace and the
consequences thereof.
Proposal: accept this technically, let MK take an editorial pass.
Some discussion of reserved function names.
* RD: There may have been an issue with [ as well.
* MK: Yes, ~let [ ... ~ requires unbounded look ahead.
Proposal: accept this technically, let MK take an editorial pass.
Accepted.
2.2. PR 2030: 2029 xsd validator notes and examples
See PR [34]#2030
* MK: This started as an editorial exercise, but I discovered I was
replicating text that was already replicated.
+ ... I decided to move the whole discussion of validation into
F&O and remove common text from XQuery and XSLT.
MK reviews the PR.
* MK: In F&O, there's a new section on XSD validation. It shows as
all new, but it's not intended to be substantively different from
the descriptions currently in the XQuery and XSLT specifications.
* MK: Then the validation function refers to that section.
+ ... The function also goes into a lot more detail about how a
schema is constructed.
* MK: In the XQuery spec, there's a cross reference to the F&O
section and some detail is removed. The validate expression is no
defined in terms of a call to the validate function.
+ ... XQuery and XSLT define different error codes, so there's a
bit of a fudge.
* MK: The XSLT spec has analagous changes.
* WP: I think this is definite improvement. Is this necessary because
the XSD spec is "soft" on some of these options?
* MK: Yes. XSD gives a whole range of ways to do it, but this makes
it more concrete.
* JLO: I was wondering why there are different error codes in XQuery
and XSLT?
* MK: Just for backwards compatibility.
Some discussion of what it means for a schema to be invalid.
Proposal: accept this PR.
Accepted.
2.3. PR 1888: 366 xsl:package-location
See PR [35]#1888
JK introduces the PR.
* JK: We first discussed this about a month ago and I got good
feedback which I've incorporated.
+ ... Brief recap: the use-package instruction doesn't give the
developer access to the resources directly in the code.
+ ... The idea here is to make configuration easier by giving
that access.
JK walks through the prose of the new version.
* JK: Priority is just a boolean now, not an integer.
+ ... First match wins.
* JK: I've posted five "Hello world" examples for the XSLT test
suite.
* MK: I think that looks viable.
* JLO: There is already a package format that is used in the wider
ecosystem, defined by EXPath. What about using xar packages?
* JK: It's allowed, but I don't know if it should be required.
Some discussion of the changes to priority.
* JK: A boolean combined with first one wins, seemed simpler.
Proposal: accept this PR.
Accepted.
3. Any other business
None heard.
4. Adjourned
References
1. https://qt4cg.org/meeting/minutes/
2. https://qt4cg.org/
3. https://qt4cg.org/dashboard
4. https://github.com/qt4cg/qtspecs/issues
5. https://github.com/qt4cg/qtspecs/pulls
6. https://qt4cg.org/meeting/minutes/2025/06-17.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/06-17.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/06-17.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/06-17.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/06-17.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/06-17.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/06-17.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/06-17.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/06-17.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/06-17.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/06-17.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/06-17.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/06-17.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2025/06-17.html#pr-1942
20. https://qt4cg.org/meeting/minutes/2025/06-17.html#pr-2030
21. https://qt4cg.org/meeting/minutes/2025/06-17.html#pr-1888
22. https://qt4cg.org/meeting/minutes/2025/06-17.html#any-other-business
23. https://qt4cg.org/meeting/minutes/2025/06-17.html#adjourned
24. https://qt4cg.org/meeting/agenda/2025/06-17.html
25. https://qt4cg.org/meeting/minutes/2025/06-10.html
26. https://qt4cg.org/meeting/minutes/2025/06-17.html#technical-agenda
27. https://qt4cg.org/dashboard/#pr-2019
28. https://qt4cg.org/dashboard/#pr-1283
29. https://qt4cg.org/dashboard/#pr-1062
30. https://qt4cg.org/dashboard/#pr-2044
31. https://qt4cg.org/dashboard/#pr-2042
32. https://github.com/qt4cg/qtspecs/issues/1127
33. https://qt4cg.org/dashboard/#pr-1942
34. https://qt4cg.org/dashboard/#pr-2030
35. https://qt4cg.org/dashboard/#pr-1888
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 17 June 2025 16:42:21 UTC