QT4CG meeting 147 draft minutes, 6 January 2026

[ Reposted with the correct subject. Apologies for that. ]

Hello,

Here are the draft minutes from today’s meeting:

   https://qt4cg.org/meeting/minutes/2026/01-06.html

QT4 CG Meeting 147 Minutes 2026-01-06

   [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/5]
     * [8]1. Administrivia
          + [9]1.1. Roll call [7/13]
          + [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/4]
          + [14]1.6. Review of open pull requests and issues
               o [15]1.6.1. Close without action
     * [16]2. Technical agenda
          + [17]2.1. PR #2336: 2334 Revise XSLT pattern syntax and
            semantics
          + [18]2.2. PR #2348: 1011 fn transform improvements
          + [19]2.3. PR #2266: 540 system-property equivalent for XQuery
          + [20]2.4. PR #2274: 407 Function items capturing XSLT context
            components
     * [21]3. Any other business

Draft Minutes

Summary of new and continuing actions [0/5]

     * [ ] QT4CG-143-02: MK to try to recover the ability to extract
       formal equivalences into tests
     * [ ] QT4CG-143-03: JK to look for C14N test suites.
     * [ ] QT4CG-144-01: MK to consider if any now lost value comparisons
       should be added as examples.
     * [ ] QT4CG-147-01: MK to fix the change markup entry for
       fn:curent-merge-group; it refers to the wrong function name.
     * [ ] QT4CG-147-02: NW to chase up DN and LQ about follow-up to the
       generator discussion

1. Administrivia

1.1. Roll call [7/13]

   Regrets: CG.
     * [X] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [ ] Sasha Frisov (SF)
     * [ ] Christian Gr¸n (CG)
     * [ ] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [ ] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [X] Alan Painter (AP
     * [X] Wendell Piez (WP)
     * [ ] Ruvim Pinka (RP)
     * [ ] Ed Porter (EP)
     * [X] Norm Tovey-Walsh (NW) Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [22]the agenda.

   MK observes that #2336 should have been at the top of the agenda.

   Accepted with that change.

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting is planned for 13 January 2026.

   No regrets heard.

   JWL gives regrets for 20, 27 January.

1.5. Review of open action items [1/4]

     * [ ] QT4CG-143-02: MK to try to recover the ability to extract
       formal equivalences into tests
     * [ ] QT4CG-143-03: JK to look for C14N test suites.
     * [ ] QT4CG-144-01: MK to consider if any now lost value comparisons
       should be added as examples.
     * [X] QT4CG-146-01: NW to attempt to provide a markup solution for
       argument defaults

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 [24]Technical Agenda below for
   the focus of this meeting.

1.6.1. 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 [25]#2048: Untrusted execution, and security more generally

   Proposal: close this issue without further action.

   Accepted.

2. Technical agenda

2.1. PR #2336: 2334 Revise XSLT pattern syntax and semantics

   See PR [26]#2336.

   MK introduces the PR.
     * MK: Primarily about XSLT, but there are one or two knock-on effects
       on the XPath grammar.
          + ... One is completely trivial; the pattern syntax now reuses
            the fragment for constants so it's been rearranged a bit.
               o ... 2.6.6 Constants has been drawn out into a section of
                 their own.
          + ... The other is not so trivial; in the interest of alignment,
            I've changed the syntax for JNode types to work like patterns.
            You can specify first the selector, then the type. That brings
            pattersn and types into alignment for JNodes. Let's look at
            that first.
     * MK: The JNodeType production is changed; it now has two parts, a
       selector property followed by a content type. That aligns with
       JNode patterns and element tests.
          + ... The selector has to be a constant, that again aligns with
            elements.
          + ... If you want to use the selector with a type, that implies
            that it's statically known.
     * MK: The other changes are to XSLT.
          + ... The way patterns work has been restructured a bit.
          + ... Predicate patterns aren't new, but we've changed the way
            the semantics are described.
          + ... I've changed the syntax for type patterns, it was getting
            too messy.
          + ... I gave up trying to write some types in type() and some
            outside. They're now all uniformly a tilde followed by an item
            type.
     * MK: Type patterns are now simple conceptually; you can't combine
       them with union and intersect.
     * MK: The third kind of pattern are ~GNodePattern~s. You can now use
       paths for both JTrees and XTrees and the semantics are defined in
       the same way.
          + ... This removes the ambiguity of parenthesis in JNode
            patterns.
     * MK: The meaning of GNode pattern has been generalized to handle
       JNodes.
     * MK: Changing the intersect and excepts back to the way it was also
       removes the backwards incompatibility that we introduced. But also
       reintroduces the problem that except doesn't always mean what you
       might think it means.
     * MK: There are no longer special rules for intersect and except in
       priorities.

   MK reviews the priorities outlined in the spec.
     * JWL: In 6.3.2.2, the fifth example in type patterns, the
       jnode(address... example is missing a closing ).
          + ... I've run some tests on the grammar and I don't see any
            ambiguities.
     * JWL: We don't use tilde anywhere else, right?
     * MK: I think that's right. At one stage we had a separate syntax for
       JTrees but we abandoned that.
     * JWL: The * in the selectors and content things, is there an
       argument for saying that that is a wildcard production? Or is that
       too complex?
          + ... When I'm doing the grammar conversions, there isn't a
            production for the *, it's just text.
          + ... If we made it a specific production, then it would be
            clearer in the grammar.
     * MK: There's a related problem when you just have a name there; you
       have to remember that it was a bare name because you don't know
       until runtime if it's being used as an element name or not. (Is it
       a QName in the default namespace or a plain name?)
          + ... The semantics get a little bit complex in that case.
     * JWL: It's just a suggestion.
     * RD: We do something similar for element and attribute tests,
       because they were missing the *:name production.
     * JWL: That might be what I'm thinking wildcard is set to. I'll
       review and send some mail.

   Proposal: Accept this PR.

   Accepted.
     * JWL: In the example that has a record with a * at the end is a
       production for an extensibility key. I think we've got reasonable
       stuff about trying to make things grammar productions.
     * RD: See also:
          + [27]https://qt4cg.org/specifications/xquery-40/xpath-40.html#d
            oc-xpath40-ItemType-NameTest
          + [28]https://qt4cg.org/specifications/xquery-40/xpath-40.html#p
            rod-xpath40-Wildcard
     * JWL: You need to know that a star was present which is unlike
       tilde.

2.2. PR #2348: 1011 fn transform improvements

   See PR [29]#2348.
     * MK: I think the issue here describes a wider range of things; I
       just picked some low-hanging fruit.
     * MK: The first thing is adding a source-location option.
          + ... We needed this in Saxon to allow fn:transform to do
            streaming.
     * MK: ... We add the option to write outputs to persistent storage
       (the filesystem)
          + ... We resisted this previously because it's a side effect;
            let's just bite the bullet.

   Proposal: Accept this PR.

   Accepted.

2.3. PR #2266: 540 system-property equivalent for XQuery

   See PR [30]#2266.

   Some discussion of whether or not this is awaiting further work...

2.4. PR #2274: 407 Function items capturing XSLT context components

   See PR [31]#2274.

   MK introduces the PR. Essentially, it handles the XSLT bits of the
   context the same way we handle the XPath bits. When you bind a function
   item to something like regex groups, then it explicitly captures the
   regex groups as part of the bound context in that function item rather
   than throwing some sort of error. It's just an alignment thing with the
   XPath context functions.
     * MK: The detail mainly involves removing rules.

   Proposal: Accept this PR.

   Accepted.

   ACTION QT4CG-147-01: MK to fix the change markup entry for
   fn:curent-merge-group; it refers to the wrong function name.
     * JWL: Inside a function that captures the regex group, is it
       available for the whole function?

   Some discussion of a complex case with a partial function bound to an
   XSLT function with the capturing group.
     * MK: None of this is especially useful, it just follows the general
       rule and removes some special cases.

   Proposal: Accept this PR.

   Accepted.

3. Any other business

     * NW: Are we ready to create a checkpointed version?

   General agreement that we are.
     * MK: Are we going to try to keep track of changes.

   Some discussion. We'll try to be diligent about putting dates in the
   change summaries.
     * JWL: Should we check with CG and or JLO first?
     * NW: I can.
     * MK: In terms of program of work, how do we tackle generators?

   ACTION QT4CG-147-02: NW to chase up DN and LQ about follow-up to the
   generator discussion

   Some further discussion.
     * RD: DN's approach is more of an external library approach. But the
       proposal I made is in effect providing a single function that
       allows you to create programmatic sequences from a generator style
       or iterator style.
     * MK: That's basically the proposal I took and ran with.
     * NW to put MK's proposal on the agenda for next week to see if we
       can get a better understanding of it.

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/2026/01-06.html#minutes
   7. https://qt4cg.org/meeting/minutes/2026/01-06.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2026/01-06.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2026/01-06.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2026/01-06.html#agenda
  11. https://qt4cg.org/meeting/minutes/2026/01-06.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2026/01-06.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2026/01-06.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2026/01-06.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2026/01-06.html#close-without-action
  16. https://qt4cg.org/meeting/minutes/2026/01-06.html#technical-agenda
  17. https://qt4cg.org/meeting/minutes/2026/01-06.html#pr-2336
  18. https://qt4cg.org/meeting/minutes/2026/01-06.html#pr-2348
  19. https://qt4cg.org/meeting/minutes/2026/01-06.html#pr-2266
  20. https://qt4cg.org/meeting/minutes/2026/01-06.html#pr-2274
  21. https://qt4cg.org/meeting/minutes/2026/01-06.html#any-other-business
  22. https://qt4cg.org/meeting/agenda/2026/01-06.html
  23. https://qt4cg.org/meeting/minutes/2025/12-16.html
  24. https://qt4cg.org/meeting/minutes/2026/01-06.html#technical-agenda
  25. https://github.com/qt4cg/qtspecs/issues/2048
  26. https://qt4cg.org/dashboard/#pr-2336
  27. https://qt4cg.org/specifications/xquery-40/xpath-40.html#doc-xpath40-ItemType-NameTest
  28. https://qt4cg.org/specifications/xquery-40/xpath-40.html#prod-xpath40-Wildcard
  29. https://qt4cg.org/dashboard/#pr-2348
  30. https://qt4cg.org/dashboard/#pr-2266
  31. https://qt4cg.org/dashboard/#pr-2274

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 6 January 2026 17:29:45 UTC