QT4CG meeting 134 draft minutes, 16 September 2025

Hello,

Here are the draft minutes from today’s meeting:

   https://qt4cg.org/meeting/minutes/2025/09-16.html

QT4 CG Meeting 134 Minutes 2025-09-16

   [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/9]
     * [8]1. Administrivia
          + [9]1.1. Roll call [8/11]
          + [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/8]
          + [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 #2171: 2163 Change ?> symbol to =?>
          + [20]2.2. PR #2191: 2075 Editorial Omnibus
          + [21]2.3. PR #2189: 2180 Clarify paths mixing XNodes and JNodes
          + [22]2.4. PR #2188: 2187 Add coercion rule for enumeration
            types
          + [23]2.5. PR #2182: 2178 Define predeclared namespaces for
            XQuery
          + [24]2.6. PR #2181: 2179 Add namespace declarations to XPath
            grammar
     * [25]3. Any other business
     * [26]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/9]

     * [ ] 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-127-01: NW to diagram the JTree representing arbitrary
       XDM content.
     * [ ] QT4CG-128-03: NW to compare the file: module against the
       equivalent XProc 3.1 steps
     * [ ] QT4CG-131-01: MK to add a non-schema aware result.
     * [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
     * [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
       matrix example.
     * [ ] QT4CG-133-01: MK to correct the use of "Expr" in examples for
       get()
     * [ ] QT4CG-134-01: MK to open an issue about the error code for =?>

1. Administrivia

1.1. Roll call [8/11]

     * [X] David J Birnbaum (DB)
     * [ ] Reece Dunn (RD)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [X] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [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 [27]the agenda.

   Accepted.

1.3. Approve minutes of the previous meeting

   Proposal: Accept [28]the minutes of the previous meeting.

   Accepted.

1.4. Next meeting

   The next meeting is planned for 23 September 2025.

   JLO gives regrets.

1.5. Review of open action items [0/8]

   (Items marked [X] are believed to have been closed via email before
   this agenda was posted.)
     * [ ] 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-127-01: NW to diagram the JTree representing arbitrary
       XDM content.
     * [ ] QT4CG-128-03: NW to compare the file: module against the
       equivalent XProc 3.1 steps
     * [ ] QT4CG-131-01: MK to add a non-schema aware result.
     * [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
     * [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
       matrix example.
     * [ ] QT4CG-133-01: MK to correct the use of "Expr" in examples for
       get()

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 [29]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 [30]#2124: 573 Functions to Construct Trees
     * PR [31]#2120: 2007 Revised design for xsl:array
     * PR [32]#2019: 1776: XSLT template rules for maps and array

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 [33]#2174: 2173 Drop method annotations from XPath grammar

   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 [34]#2161: Drop other non-ASCII operators (◊, ˜)
          + We'll keep these.
     * Issue [35]#2034: fn:parse-xml, fn:doc: `safe` option
     * Issue [36]#1912: Error handling: `fn:throw`
     * Issue [37]#1868: array:members() to include index position
     * Issue [38]#670: The trouble with XPath's fn:fold-right. A fix and
       Proposal for fn:fold-lazy
     * Issue [39]#576: JSON serialization: INF/NaN, function items
     * Issue [40]#158: Support optional parameters on dynamic functions
     * Issue [41]#105: Maps with Infinite Number of Keys: Total Maps and
       Decorated maps

   Proposal: close without further action.

   Accepted.

2. Technical agenda

2.1. PR #2171: 2163 Change ?> symbol to =?>

   See PR [42]#2171
     * MK: I thought we had consensus going in this direction, but there's
       been a lot of discussion.
     * JLO: Can we look at the comments?

   MK reviews the issue and comments on it...
     * NW: I think there are two seperable questions...
     * JK: I'm just exploring ways to approach it differently; especially
       since we've changed how the step operator works.
          + I think something like "/" would be more familiar to users.
          + Could you design your record so that your methods are
            qualified names, then you wouldn't have any problems, is that
            right?
     * JLO: That's an interesting point. If methods would all be in the
       method namespace, then maybe that would be a possibility.

   Some discussion of using ".", but that's a name character.
     * JLO: I'm fine with =?>.
     * NW: I fear that if we wanted to use QNames, we'd quickly have
       questions about how to use EQNames and default prefixes and we'd be
       back where we started.

   Proposal: change the spelling ?> symbol to =?>

   Accepted.
     * WP: I think that ==> is maybe better. But if everyone else is
       happier...
     * CG: There was one more comment from MK in #2163 that XPDY may not
       be the best error code. Should we open a new issue for that.

   ACTION: QT4CG-134-01: MK to open an issue about the error code for =?>

2.2. PR #2191: 2075 Editorial Omnibus

   See PR [43]#2191
     * MK: I think this is all pretty well editorial. There are one or two
       issues that I didn't address because I thought the issues were more
       than editorial.
          + ... The changes in the PR are all uncontroversial.

   Some discussion of the questions not answered.
     * CG: There are some invalid links and the summary of changes
       includes some notes about characters that aren't used anymore.
     * MK: I think a new editorial issue is the way to go.
     * JWL: Can you look at A.4 in the XPath spec?
          + ... The changes remarks says that record, item, and enum have
            not been added, but they have.
     * MK: I think that should be have been added.
     * JLO: Thank you for this work.

   Proposal: accept this PR.

   Accepted.

   MK to make the small fix outlined above and then merge the PR.

2.3. PR #2189: 2180 Clarify paths mixing XNodes and JNodes

   See PR [44]#2189

   MK reviews the changes in XPath...
     * MK: It's adding a note about the subtle difference between $N/T and
       $N/type(T).
          + ... If you say type(T) then you're selecting on the child
            axis. Where using attribute() has an effect on the default
            axis selected. But it does make sense for JNodes.
          + ... It goes further to discuss some things you can't do.
     * NW: That's going to be confusing.
     * MK: It would be nice if the path-like operators composed better,
       but they have different precedences
     * JLO: It seems to me that this will be so common that we might want
       to introduce an operator to do it. Then with the new operator,
       perhaps we could balance things better.

   Some discussion of what could follow the expression.
     * MK: I'm tending to use ! where deduplication and document order
       aren't relevant.
          + ... What you can't do in this example is use an arrow because
            @id isn't a function.
     * JWL: I think we have to recognize that once folks start doing this
       with mixed content, there are going to be lots of problems of
       comprehension.
          + ... But it's going to be fairly skilled to use this correctly.
     * JLO: It might be easier to not use the =!> here. Maybe !
       jnode-content(.) would be easier to read.
     * CG: I agree.
     * JWL: Then putting / in front of @id might make that part clearer.
     * MK: I think the . is unnecessary in jnode-content().
          + ... In fact, you could use / all the way down if you inject
            the jnode-content() step.
     * JLO: Then that's much better!

$array/type(element(p)) / jnode-content() / @id

   Proposal: Accept this PR.

   Accepted.

   MK to make the proposed change to the example and then merge the PR.

2.4. PR #2188: 2187 Add coercion rule for enumeration types

   See PR [45]#2188
     * MK: This is a bug fix in response to a test added by Gunther
       Rademacher.
          + ... He created a test that showed you couldn't use atomic
            values where an enumeration type is expected. But clearly that
            should be possible!
     * MK: This PR updates the coercion rules to make that work.

   Proposal: Accept this PR.

   Accepted.

2.5. PR #2182: 2178 Define predeclared namespaces for XQuery

   See PR [46]#2182
     * MK: I think this was an accidental ommision. We thought we'd agreed
       to it, but when I looked at the spec, we'd added to the list of
       known namespaces, but the spec didn't actually say that they were
       predeclared.
          + ... I've fixed that and made it clear that they're
            predeclared.
     * DB: Are these namespaces predeclared only in XQuery?

   Some discussion of predeclaring them in XPath or XSLT.
     * DB: For what it's worth, I find it confusing and leads to user
       error that the rules for XQuery and XSLT are different. And I've
       found it inconvenient when writing a one-off XPath exploration.
     * MK: The XPath rules say that it's host language defined. So someone
       defining a free-standing XPath processor could say that they're
       predefined. What we're not saying is that they always are. It
       doesn't make sense in XPath embedded in XSLT.

   Some additional discussion of XSLT-being-XML having an influence on the
   declared namespaces.
     * JLO: I do like that this is clearly defined; but what about a
       processor that doesn't have all of them implemented?
     * MK: This says you have to implement the xsi namespace even if you
       don't have schema aware processing.
     * JLO: Then we should say something about them not being implemented.
     * MK: Well, they're implemented in the namespace bindings.
     * JWL: To answer DB's query, I've been using the namespace default
       binding attribute on the stylesheet. That's a lot simpler and
       better.

   Proposal: Accept this PR.

   Accepted.

2.6. PR #2181: 2179 Add namespace declarations to XPath grammar

   See PR [47]#2181
     * NW: Can we get through this in ten minutes?
     * MK: I feel comfortable with it, but I don't know of other folks do.
     * MK: This PR allows you to add namespace declarations in the XPath
       grammar.
          + ... The trigger that lead to this was assertions in the test
            suite.
          + ... They're supposed to be XPath expressions, but there was no
            way of declaring namespaces for them.
     * JWL: This at least makes parsing easier. If it was deeper, I'm not
       sure if we'd get some nasty ambiguities.
     * MK: You'd have to use a different syntax.
     * NW: What happens if you declare the default namespace twice?
     * MK: You get an error.
     * JK: I really appreciate this.

   Proposal: Accept this PR.

   Accepted.

3. Any other business

     * JWL: Can we thank Bethan for the logo.
     * NW: We certainly can.

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/09-16.html#minutes
   7. https://qt4cg.org/meeting/minutes/2025/09-16.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2025/09-16.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2025/09-16.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2025/09-16.html#agenda
  11. https://qt4cg.org/meeting/minutes/2025/09-16.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2025/09-16.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2025/09-16.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2025/09-16.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2025/09-16.html#blocked
  16. https://qt4cg.org/meeting/minutes/2025/09-16.html#merge-without-discussion
  17. https://qt4cg.org/meeting/minutes/2025/09-16.html#close-without-action
  18. https://qt4cg.org/meeting/minutes/2025/09-16.html#technical-agenda
  19. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2171
  20. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2191
  21. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2189
  22. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2188
  23. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2182
  24. https://qt4cg.org/meeting/minutes/2025/09-16.html#pr-2181
  25. https://qt4cg.org/meeting/minutes/2025/09-16.html#any-other-business
  26. https://qt4cg.org/meeting/minutes/2025/09-16.html#adjourned
  27. https://qt4cg.org/meeting/agenda/2025/09-16.html
  28. https://qt4cg.org/meeting/minutes/2025/08-19.html
  29. https://qt4cg.org/meeting/minutes/2025/09-16.html#technical-agenda
  30. https://qt4cg.org/dashboard/#pr-2124
  31. https://qt4cg.org/dashboard/#pr-2120
  32. https://qt4cg.org/dashboard/#pr-2019
  33. https://qt4cg.org/dashboard/#pr-2174
  34. https://github.com/qt4cg/qtspecs/issues/2161
  35. https://github.com/qt4cg/qtspecs/issues/2034
  36. https://github.com/qt4cg/qtspecs/issues/1912
  37. https://github.com/qt4cg/qtspecs/issues/1868
  38. https://github.com/qt4cg/qtspecs/issues/670
  39. https://github.com/qt4cg/qtspecs/issues/576
  40. https://github.com/qt4cg/qtspecs/issues/158
  41. https://github.com/qt4cg/qtspecs/issues/105
  42. https://qt4cg.org/dashboard/#pr-2171
  43. https://qt4cg.org/dashboard/#pr-2191
  44. https://qt4cg.org/dashboard/#pr-2189
  45. https://qt4cg.org/dashboard/#pr-2188
  46. https://qt4cg.org/dashboard/#pr-2182
  47. https://qt4cg.org/dashboard/#pr-2181

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 16 September 2025 16:47:08 UTC