QT4CG meeting 153 draft minutes, 17 February 2026

Hello,

Here are the draft minutes from yesterday’s meeting:

   https://qt4cg.org/meeting/minutes/2026/02-17.html

QT4 CG Meeting 153 Minutes 2026-02-17

   [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/5]
     * [7]Draft Minutes
     * [8]1. Administrivia
          + [9]1.1. Roll call [9/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 [1/10]
          + [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
               o [18]1.6.4. Substantive PRs
     * [19]2. Technical agenda
          + [20]2.1. Improvements to FOS
          + [21]2.2. Issue #2460: file:read-text and invalid XML
            characters
          + [22]2.3. Other issue triage
               o [23]2.3.1. #77 Allow manipulation of maps and arrays
               o [24]2.3.2. #272 Setting parameter values in
                 xsl:use-package
               o [25]2.3.3. #285 Stability of collections
               o [26]2.3.4. #540 Add fn:system-property() to XQuery
               o [27]2.3.5. #641 Serialization fallback
               o [28]2.3.6. #675 XSLT streaming rules for new constructs
               o [29]2.3.7. #1045 Functions to manage namespace usage
               o [30]2.3.8. #1225 Generalization of Deep Updates
               o [31]2.3.9. #1234 Seralization Parameters: Indentation,
                 Whitespace, Newlines
               o [32]2.3.10. 1251 Allow sequence constructor in extension
                 instructions that are implemented with named templates
               o [33]2.3.11. 1310 add fn:match-groups() function
               o [34]2.3.12. 1459 Function properties and arities
               o [35]2.3.13. 1479 Default element namespace in XQuery:
                 interaction of 'fixed' and '##any'
               o [36]2.3.14. 1506 Type declarations: Constructor
                 functions?
               o [37]2.3.15. 1528 Computed node constructors: observations
               o [38]2.3.16. 1584 Review the XML Schema and RELAX NG
                 schemas for XSLT 4.0 for compatibility
               o [39]2.3.17. 1697 Add documentary names to callback
                 function signatures
               o [40]2.3.18. 1702 Node Updates: Functions
               o [41]2.3.19. 1777 Shallow copy in XSLT with maps and
                 arrays
               o [42]2.3.20. 1920 Parse functions: determinism
               o [43]2.3.21. 1948 fn:element-to-map:
               o [44]2.3.22. 1949 fn:element-to-map: Updated Feedback
               o [45]2.3.23. 1979 Records: Type Safety
               o [46]2.3.24. 2000 element-to-map() - type signature of
                 plan
               o [47]2.3.25. 2018 Type-checking the result of
                 xsl:apply-templates
               o [48]2.3.26. 2039 Generalize context item to context value
                 in XSLT
               o [49]2.3.27. 2052 fn:collation-available: $usage
     * [50]3. Any other business

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-149-01: CG to draft a new PR with the common rule note.
     * [ ] QT4CG-150-01: NW to ask Jirka for a room at XML Prague for
       Tuesday/Wednesday
     * [ ] QT4CG-150-04: NW to see about a status update on PR #2345;
       possibly schedule discussion
     * [ ] QT4CG-151-01: MK to fix the typo in the build-dateTime
       function.
     * [ ] QT4CG-151-03: NW to investigate why records are formatted
       incorrectly in XSLT
     * [ ] QT4CG-152-01: MK to add a note about the new and old syntax for
       names in PR #2446
     * [ ] QT4CG-153-01: MK to investigate the indentation problem.
     * [ ] QT4CG-153-02: MK to turn my suggestions on #1949 into a PR.

Draft Minutes

1. Administrivia

1.1. Roll call [9/10]

   Regrets: DB.
     * [ ] 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)
     * [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 [51]the agenda.

   Accepted.

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting is planned for 3 March 2026.

   We will not meet on 24 February.

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

     * [ ] 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-149-01: CG to draft a new PR with the common rule note.
     * [ ] QT4CG-150-01: NW to ask Jirka for a room at XML Prague for
       Tuesday/Wednesday
     * [X] QT4CG-150-03: NW to setup an agenda item to review open issues
     * [ ] QT4CG-150-04: NW to see about a status update on PR #2345;
       possibly schedule discussion
     * [ ] QT4CG-151-01: MK to fix the typo in the build-dateTime
       function.
     * [ ] QT4CG-151-03: NW to investigate why records are formatted
       incorrectly in XSLT
     * [ ] QT4CG-152-01: MK to add a note about the new and old syntax for
       names in PR #2446

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 [53]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 [54]#2350: 708 An alternative proposal for generators
     * PR [55]#2345: 2299 Expand pipeline to allow arrow expression in
       path expression
     * PR [56]#2313: 2298 XQFO rules: definition of default values
     * PR [57]#2266: 540 system-property equivalent for XQuery
     * PR [58]#2247: 716 Deferred Evaluation in XPath - the f:generator
       record
     * PR [59]#2160: 2073 data model changes for JNodes and Sequences
     * PR [60]#2071: 77c deep update
     * PR [61]#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 [62]#2446: 2427 Add computed node constructors to XPath

   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 [63]#2234: Replace `a/get(XX)` with `a/?(XX)`

   Proposal: close with no further action.

   Accepted.

1.6.4. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [64]#2457: Improved use of fos:result
     * PR [65]#2456: Stylesheet handling of fos:result/@narrative

2. Technical agenda

2.1. Improvements to FOS

   See PR [66]#2457 Improved use of fos:result, and PR [67]#2456:
   Stylesheet handling of fos:result/@narrative

   MK introduces the infrastructure changes.
     * MK: We made a schema change to allow results in the function
       catalog to be annotated as narrative. A narrative result isn't
       testable. The stylesheets handle that attribute; formatting without
       the code font. And when QT tests are generated from that example,
       we generate a "passing" test as long as it is syntactically valid.
          + ... And #2457 makes use of that markup in the F&O function
            catalog.
          + ... The next stage will be to apply it there as well.
     * JLO: We have now some narrative results, could we have both?
     * MK: For different examples of the same function. For a single
       result, you'd have to use the old mechanism.
     * CG: I like the change; editorially, the text may need to be
       adjusted with respect to indentation.

   ACTION QT4CG-153-01: MK to investigate the indentation problem.

   Proposal: accept this PR.

   Approved.

2.2. Issue #2460: [68]read-text and invalid XML characters

   See issue [69]#2460: [70]read-text and invalid XML characters

   Perhaps we can decide what needs to be done here.
     * MK: Sounds like it's going the right way.
     * JLO: Looks nice; but should we have a single character type?
     * RD: We have a character, but it isn't used in an XSD type.

   Some discussion of codepoint vs. string vs. character.
     * CG: How do you represent a non-permitted character?

   Ok, we do need to make it a code point!
     * CG: The return type should be untyped atomic. It gives you more
       flexibility.
     * NW: Okay.
     * JLO: Can we also replace it with nothing?
     * NW: I thought that was the empty string, but it'll have to be
       xs:untypedAtomic?

2.3. Other issue triage

   NW proposes a three broad categories: close it; nice to have; leave it
   as is, we have to do it. This is a coarse triage only.
     * JK: One small suggestion is to sort chronologically.
     * NW: Ok, then we start with #77.

2.3.1. #77 Allow manipulation of maps and arrays

   See [71]#77
     * MK: There's been a lot of work in this area, and more is needed,
       but it's not clear if this is the right issue.

2.3.2. #272 Setting parameter values in xsl:use-package

   See [72]#272
     * MK: It's still nice to have.

2.3.3. #285 Stability of collections

   See [73]#285
     * MK: As CG says, this is a minefield.
     * NW: Are we going to ship without it?
     * MK: Implementations have been pragmatic in the past and will
       probably continue to do so.
     * NW: Nice to have?

2.3.4. #540 Add fn:system-property() to XQuery

   See [74]#540
     * MK: I tried to address this; but it didn't go very well.
          + ... We could extend the system function to sort out the
            difference between compile time and runtime propertiers.

2.3.5. #641 Serialization fallback

   See [75]#641
     * NW: We've done some work on this.
     * MK: I think I'm going to propose dropping this one.

   Marked close with out further action.

2.3.6. #675 XSLT streaming rules for new constructs

   See [76]#675

   This one has to be done.

2.3.7. #1045 Functions to manage namespace usage

   See [77]#1045
     * MK: The problem of this one is the open-endedness of it. Do you do
       a very general thing or something more targeted?

   Marked close with out further action.

2.3.8. #1225 Generalization of Deep Updates

   See [78]#1225
     * MK: We have the problem about the status of the XQuery Update spec;
       if we're doing anything on that specification, we need to do
       housekeeping to bring it in line with the specs. XQuery Update 3.0
       was abandoned.

   Marked close with out further action.

2.3.9. #1234 Seralization Parameters: Indentation, Whitespace, Newlines

   See [79]#1234
     * CG: I'll try to write a PR for this one. Many implementations have
       ways of doing this.

2.3.10. 1251 Allow sequence constructor in extension instructions that are
implemented with named templates

   See [80]#1251

   Marked close with out further action.

2.3.11. 1310 add fn:match-groups() function

   See [81]#1310
     * MK: The fn:analyze-string function was an intent to do this; but it
       relies on an XML representation of the results.
          + ... The aim here would be a single function that gives you all
            the data in the form of maps of arrays.
     * JWL: Can this be written entirely in XPath?
     * MK: You might have to apply the regex more than once; and there are
       things that aren't easily available like "how many groups are
       there?"

2.3.12. 1459 Function properties and arities

   See [82]#1459
     * CG: The properties don't reflect what's currently available.

2.3.13. 1479 Default element namespace in XQuery: interaction of 'fixed' and
'##any'

   See [83]#1479
     * MK: I think there's a potential bug here; we should come back to
       it.

2.3.14. 1506 Type declarations: Constructor functions?

   See [84]#1506
     * CG: For record declarations, we have implicit constructor
       functions. Do we want to have something similar for things like
       enums?
     * MK: I think that creates a false impression that enums are more
       strongly typed than they are.

   Marked close with out further action.

2.3.15. 1528 Computed node constructors: observations

   See [85]#1528
     * CG: Mostly this is about shortening the list of excluded keywords.
     * MK: That's certainly a much nicer list.
     * NW: Can we test this?
     * MK: Verifying that this is a complete maximal and minimal list is
       much harder to check.

   Leave it the way it is.

2.3.16. 1584 Review the XML Schema and RELAX NG schemas for XSLT 4.0 for
compatibility

   See [86]#1584
     * NW: Before we're done, we'll have to check this with care.

2.3.17. 1697 Add documentary names to callback function signatures

   See [87]#1679
     * MK: This is an editorial suggestion.

   Leave it the way it is. (It's marked nice to have.)
     * JWL: We have to be very careful that we don't give users the
       impression that they can use them as keyword arguments.
     * NW: That suggests a different rendering of some sort.

2.3.18. 1702 Node Updates: Functions

   See [88]#1702

   Marked close with out further action.

2.3.19. 1777 Shallow copy in XSLT with maps and arrays

   See [89]#1777
     * MK: We must do this.

2.3.20. 1920 Parse functions: determinism

   See [90]#1920

   Consensus we should just do it.

2.3.21. 1948 fn:element-to-map:

   See [91]#1948
     * MK: We've made some progress on this, but I'm not sure of the
       status.

   Leave it the way it is.

2.3.22. 1949 fn:element-to-map: Updated Feedback

   See [92]#1949

   Leave it the way it is.

   ACTION QT4CG-153-02: MK to turn my suggestions on #1949 into a PR.

2.3.23. 1979 Records: Type Safety

   See [93]#1979
     * CG: Now that records aren't extensible, we can close this?
     * MK: The main thing is updates; do you want to have a restriction
       that you can't update the record?

   Nice to have.

2.3.24. 2000 element-to-map() - type signature of plan

   See [94]#2000

   Nice to have.

2.3.25. 2018 Type-checking the result of xsl:apply-templates

   See [95]#2018
     * MK: I'm going to do more work in this area. We can drop this as a
       separate issues.

2.3.26. 2039 Generalize context item to context value in XSLT

   See [96]#2039
     * NW: How is this only a nice to have?
     * MK: We have restrictions in various places about the item type when
       you call a template.
          + ... The spec is coherent, but it's a bit odd that context
            values can be generalized in some places but not other.

2.3.27. 2052 fn:collation-available: $usage

   See [97]#2052
     * CG: I have no idea how to implement this.
          + ... I'll raise a PR to drop it.

3. Any other business

   None heard.

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/02-17.html#new-actions
   7. https://qt4cg.org/meeting/minutes/2026/02-17.html#minutes
   8. https://qt4cg.org/meeting/minutes/2026/02-17.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2026/02-17.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2026/02-17.html#agenda
  11. https://qt4cg.org/meeting/minutes/2026/02-17.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2026/02-17.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2026/02-17.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2026/02-17.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2026/02-17.html#blocked
  16. https://qt4cg.org/meeting/minutes/2026/02-17.html#merge-without-discussion
  17. https://qt4cg.org/meeting/minutes/2026/02-17.html#close-without-action
  18. https://qt4cg.org/meeting/minutes/2026/02-17.html#substantive
  19. https://qt4cg.org/meeting/minutes/2026/02-17.html#technical-agenda
  20. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-F7DE29C3-E195-4196-9A09-81D2E5F578E1
  21. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-D51FB09C-1C0E-4C5A-8D3E-15DF1BD60FA7
  22. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-CAC3A474-CC59-4E99-9508-DED1B7DC26C7
  23. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-77
  24. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-272
  25. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-285
  26. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-540
  27. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-641
  28. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-675
  29. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1045
  30. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1225
  31. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1234
  32. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1251
  33. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1310
  34. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1459
  35. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1479
  36. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1506
  37. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1528
  38. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1584
  39. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1679
  40. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1702
  41. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1777
  42. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1920
  43. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1948
  44. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1949
  45. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1979
  46. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2000
  47. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2018
  48. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2039
  49. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2052
  50. https://qt4cg.org/meeting/minutes/2026/02-17.html#any-other-business
  51. https://qt4cg.org/meeting/agenda/2026/02-17.html
  52. https://qt4cg.org/meeting/minutes/2026/02-10.html
  53. https://qt4cg.org/meeting/minutes/2026/02-17.html#technical-agenda
  54. https://qt4cg.org/dashboard/#pr-2350
  55. https://qt4cg.org/dashboard/#pr-2345
  56. https://qt4cg.org/dashboard/#pr-2313
  57. https://qt4cg.org/dashboard/#pr-2266
  58. https://qt4cg.org/dashboard/#pr-2247
  59. https://qt4cg.org/dashboard/#pr-2160
  60. https://qt4cg.org/dashboard/#pr-2071
  61. https://qt4cg.org/dashboard/#pr-2019
  62. https://qt4cg.org/dashboard/#pr-2446
  63. https://github.com/qt4cg/qtspecs/issues/2234
  64. https://qt4cg.org/dashboard/#pr-2457
  65. https://qt4cg.org/dashboard/#pr-2456
  66. https://qt4cg.org/dashboard/#pr-2457
  67. https://qt4cg.org/dashboard/#pr-2456
  68. https://qt4cg.org/meeting/minutes/2026/read-text
  69. https://github.com/qt4cg/qtspecs/issues/2460
  70. https://qt4cg.org/meeting/minutes/2026/read-text
  71. https://github.com/qt4cg/qtspecs/issues/77
  72. https://github.com/qt4cg/qtspecs/issues/272
  73. https://github.com/qt4cg/qtspecs/issues/285
  74. https://github.com/qt4cg/qtspecs/issues/540
  75. https://github.com/qt4cg/qtspecs/issues/641
  76. https://github.com/qt4cg/qtspecs/issues/675
  77. https://github.com/qt4cg/qtspecs/issues/1045
  78. https://github.com/qt4cg/qtspecs/issues/1225
  79. https://github.com/qt4cg/qtspecs/issues/1234
  80. https://github.com/qt4cg/qtspecs/issues/1251
  81. https://github.com/qt4cg/qtspecs/issues/1310
  82. https://github.com/qt4cg/qtspecs/issues/1459
  83. https://github.com/qt4cg/qtspecs/issues/1479
  84. https://github.com/qt4cg/qtspecs/issues/1506
  85. https://github.com/qt4cg/qtspecs/issues/1528
  86. https://github.com/qt4cg/qtspecs/issues/1584
  87. https://github.com/qt4cg/qtspecs/issues/1679
  88. https://github.com/qt4cg/qtspecs/issues/1702
  89. https://github.com/qt4cg/qtspecs/issues/1777
  90. https://github.com/qt4cg/qtspecs/issues/1920
  91. https://github.com/qt4cg/qtspecs/issues/1948
  92. https://github.com/qt4cg/qtspecs/issues/1949
  93. https://github.com/qt4cg/qtspecs/issues/1979
  94. https://github.com/qt4cg/qtspecs/issues/2000
  95. https://github.com/qt4cg/qtspecs/issues/2018
  96. https://github.com/qt4cg/qtspecs/issues/2039
  97. https://github.com/qt4cg/qtspecs/issues/2052

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Wednesday, 18 February 2026 07:16:14 UTC