QT4 CG Meeting 174 Agenda 2026-07-28

Agenda index / QT4CG.org / Dashboard / GH Issues / GH Pull Requests

Agenda

This meeting will be hosted on Zoom at 16:00BST (15:00GMT, 17:00CEST, 11:00EDT).

See the meeting logistics page for more details.

1. Administrivia

1.1. Roll call

1.2. Approve the agenda

1.3. Approve minutes of previous meetings

Minutes of the previous meeting.

1.4. Next meeting

This meeting is planned for 11 August 2026.

There will be no meeting on 4 August.

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

  • [ ] QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests
  • [ ] QT4CG-167-02: MK to make a PR for #2591, grammar for step?lookup is invalid
  • [X] QT4CG-167-03: NW to make a PR for #2482, fallback on bin:decode-string
    • Overtaken by events, issue was closed
  • [ ] QT4CG-167-05: MK to write a proposal to change #2393 so the functions return JNodes
  • [ ] QT4CG-167-07: NW to review tests for interpolated strings with edge cases in mind
  • [ ] QT4CG-167-08: MK to review the state of #1949 to see which items are still outstanding.
  • [ ] QT4CG-167-09: NW to close all “nice to have” issues at the end of October if they haven’t progressed
  • [ ] QT4CG-170-01: RD to draft a proposal that attempts to address the lexical issues differently.
  • [ ] QT4CG-172-01: MK to check if the XSLT rules are consistent with the rules in #2757.

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 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 #2071: 77c deep update
  • PR #2160: 2073 data model changes for JNodes and Sequences
  • PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
  • PR #2350: 708 An alternative proposal for generators
  • PR #2768: 2740 Drop constructor functions from built-in records

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 #2804: 2780 Functions on CSV Data: comments
  • PR #2803: 2773 fn:hash: wording
  • PR #2792: 2790 fn:pad-string, truncation

1.6.3. Substantive PRs

The following substantive PRs were open when this agenda was prepared.

  • PR #2696: 2695 Apply templates to maps, arrays, and JNodes
  • PR #2707: 1962 fn:map-to-element
  • PR #2719: 1234 Serialization Parameters: Indentation, Whitespace, Newlines
  • PR #2734: 2733 A step too far
  • PR #2739: 2738 XSLT - tree terminology
  • PR #2760: 2521 URIs: unify handling of fragment identifiers
  • PR #2777: 2644 Extend casts to sequences, arrays, maps, and records
  • PR #2788: 2774 Reversion of PR 2747 which allowed `A/B?C`
  • PR #2789: 2787 XQuery changes to merge declare record and declare type
  • PR #2793: 2729 fn:replace: named groups (+other regex functions)
  • PR #2794: 2748 CSV Serialization
  • PR #2795: 2338 Nomenclature: node(), gnode(), xnode()
  • PR #2796: 2352 Trusted execution: clarifications
  • PR #2797: 2699 fn:element-to-map: validation
  • PR #2805: 2802 Function identity removed
  • PR #2812: 2811 fn:decode-from-uri: to +, or not to +
  • PR #2814: 2393 array:members and array:of-members using JNodes
  • PR #2815: 2567 Extended and restricted record types

1.6.4. Required for V4.0

The following issues are labeled “required for V4.0”.

  • Issue #1777: Shallow copy in XSLT with maps and arrays
  • Issue #675: XSLT streaming rules for new constructs

2. Technical agenda

I’m putting the oldest ones first, again this week. I don’t imagine we’ll get through all of them.

2.1. PR #2696: 2695 Apply templates to maps, arrays, and JNodes

See PR #2696

2.2. PR #2707: 1962 fn:map-to-element

See PR #2707

2.3. PR #2719: 1234 Serialization Parameters: Indentation, Whitespace, Newlines

See PR #2719

2.4. PR #2734: 2733 A step too far

See PR #2734

2.5. PR #2739: 2738 XSLT - tree terminology

See PR #2739

2.6. PR #2760: 2521 URIs: unify handling of fragment identifiers

See PR #2760

2.7. PR #2777: 2644 Extend casts to sequences, arrays, maps, and records

See PR #2777

2.8. PR #2788: 2774 Reversion of PR 2747 which allowed `A/B?C`

See PR #2788

2.9. PR #2789: 2787 XQuery changes to merge declare record and declare type

See PR #2789

2.10. PR #2793: 2729 fn:replace: named groups (+other regex functions)

See PR #2793

2.11. PR #2794: 2748 CSV Serialization

See PR #2794

2.12. PR #2795: 2338 Nomenclature: node(), gnode(), xnode()

See PR #2795

2.13. PR #2796: 2352 Trusted execution: clarifications

See PR #2796

2.14. PR #2797: 2699 fn:element-to-map: validation

See PR #2797

2.15. PR #2805: 2802 Function identity removed

See PR #2805

2.16. PR #2812: 2811 fn:decode-from-uri: to +, or not to +

See PR #2812

2.17. PR #2814: 2393 array:members and array:of-members using JNodes

See PR #2814

2.18. PR #2815: 2567 Extended and restricted record types

See PR #2815

3. Any other business