QT4 CG Meeting 171 Agenda 2026-07-07

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 7 July 2026.

The next meeting is planned for 14 July.

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

  • [ ] QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests
  • [ ] QT4CG-167-01: DB to write a PR for #2641, comments in CSV
  • [ ] QT4CG-167-02: MK to make a PR for #2591, grammar for step?lookup is invalid
  • [ ] QT4CG-167-03: NW to make a PR for #2482, fallback on bin:decode-string
  • [ ] 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.

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 #2638: 2632-6: cross-cutting consistency (automatically generated & reviewed)
  • PR #2637: 2632-5: refresh stale 4.0 content (automatically generated & reviewed)
  • PR #2636: 2632-4: logic and semantics (automatically generated & reviewed)
  • PR #2635: 2632-3: typos and grammar (automatically generated & reviewed)
  • PR #2634: 2632-2: fix broken examples in expressions.xml (automatically generated & reviewed)
  • PR #2633: 2632-1: fix critical bugs and DTD-validity issues (automatically generated & reviewed)
  • PR #2594: 2389 Adaptive Serialization: more freedom
  • PR #2350: 708 An alternative proposal for generators
  • PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
  • PR #2160: 2073 data model changes for JNodes and Sequences
  • PR #2071: 77c deep update

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 #2751: 2674 Editorial Omnibus
  • PR #2744: 2741 Record coercion: keep empty entries
  • PR #2731: 2709 Well-formed sub-documents (2nd attempt)
  • PR #2706: 2704 change path() output for JNodes

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 #2700: Map constructor: create map entries for items other than maps/JNodes
  • Issue #2692: Destructuring inconsistencies and questions
  • Issue #2639: XQuery 4.0: automated review, open questions
  • Issue #2482: Add a fallback function to the `bin:decode-string` function

1.6.4. Substantive PRs

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

  • PR #2768: 2740 Drop constructor functions from built-in records
  • PR #2767: 2750 Make fn:unparsed-text, … nondeterministic
  • PR #2766: 2765 Destructuring let: records, array fix
  • PR #2764: 2763 Folds: document possibility of early exiting
  • PR #2760: 2521 URIs: unify handling of fragment identifiers
  • PR #2759: 1506 Type declarations: Constructor functions
  • PR #2757: 2569 Rules for unprefixed function calls with explicit default function ns
  • PR #2756: 2705 fn:element-to-map-plan: numeric types
  • PR #2755: 2620 fn:unparsed-text: editorial issues
  • PR #2754: 2284 fn:csv-doc, fn:json-doc: Equivalent code, unifications
  • PR #2753: 2300 fn:doc: determinism rules
  • PR #2752: 1697 Add documentary names to callback function signatures
  • PR #2747: 2591 Grammar: make step?lookup valid
  • PR #2746: 2745 CSV parsing: delimiters
  • PR #2734: 2733 A step too far
  • PR #2719: 1234 Serialization Parameters: Indentation, Whitespace, Newlines
  • PR #2717: 2660 fn:matching-segments: named capture groups
  • PR #2715: 2653 FLWOR, member/key/value clauses: allow sequences
  • PR #2714: 2219 Generalize method calls to sequences
  • PR #2713: 2257 Record declarations without namespace
  • PR #2712: 2702 Dynamic node tests
  • PR #2707: 1962 fn:map-to-element
  • PR #2698: 2641 Support comments in csv
  • PR #2696: 2695 Apply templates to maps, arrays, and JNodes
  • PR #2649: 2647 descendants: recursion, filtering
  • PR #2350: 708 An alternative proposal for generators
  • PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
  • PR #2761: 2758 Add rules for visibility of named types across packages
  • PR #2739: 2738 XSLT - tree terminology

1.6.5. 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

There are a lot of PRs this week. To close as many as practical, an attempt has been made to organize them such that we start with the “easy” ones. Proposals to change the order are, uh, in order.

  • PR #2649: 2647 descendants: recursion, filtering
  • PR #2717: 2660 fn:matching-segments: named capture groups
  • PR #2753: 2300 fn:doc: determinism rules
  • PR #2755: 2620 fn:unparsed-text: editorial issues
  • PR #2767: 2750 Make fn:unparsed-text, … nondeterministic
  • PR #2754: 2284 fn:csv-doc, fn:json-doc: Equivalent code, unifications
  • PR #2756: 2705 fn:element-to-map-plan: numeric types
  • PR #2764: 2763 Folds: document possibility of early exiting
  • PR #2719: 1234 Serialization Parameters: Indentation, Whitespace, Newlines
  • PR #2747: 2591 Grammar: make step?lookup valid
  • PR #2752: 1697 Add documentary names to callback function signatures
  • PR #2759: 1506 Type declarations: Constructor functions
  • PR #2768: 2740 Drop constructor functions from built-in records
  • PR #2760: 2521 URIs: unify handling of fragment identifiers
  • PR #2713: 2257 Record declarations without namespace
  • PR #2766: 2765 Destructuring let: records, array fix
  • PR #2707: 1962 fn:map-to-element
  • PR #2714: 2219 Generalize method calls to sequences
  • PR #2715: 2653 FLWOR, member/key/value clauses: allow sequences
  • PR #2734: 2733 A step too far
  • PR #2712: 2702 Dynamic node tests
  • PR #2757: 2569 Rules for unprefixed function calls with explicit default function ns
  • PR #2746: 2745 CSV parsing: delimiters
  • PR #2698: 2641 Support comments in csv
  • PR #2696: 2695 Apply templates to maps, arrays, and JNodes
  • PR #2761: 2758 Add rules for visibility of named types across packages
  • PR #2739: 2738 XSLT - tree terminology

3. Any other business