QT4CG meeting 162 draft minutes, 28 April 2026

Hello folks,

Apologies for the delayed announcement. Here are the draft minutes
from yesterday:

   https://qt4cg.org/meeting/minutes/2026/04-28.html

QT4 CG Meeting 162 Minutes 2026-04-28

   [1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
   Pull Requests

Table of Contents

     * [6]Summary of new and continuing actions [0/12]
     * [7]Draft Minutes
     * [8]1. Administrivia
          + [9]1.1. Roll call [10/10]
          + [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 [4/12]
          + [14]1.6. Review of open pull requests and issues
               o [15]1.6.1. Blocked
               o [16]1.6.2. Substantive PRs
     * [17]2. Technical agenda
          + [18]2.1. PR #2470: 1310 Function fn:matching-segments
          + [19]2.2. Issue 2489: fn:parts-of-dateTime, fn:parse-uri: names
            & types
          + [20]2.3. Issue 2314: fn:error: return type xs:error ?
          + [21]2.4. Issue 2312: Map/Array Filter: too much syntactic
            sugar?
          + [22]2.5. PR #2593: 2592 Change number-parser option to
            number-format
          + [23]2.6. PR #2589: 2587 Streamability of context value
            expressions
          + [24]2.7. PR #2566: 1979 Records with type annotations
     * [25]3. Any other business

Summary of new and continuing actions [0/12]

     * [ ] QT4CG-143-02: MK to try to recover the ability to extract
       formal equivalences into tests
     * [ ] QT4CG-144-01: MK to consider if any now lost value comparisons
       should be added as examples.
     * [X] QT4CG-150-04: NW to see about a status update on PR #2345;
       possibly schedule discussion
          + Absent any recent feedback, I propose closing this for now
     * [ ] QT4CG-156-01: MK: add reference to data model in F&O 9.2
     * [ ] QT4CG-156-03: MK to revise PR #2516 in light of the comments.
     * [ ] QT4CG-158-01: MK to revisit the Conformance section to revise
       in light of #2556 error changes
     * [ ] QT4CG-158-02: MK to add system-properties() keys for file and
       binary support
     * [ ] QT4CG-160-01: MK to fix the markup error in method/method call
       in #2578
     * [ ] QT4CG-160-02: NW to think about how to promote the dated drafts
       for broader community feedback.

Draft Minutes

1. Administrivia

1.1. Roll call [10/10]

     * [X] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK) [x:10-]
     * [X] Michael Kay (MK)
     * [X] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [X] Alan Painter (AP)
     * [X] Wendell Piez (WP)
     * [X] Norm Tovey-Walsh (NW) Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [26]the agenda.

   Accepted.

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting is planned for 5 May 2026.

   No regrets heard.

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

     * [ ] QT4CG-143-02: MK to try to recover the ability to extract
       formal equivalences into tests
     * [ ] QT4CG-144-01: MK to consider if any now lost value comparisons
       should be added as examples.
     * [X] QT4CG-150-04: NW to see about a status update on PR #2345;
       possibly schedule discussion
          + Absent any recent feedback, I propose closing this for now
     * [ ] QT4CG-156-01: MK: add reference to data model in F&O 9.2
     * [ ] QT4CG-156-03: MK to revise PR #2516 in light of the comments.
     * [ ] QT4CG-158-01: MK to revisit the Conformance section to revise
       in light of #2556 error changes
     * [ ] QT4CG-158-02: MK to add system-properties() keys for file and
       binary support
     * [ ] QT4CG-160-01: MK to fix the markup error in method/method call
       in #2578
     * [ ] QT4CG-160-02: NW to think about how to promote the dated drafts
       for broader community feedback.
     * [X] QT4CG-161-01: MK to add a record parameter to the dm:record-get
       accessor. (Editorial)
     * [X] QT4CG-161-02: MK to review the build-dateTime example in with
       and correct as necessary.
     * [X] QT4CG-161-03: MK to review the grammar; with seems to be
       unreferenced.

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 [28]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 [29]#2345: 2299 Expand pipeline to allow arrow expression in
       path expression
     * PR [30]#2160: 2073 data model changes for JNodes and Sequences
     * PR [31]#2071: 77c deep update
     * PR [32]#2019: 1776: XSLT template rules for maps and array

1.6.2. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [33]#2593: 2592 Change number-parser option to number-format
     * PR [34]#2589: 2587 Streamability of context value expressions
     * PR [35]#2566: 1979 Records with type annotations
     * PR [36]#2470: 1310 Function fn:matching-segments

2. Technical agenda

2.1. PR #2470: 1310 Function fn:matching-segments

   See PR [37]#2470
     * MK: This was previously bundled with the proposal for an fn:regex
       function; it's now been decoupled as requested.
          + ... It's sort of equivalent to xsl:analyze-string except that
            it returns the information in map form.
          + ... It returns all the information about how a regex matches
            an input string in a single shot: including groups, etc.
          + ... It relies on disjoint matching segments which we already
            define.

   MK reviews the examples in the specification.
     * NW: Is it possible for the group keys to be non-sequential?
     * MK: Yes, it's a map because it can be sparse.
     * JLO: Do we have an option to name groups?
     * MK: No. That's a feature of some regex dialects.
     * JLO: We now get a sequence of maps only with matching segments. If
       I want to construct the string again out of the segments, that will
       be challenge.
     * MK: A challenge for the reader! (Might be nice to have an example
       showing that.)
     * JLO: In the date example, we do match on the hyphen, but they
       aren't in the output. Is that intended?
     * MK: Yes, it's part of the substring as a whole but not of any
       group.

   MK points back to disjoint-matching-segments where the processing model
   and logic are outlined.

   Proposal: accept this PR.

   Accepted.

2.2. Issue 2489: fn:parts-of-dateTime, fn:parse-uri: names & types

   See issue [38]#2489.

   This issue is marked propose closing after discussion.
     * CG: I wondered whether we should change than name of a couple of
       functions.
          + ... Majority of feedback was negative, I'm fine with that.

   Proposal: close this issue with no further action.

   Accepted.

2.3. Issue 2314: fn:error: return type xs:error ?

   See issue [39]#2314.

   This issue is marked propose closing after discussion.
     * CG: There was a long discussion in this issue; MK suggested
       changing the return type.
     * MK: From the perspective of a reader of the spec, a return type of
       xs:error makes more sense.
     * JLO: Why is it a problem to implement xs:error as the return type?
     * MK: We declare the return type as item()* because it stops the
       optimizer from making inferences and optimizing it away.
     * CG: Ok, I'll do a PR.

   Okay, that issue will get closed by that PR.

2.4. Issue 2312: Map/Array Filter: too much syntactic sugar?

   See issue [40]#2312.

   This issue is marked propose closing after discussion.
     * CG: I wonder if we should remove some syntactic sugar. The syntax
       filter(?key, ?value) isn't used anywhere else.
          + ... We could just use map filter functions.
     * MK: Remove the predicate for both maps and arrays. I think I'd
       probably go along with that.
          + ... We started out with the idea that if something can be done
            with sequences, it should be just as easy with arrays.
          + ... But it's another bit of syntax for people to remember and
            FLOWR expressions are probably the first thing people will
            turn to. But there's now where clause in XPath.
     * RD: What's the objection to adding the where clause to XPath?
     * MK: The where and order by are the only things that operate on
       tuples of variable bindings.
          + ... You can do weird things with that; it adds quite a bit of
            complexity. It doesn't reduce to just doing two nested for
            expressions.
     * JWL: On the for key $key value $v ... expression key and value are
       both keywords.
     * RD: value is full-text? It's one of the extensions.
     * JLO: I have never noticed this syntax before; I found this hard to
       explain. I'm in favor of dropping it.

   Some discussion of the syntax of the example and how arrays and
   sequences relate.
     * MK: Not listed here, there are also ways of doing this with JNodes.
     * CG: I can do a PR for it.

2.5. PR #2593: 2592 Change number-parser option to number-format

   See PR [41]#2593
     * MK: This is removing some functionality in the interest of making
       things simpler.
     * MK: We get rid of the number-parser function and replace it with
       number-format that has three possible values.
          + ... This is to do with what you do with numbers in the
            parse-json function.
     * MK: In XPath 3, you always get double.
     * MK: You can now choose to between double and decimal or base it on
       the lexical form.

   MK describes the options.

   Some discussion of different options for different fields. No, you
   don't get that.
     * CG: My preference would have been to make the adaptive behavior the
       default, but I can see why it isn't.

   Proposal: accept this PR.

   Accepted.

2.6. PR #2589: 2587 Streamability of context value expressions

   See PR [42]#2589
     * MK: This is all in the streaming spec.
     * MK: This is a partial response to the long standing action that
       says we need to define the streamability of new construct.
     * MK: Changing context item into context value caused lots of
       problems on my first attempt.
     * MK: This is my attempt to define things so that it'll work.

   MK reviews the streamability rules for new constructs.
     * MK: I'll revise this after we accept the PR that removes map and
       array filter expressions.

2.7. PR #2566: 1979 Records with type annotations

   See PR [43]#2566
     * MK: The only new thing here are some specific corrections from our
       review and in addition the conflict with the query update syntax
       using the with operator.
          + ... I changed the with operator to +:= (the record put
            operator).
     * MK: I also restricted it to records as requested.
     * MK: There is more work needed on types and instance of. It's
       complete in it's current form, I think it's a good checkpoint.
          + ... Named vs anonymous record types in instance of needs some
            more thought.
     * CG: I think it could be worthwhile to look at the comments on this
       PR.
          + ... The XQFO spec still talks about raising errors; other
            parts of the spec says the functions behave as before.

   MK will review the comments and bring it back.

3. Any other business

     * JLO: I got confirmation from Prague that I'll be doing an XQuery
       4.0 workshop.
     * JWL: I'd say that the XSLT stuff is only about 1/8th of all the
       stuff so I wouldn't worry to much about it.
     * MK: I'm happy to help fill in on the XSLT side.

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/04-28.html#new-actions
   7. https://qt4cg.org/meeting/minutes/2026/04-28.html#minutes
   8. https://qt4cg.org/meeting/minutes/2026/04-28.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2026/04-28.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2026/04-28.html#agenda
  11. https://qt4cg.org/meeting/minutes/2026/04-28.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2026/04-28.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2026/04-28.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2026/04-28.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2026/04-28.html#blocked
  16. https://qt4cg.org/meeting/minutes/2026/04-28.html#substantive
  17. https://qt4cg.org/meeting/minutes/2026/04-28.html#technical-agenda
  18. https://qt4cg.org/meeting/minutes/2026/04-28.html#pr-2470
  19. https://qt4cg.org/meeting/minutes/2026/04-28.html#iss-2489
  20. https://qt4cg.org/meeting/minutes/2026/04-28.html#iss-2314
  21. https://qt4cg.org/meeting/minutes/2026/04-28.html#iss-2312
  22. https://qt4cg.org/meeting/minutes/2026/04-28.html#pr-2593
  23. https://qt4cg.org/meeting/minutes/2026/04-28.html#pr-2589
  24. https://qt4cg.org/meeting/minutes/2026/04-28.html#pr-2566
  25. https://qt4cg.org/meeting/minutes/2026/04-28.html#any-other-business
  26. https://qt4cg.org/meeting/agenda/2026/04-28.html
  27. https://qt4cg.org/meeting/minutes/2026/04-21.html
  28. https://qt4cg.org/meeting/minutes/2026/04-28.html#technical-agenda
  29. https://qt4cg.org/dashboard/#pr-2345
  30. https://qt4cg.org/dashboard/#pr-2160
  31. https://qt4cg.org/dashboard/#pr-2071
  32. https://qt4cg.org/dashboard/#pr-2019
  33. https://qt4cg.org/dashboard/#pr-2593
  34. https://qt4cg.org/dashboard/#pr-2589
  35. https://qt4cg.org/dashboard/#pr-2566
  36. https://qt4cg.org/dashboard/#pr-2470
  37. https://qt4cg.org/dashboard/#pr-2470
  38. https://github.com/qt4cg/qtspecs/issues/2489
  39. https://github.com/qt4cg/qtspecs/issues/2314
  40. https://github.com/qt4cg/qtspecs/issues/2312
  41. https://qt4cg.org/dashboard/#pr-2593
  42. https://qt4cg.org/dashboard/#pr-2589
  43. https://qt4cg.org/dashboard/#pr-2566

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
CEO, Saxonica

Received on Wednesday, 29 April 2026 07:13:17 UTC