- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 24 Jun 2025 17:56:11 +0100
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2025/06-24.html
QT4 CG Meeting 126 Minutes 2025-06-24
[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 [0/5]
+ [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. Substantive PRs
* [18]2. Technical agenda
+ [19]2.1. PR #2013: 748 Parse functions: consistency
+ [20]2.2. PR #2049: 2045 Context value can be an empty sequence
+ [21]2.3. PR #2015: 2009 Avoid constructing document node when
it makes no sense
+ [22]2.4. Issues relating to QName literals
+ [23]2.5. PR #2065
+ [24]2.6. PR #2062
+ [25]2.7. Steps: variable element names, issue #2057
* [26]3. Any other business
* [27]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.
* [ ] QT4CG-126-01: JLO to add an example where the map:build key
function returns multiple keys.
1. Administrivia
1.1. Roll call [7/12]
Regrets: BTW, DB, MK
* [ ] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [:05-]
* [ ] Michael Kay (MK)
* [X] Juri Leino (JLO)
* [X] 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 [28]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [29]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is scheduled for 1 July 2025.
JWL gives regrets for 1 and 8 July.
1.5. Review of open action items [0/5]
(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.
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 [30]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 [31]#2019: 1776: XSLT template rules for maps and array
* PR [32]#1283: 77b Update expressions
* PR [33]#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 [34]#2055: 37 Sequence, Array, and Map destructuring
Proposal: merge without discussion.
Accepted.
1.6.3. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
(Only a few are likely to be discussed at this meeting.)
* PR [35]#2013: 748 Parse functions: consistency
* PR [36]#2049: 2045 Context value can be an empty sequence
* PR [37]#2015: 2009 Avoid constructing document node when it makes
no sense
* PR [38]#1942: 37 Support sequence, array, and map destructuring
declarations
* PR [39]#2011: 675(part): Add XSLT static typing rules for new kinds
of XPath expression
* PR [40]#2014: QT4CG-122-01 Add notes, examples, and rationale for
xsl:select
* PR [41]#2019: 1776: XSLT template rules for maps and array
* PR [42]#2031: 2025 JNodes
* PR [43]#2037: 2036 Add rule for streamability of xsl:map
* PR [44]#2043: 2038 Tweak the rules for fn:apply-templates
references to modes
* PR [45]#2050: 2040 Fix context value declaration issues
2. Technical agenda
The following substantive PRs were open when this agenda was prepared.
2.1. PR #2013: 748 Parse functions: consistency
See PR [46]#2013
CG has incorporated most of the feedback from last week.
* CG: One observation was that we could use unparsed-binary instead
of unparsed-text.
+ ... Also, we wanted to have some comments on parsing XML.
+ ... Added a reference to the fn:doc function which has some
information about encodings.
Proposal: accept this PR.
Accepted.
2.2. PR #2049: 2045 Context value can be an empty sequence
See PR [47]#2049
CG displays the document for us.
* NW: this PR changes a half-dozen or so functions to allow the empty
sequence.
* JLO: Generally, I think this fine. I would still like to know the
justification.
Some discussion of the consequence of allowing the context value to be
a sequence.
* JWL: In all of these cases, if the context value is an empty
sequence, the functions return an empty sequence.
That's correct.
* WP: When you call it with no argument, you're still going to
default with the current context, but that might now be an empty
sequence.
* JWL: The point is that it's still . but that can now be an empty
sequence. Previously, we expected . to be a singleton.
Observe that the test is for node()?, so you can't pass a sequence of
more than one item.
Proposal: accept this PR.
Accepted.
2.3. PR #2015: 2009 Avoid constructing document node when it makes no sense
See PR [48]#2015
A quick review of the PR.
* RD: This is only apply to maps and arrays?
Some discussion of what the result is if the result is a string,
instead of a map or array.
(Some fumbling with the result of the diff.)
* RDL: Does this need to be noted as a breaking change? If a string
is returned, you won't get a document node?
* NW: I think that's only true if you use xsl:select.
* JWL: There's a distinction here between xsl:sequence select=... and
xsl:select.
+ ... The way to think of it is that xsl:select is letting you
use a child instead of an attribute so that you avoid
normalization.
Proposal: accept this PR.
Accepted.
2.4. Issues relating to QName literals
* [49]Issue 2059: Literal QNames: Adaptive serialization
* [50]Issue 2058: Literal QNames continued
* [51]Issue 2056: Implicit Whitespace in MarkedNCName and
QNameLiteral
CG created PRs and the group agreed to discuss them today.
* CG: The adative serialization method is mostly for debugging, so we
can make that simpler.
CG reviews PR [52]#2060.
* JLO: In the example that you showed, even with an empty namespace
there was a #Q{}a
* CG: Yes, that was my first idea, but we can omit the braces in that
case.
* RD: Can we look at the text without the diff?
* CG: Yes.
* JWL: Do we have anywhere else where we're likely to get a problem
with # followed by a letter?
+ ... We have Q{} or # just followed by a string. What if the
name starts with a Q?
* RD: If it's not followed by a curly brace then it won't be a QName.
* JLO: So it's easy to tell.
* JWL: If this is really for debugging and you aren't going to parse
it, I'm not sure if using # without the curly braces is actually
less confusing.
* JLO: I'm using adaptive serialization a lot, the distinction is
between # and "#".
+ ... There's no other way to get a # without quotes, so I don't
think there's a problem.
Proposal: accept this PR.
Accepted.
* CG: Next we have annotations.
CG reviews PR [53]#2061.
* CG: This is XQuery only because it's annotations; this could be
useful for RESTXQ. It wouldn't require parsing strings, you could
just supply literals.
* RD: Another example of this is that you could have a throws
annotation that specifies the error literal directly as a QName.
* JLO: I'm completely in favor, but why don't we allow maps and array
literals?
* NW: That sounds like a separate question.
* CG: I think the main reason is because its easier to have things
that can be statically parsed.
+ We avoid using unary here, for example, because we don't want
to allow more expressions.
Proposal: accept this PR.
Accepted.
* CG: Gunther observed that whitespace is not allowed between # and
the name.
+ ... It has no effect on pragmas, because they require a
whitespace.
CG reviews PR [54]#2064.
(Only the grammar has changed, so there are no diffs.)
* CG: The change is just removing whitespace-spec in the production.
* JWL: Has anyone ever actually seen anyone use spaces after $.
* JLO: It'd be interesting to know how many parsers fail at this
point.
* RD: My IntelliJ plugin has loads of tests for this sort of thing.
Proposal: accept this PR.
Accepted.
The group agrees to look at a few more PRs.
2.5. PR #2065
See PR [55]#2065
* CG: This is mostly editorial. In map:build, multiple keys is mostly
a special case.
+ ... This PR also removes the ability for simplicity.
* RD: Not related to this, but it might be easier to read if the
elements in the sygnature table are allowed at the top.
* NW: Yes, make an issue and assign it to me, please.
* JWL: We have decided not to support any idea of a sequence value
for a key. Is that right?
* CG: That's right.
* JLO: The function that produces the key is still xs:anyAtomicType*
* CG: The function isn't changing, just removing the plural.
Some discussion of what happens when the key is an empty sequence; no
entry is created.
* JLO: Are there any examples of multiple keys?
* CG: Apparently not.
ACTION QT4CG-126-01: JLO to add an example where the map:build key
function returns multiple keys.
Proposal: accept this PR.
Accepted.
2.6. PR #2062
See PR [56]#2062
* CG: The fn:sort-by function allowed you to omit the second
argument. It looks a bit lost to have sort by with out any sort
key. My suggestion is to make it manditory, even if it can be the
empty sequence.
* NW: Seems reasonable to me.
Proposal: accept this PR.
Accepted.
2.7. Steps: variable element names, issue #2057
CG introduces the issue.
* CG: I haven't checked all the details yet, so this is just a
suggestion.
* JWL: This is what I was asking MK about with JNodes.
+ ... I asked could you do a similar thing on normal nodes.
+ ... He implied that this was a lot more problematic, I'd like
to hear his opinion.
+ ... I like it, it would be an easy dynamic mechanism for
putting them in expressions.
* CG: I think we about $node/$name and that definitely won't work.
+ ... But I think adding element() would work.
* JLO: I didn't know that you can do $node/$name.
Some discussion of what that currently means!
* JK: I'd like some feedback on my #2051 if anyone can take a look.
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-24.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/06-24.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/06-24.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/06-24.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/06-24.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/06-24.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/06-24.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/06-24.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/06-24.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/06-24.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/06-24.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/06-24.html#substantive
18. https://qt4cg.org/meeting/minutes/2025/06-24.html#technical-agenda
19. https://qt4cg.org/meeting/minutes/2025/06-24.html#pr-2013
20. https://qt4cg.org/meeting/minutes/2025/06-24.html#pr-2049
21. https://qt4cg.org/meeting/minutes/2025/06-24.html#pr-2015
22. https://qt4cg.org/meeting/minutes/2025/06-24.html#qname-literals
23. https://qt4cg.org/meeting/minutes/2025/06-24.html#pr-2065
24. https://qt4cg.org/meeting/minutes/2025/06-24.html#pr-2062
25. https://qt4cg.org/meeting/minutes/2025/06-24.html#h-E0E86275-C41A-4199-A786-ECFB368F7E8B
26. https://qt4cg.org/meeting/minutes/2025/06-24.html#any-other-business
27. https://qt4cg.org/meeting/minutes/2025/06-24.html#adjourned
28. https://qt4cg.org/meeting/agenda/2025/06-24.html
29. https://qt4cg.org/meeting/minutes/2025/06-17.html
30. https://qt4cg.org/meeting/minutes/2025/06-24.html#technical-agenda
31. https://qt4cg.org/dashboard/#pr-2019
32. https://qt4cg.org/dashboard/#pr-1283
33. https://qt4cg.org/dashboard/#pr-1062
34. https://qt4cg.org/dashboard/#pr-2055
35. https://qt4cg.org/dashboard/#pr-2013
36. https://qt4cg.org/dashboard/#pr-2049
37. https://qt4cg.org/dashboard/#pr-2015
38. https://qt4cg.org/dashboard/#pr-1942
39. https://qt4cg.org/dashboard/#pr-2011
40. https://qt4cg.org/dashboard/#pr-2014
41. https://qt4cg.org/dashboard/#pr-2019
42. https://qt4cg.org/dashboard/#pr-2031
43. https://qt4cg.org/dashboard/#pr-2037
44. https://qt4cg.org/dashboard/#pr-2043
45. https://qt4cg.org/dashboard/#pr-2050
46. https://qt4cg.org/dashboard/#pr-2013
47. https://qt4cg.org/dashboard/#pr-2049
48. https://qt4cg.org/dashboard/#pr-2015
49. https://github.com/qt4cg/qtspecs/issues/2059
50. https://github.com/qt4cg/qtspecs/issues/2058
51. https://github.com/qt4cg/qtspecs/issues/2056
52. https://qt4cg.org/dashboard/#pr-2060
53. https://qt4cg.org/dashboard/#pr-2061
54. https://qt4cg.org/dashboard/#pr-2064
55. https://qt4cg.org/dashboard/#pr-2065
56. https://qt4cg.org/dashboard/#pr-2062
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 24 June 2025 16:56:20 UTC