QT4CG meeting 158 draft minutes, 31 March 2026

Hello,

Here are the draft minutes from yesterday’s meeting:

   https://qt4cg.org/meeting/minutes/2026/03-31.html

QT4 CG Meeting 158 Minutes 2026-03-31

   [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/8]
     * [7]Draft Minutes
     * [8]1. Administrivia
          + [9]1.1. Roll call [8/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 [0/8]
          + [14]1.6. Review of open pull requests and issues
               o [15]1.6.1. Merge without discussion
               o [16]1.6.2. Close without action
               o [17]1.6.3. Substantive PRs
     * [18]2. Technical agenda
          + [19]2.1. PR #2559: 2549 Functional purity
          + [20]2.2. PR #2558: 2556 errors for invisible-xml() and doc()
          + [21]2.3. PR #2552: 540bis Add system-properties() function
          + [22]2.4. PR #2533: 2528 Update RFC reference (7159 -> 8259)
            for JSON
          + [23]2.5. PR #2531: QT4CG-154-02 Revise rules for setting
            stylesheet parameters
          + [24]2.6. PR #2516: 2433 JTree function: Discuss JNode identity
            more fully
          + [25]2.7. 2.6a: PR #2551 - shadow attribute in a RNG schema
          + [26]2.8. PR #2019: 1776: XSLT template rules for maps and
            array
     * [27]3. Any other business

Summary of new and continuing actions [0/8]

     * [ ] 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.
     * [ ] 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-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-157-01: CG to consider the issue of such empty
       directories
     * [ ] QT4CG-157-02: CG to propose an editorial change to use the
       fos:notes construct for the Notes. Also relevant to #2546
     * [ ] 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

Draft Minutes

1. Administrivia

1.1. Roll call [8/10]

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

   NW thanks JK and JWL. Assume any errors introduced in the minutes are
   NW's fault.

1.2. Accept the agenda

   Proposal: Accept [28]the agenda.

   Accepted with PR #2551 removed; issue 2.7 is not ready.

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 planned for 7 April 2026.

   JWL gives regrets for 7, 14, and 21 April.

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

     * [ ] 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.
     * [ ] 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-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-157-01: CG to consider the issue of such empty
       directories
     * [ ] QT4CG-157-02: CG to propose an editorial change to use the
       fos:notes construct for the Notes. Also relevant to #2546

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. 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 [31]#2563: 2562 Empty fields in parts-of-dateTime result now
       absent
     * PR [32]#2560: 2321 Make fn:trace and fn:message nondeterministic
     * PR [33]#2555: 2215 Add "see also" links between functions
     * PR [34]#2545: 2544 Drop xsl:record-type/@extensible

   Proposal: merge without discussion.

   Accepted.
     * PR [35]#2551: 2550 Shadow attributes in RelaxNG schema
          + Moved to the technical agenda

1.6.2. 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 [36]#2526: Facets
     * Issue [37]#2325: Specify evaluation more tight and more formal to
       disallow unsane cases
     * Issue [38]#2252: Dynamic XPath Evaluation the functional way

   Proposal: close without further action.

   Accepted.

1.6.3. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [39]#2559: 2549 Functional purity
     * PR [40]#2558: 2556 errors for invisible-xml() and doc()
     * PR [41]#2552: 540bis Add system-properties() function
     * PR [42]#2533: 2528 Update RFC reference (7159 -> 8259) for JSON
     * PR [43]#2531: QT4CG-154-02 Revise rules for setting stylesheet
       parameters
     * PR [44]#2516: 2433 JTree function: Discuss JNode identity more
       fully
     * PR [45]#2019: 1776: XSLT template rules for maps and array

2. Technical agenda

2.1. PR #2559: 2549 Functional purity

   See PR [46]#2559.
     * MK: arises from incorporating the File module. This needs a bit
       more detail and recommendations of the problem of possible
       side-effects on functional 'purity'. A short essay to document
       current understanding.
          + ... Explains what are the benefits of a functional language
            and the issues that might make this difficult. Eg. errors and
            node construction withidentity. Advice to users to mitigate or
            reduce the problems.
          + ... Then some discussion of much more serious side-effecting
            functions.
          + ... No attempt to tackle conformance rules.
          + .. No attempt to enumerate all the cases of side-effect
            caution.
     * JLO: Looks a good addition, giving guidance to both implementors
       and users. Would like to have some indication of side-effct risk on
       functions in the spec. 1.c - covers side-effects other than errors
       (comfirmed by MK)
     * AP: Could there be a 'lint-type' utility to identify problem ares
       for these side effects.
     * MK: Next stage could be to add something to the language to add
       this sort of check formnally.
     * CG: XQUery Update in their implementation has a non-deterministic
       property available, though it hasn't really been used. Would take a
       long time to do it all formally.

   Proposal: accept this PR.

   Accepted.

2.2. PR #2558: 2556 errors for invisible-xml() and doc()

   See PR [47]#2558.
     * MK: Started with invisible-xml() and it expanded to parse-xml() and
       thence doc()
          + ... Added specific errors for some of the violations, e.g.
            validation failure, unsupported options keywords (See the PR
            for the specific errors added)
          + ... Arranged that parse-xml() and doc() use same wording in
            the descriptions invisible-xml() moves the error descriptions
            into an error conditions section. (Means lack of an invisible
            XML processor can raise an error rather than conformance
            failure, c.f the same with fn:transform())
     * JLO: Could we have more detailed error codes on parse-xml()
     * MK: Difficult with plug-in implementations.

   ACTION QT4CG-158-01: MK to revisit the Conformance section to revise in
   light of #2556 error changes

   Proposal: accept this PR.

   Accepted.

2.3. PR #2552: 540bis Add system-properties() function

   See PR [48]#2552.
     * MK: Original idea was to add the XSLT system-property() function
       into XPAth, but those properties names are in the XSLT namespace.
       Solution to produce a new function, system-properties(), which will
       use (add) no-namespace QNames, and is effectively a subset of the
       XSLT version. Can be a full replacement for system-property()
     * JK: Will XSL properties be available in non-XSLT situations.
     * MK: No.
     * JK: What about adding supports-file, supports-binary.

   ACTION QT4CG-158-02: MK to add system-properties() keys for file and
   binary support
     * JLO: Records can't be extended. Does this cause problems?
     * MK: No (some discussion)
     * CG: Would it be easier for users if the default keys were strings
       as well as QNames
     * MK: Becomes a bit messy.
     * JLO: Serialization options has both strings and QNames

   Proposal: accept this PR.

   Accepted.

2.4. PR #2533: 2528 Update RFC reference (7159 -> 8259) for JSON

   See PR [49]#2533.
     * MK: Pretty trivial, as JSON spec has moved on with no appreciable
       material change. Minor editorial changes.
     * AP: It's now a real rather than proposed standard. Agreed with ECMA
       and IETF. (Talked about this at 2024 Prague)
     * MK: Some small additions/changes in F&O regarding BOM etc.

   Proposal: accept this PR.

   Accepted.

2.5. PR #2531: QT4CG-154-02 Revise rules for setting stylesheet parameters

   See PR [50]#2531.
     * MK: Came from the proposal to add xsl:with-param to
       xsl:use-package.
          + ... Revealed a bug in 3.0 where there was confusion about
            private and public parameter default visibilities
          + ... More careful distinction between static and dynamic
            parameters in these cases.

   Proposal: accept this PR.

   Accepted.

2.6. PR #2516: 2433 JTree function: Discuss JNode identity more fully

   See PR [51]#2516.
     * MK: Address this issue at CG's request. A general set of notes
       about the identity of similar/same trees
          + ... All we can say is that two trees with differing content
            have different identity.
          + ... Not as strong a guarantee as we can give for XNodes
          + ... Only important in cases with extractions for the same
            tree, including de-duplication
          + ... Notes about where jtree() is call implicitly (Note context
            doesn't support much internal structure)
     * WP: Looks helpful. Having a JNode from a tree vs ???
     * JLO: Even though it is weakly defined, can I assume identical
       expressions on the same tree would produce the same identiies? What
       about via variables.
     * MK: An optimizer may have inlined the content of the variable,
       making several tree copies. OPtimizers aren't constrained not to
       expand in multiple places.

   Proposal: accept this PR.

   Accepted.

2.7. 2.6a: PR #2551 - shadow attribute in a RNG schema

     * MK: Don't really understand what it's trying to - not an RNG
       specialist.
          + ... NW might want to get involved.
     * MK: I'll withdraw the PR and assign to NW.
     * WP: Willing to help NW with this. Needs validation.

   PR #2551 will be abandoned.

2.8. PR #2019: 1776: XSLT template rules for maps and array

   See PR [52]#2019.

   Not ready for discussion.

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/03-31.html#new-actions
   7. https://qt4cg.org/meeting/minutes/2026/03-31.html#minutes
   8. https://qt4cg.org/meeting/minutes/2026/03-31.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2026/03-31.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2026/03-31.html#agenda
  11. https://qt4cg.org/meeting/minutes/2026/03-31.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2026/03-31.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2026/03-31.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2026/03-31.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2026/03-31.html#merge-without-discussion
  16. https://qt4cg.org/meeting/minutes/2026/03-31.html#close-without-action
  17. https://qt4cg.org/meeting/minutes/2026/03-31.html#substantive
  18. https://qt4cg.org/meeting/minutes/2026/03-31.html#technical-agenda
  19. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2559
  20. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2558
  21. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2552
  22. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2533
  23. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2531
  24. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2516
  25. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2551
  26. https://qt4cg.org/meeting/minutes/2026/03-31.html#pr-2019
  27. https://qt4cg.org/meeting/minutes/2026/03-31.html#any-other-business
  28. https://qt4cg.org/meeting/agenda/2026/03-31.html
  29. https://qt4cg.org/meeting/minutes/2026/03-24.html
  30. https://qt4cg.org/meeting/minutes/2026/03-31.html#technical-agenda
  31. https://qt4cg.org/dashboard/#pr-2563
  32. https://qt4cg.org/dashboard/#pr-2560
  33. https://qt4cg.org/dashboard/#pr-2555
  34. https://qt4cg.org/dashboard/#pr-2545
  35. https://qt4cg.org/dashboard/#pr-2551
  36. https://github.com/qt4cg/qtspecs/issues/2526
  37. https://github.com/qt4cg/qtspecs/issues/2325
  38. https://github.com/qt4cg/qtspecs/issues/2252
  39. https://qt4cg.org/dashboard/#pr-2559
  40. https://qt4cg.org/dashboard/#pr-2558
  41. https://qt4cg.org/dashboard/#pr-2552
  42. https://qt4cg.org/dashboard/#pr-2533
  43. https://qt4cg.org/dashboard/#pr-2531
  44. https://qt4cg.org/dashboard/#pr-2516
  45. https://qt4cg.org/dashboard/#pr-2019
  46. https://qt4cg.org/dashboard/#pr-2559
  47. https://qt4cg.org/dashboard/#pr-2558
  48. https://qt4cg.org/dashboard/#pr-2552
  49. https://qt4cg.org/dashboard/#pr-2533
  50. https://qt4cg.org/dashboard/#pr-2531
  51. https://qt4cg.org/dashboard/#pr-2516
  52. https://qt4cg.org/dashboard/#pr-2019

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
CEO, Saxonica

Received on Wednesday, 1 April 2026 06:57:44 UTC