QT4 CG Meeting 156 Minutes 2026-03-10

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

Table of Contents

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-02: MK: think though implications on strings arising from duplication in specs.
  • [ ] QT4CG-156-03: MK to revise PR #2516 in light of the comments.
  • [ ] QT4CG-156-04: CG: Related to #2313, make some minor changes to the explanatory note.

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 the agenda.

Accepted.

1.3. Approve minutes of the previous meeting

Proposal: Accept the minutes of the previous meeting.

Accepted.

1.4. Next meeting

The next meeting is planned for 24 March 2026.

Note: Daylight Saving Time begins in North America on Sunday, 8 March. It does not begin in the UK and Europe until Sunday, 29 March. The QT4CG meets on UK and European civil time. The meeting of 24 March will be one hour later in North America.

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

  • [ ] QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests
  • [X] 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-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
  • [X] QT4CG-151-01: MK to fix the typo in the build-dateTime function.
  • [X] QT4CG-152-01: MK to add a note about the new and old syntax for names in PR #2446
  • [X] QT4CG-153-01: MK to investigate the indentation problem.
  • [X] QT4CG-153-02: MK to turn my suggestions on #1949 into a PR.
    • Close with no action; #1949 remains open
  • [X] QT4CG-154-01: MK to review why anyAtomicType didn’t, in fact, become a square box!
  • [X] QT4CG-154-02: MK to add a note about “tunneling” package parameters.
  • [X] QT4CG-155-01: MK to add an example of function coercion that uses ?.
  • [X] QT4CG-155-02: MK to clarify that the seconds value can be 59.9, etc. (exlusive vs. inclusive)

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 #2345: 2299 Expand pipeline to allow arrow expression in path expression
    • MK: This isn’t really blocked; probably only semantic; MK to review the tags.
  • PR #2266: 540 system-property equivalent for XQuery
    • JK: This isn’t really blocked; probably only semantic; JK to review the tags.
  • PR #2160: 2073 data model changes for JNodes and Sequences
  • PR #2071: 77c deep update
  • PR #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 #2514: 2403 Use narrative results for examples in file module
    • JK has comments; MK to follow-up.
  • PR #2513: QT4CG-152-01 Add note explaining computed node constructor syntax
    • Accepted.
  • PR #2511: 2497 JNodes diagrams: selector → jkey, content → jvalue
    • Accepted.

1.6.3. Substantive PRs

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

  • PR #2522: 2520 Atomic Data Types based on XSD 1.1
  • PR #2519: 2000 Define named record types for the conversion plan
  • PR #2516: 2433 JTree function: Discuss JNode identity more fully
  • PR #2515: 2475 Unification of type syntax
  • PR #2504: alternative PR#2247: Attempt at a minimalist alternative for generators.
  • PR #2470: 1310 Functions fn:regex and ?matching-substrings
  • PR #2350: 708 An alternative proposal for generators
  • PR #2313: 2298 XQFO rules: definition of default values
  • PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
  • PR #2019: 1776: XSLT template rules for maps and array

2. Technical agenda

2.1. PR #2522: 2520 Atomic Data Types based on XSD 1.1

See PR #2522.

  • MK: Arose from comments from Sheila Thomson about XSD1.0 and 1.1 differences for the value spaces in dateTime, and let systems that have schema processing to relax these dependencies.

The PR restricts the ability to relax these limits on XSD1.1 default in various version situations (see the diffs for detail) Also includes cases where coercion may be carried out in the string representation space. Some changes in F&O

ACTION QT4CG-156-01: MK: add reference to data model in F&O 9.2

  • RD: i) There is a potential duplication in the XSLT spec with the data model spec. (Slightly different examples). Also some confusion about permitted character definitions between XSD 1.1 and 1.0 and extension of other permitted characters (that being '0'). MK: they should all refer to the data model, but there are some issues.

ACTION QT4CG-156-02: MK: think though implications on strings arising from duplication in specs.

Proposal: Accept this PR.

Accepted.

2.2. PR #2519: 2000 Define named record types for the conversion plan

See PR #2519.

  • MK: CG asked for a consistent record type of the plan data structure for the element-to-map() and corresponding plan generation functions. The proposal has a record type for the element plan and a separate record type for attributes.

An editorial change adding the predefined record types.

Proposal: Accept this PR.

Accepted.

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

See PR #2516.

  • MK: We didn't discuss JNode identity thoroughly enough - this addresses that, mainly as extended notes on the jtree() function. Possibly most effect on the elimination of duplicate JNodes within a path.
  • JLO: Is there some contradiction within these notes?
  • MK: These equalities only occur in the same JNode tree, and the requirement is to support optimisation such as inlining results.
  • RD: Unrolling a for loop over such a map might be such an example.
  • MK: e.g. multiple serialisations across a program with the same options could involve optimisation of build a common single map.
  • JLO: Not convinced - somewhat murky.
  • MK: Don't want to repeat the problems node identity has raised in such optimisation situations. If you select the same parts by different paths then you will get the same JNodes. If you have an array with 17 identical maps, then they can't be considered the same, provided they have been generated in through the same JTree
  • AP: Perhaps we should not rely on this - they are only guaranteed different if their contents differ.
  • CG: We might make it easier if we omit all implementation details. Who are we trying to communicate with in the spec?
  • WP: We have deep-equal() defined - what in addition are we trying to get.
  • MK: The main use is the elimination of duplicates.
  • JLO: Have a clearer image now - might be easier to move the thrid paragraph to the top of section 16.1.1 - the jtree() function.

ACTION QT4CG-156-03: MK to revise PR #2516 in light of the comments.

2.4. PR #2515: 2475 Unification of type syntax

See PR #2515.

  • MK: Didn't pick up all the suggestions from the issue. ElementTest and AttributeTest cahnged to type terms - purely terminology alterations. jnode(,) now unified to the element() and attribute()

Proposal: Accept the PR.

Accepted.

2.5. PR #2504: alternative PR#2247: Attempt at a minimalist alternative for generators.

See PR #2504.

Proposal: Close without action.

Accepted.

2.6. PR #2470: 1310 Functions fn:regex and ?matching-substrings

See PR #2470.

Not ready for discussion.

2.7. PR #2313: 2298 XQFO rules: definition of default values

See PR #2313.

  • CG: now use (:DEFAULT-ON-EMPTY:) rather than (:empty:) in the signatures, before the default value.

ACTION QT4CG-156-04: CG: Related to #2313, make some minor changes to the explanatory note.

Proposal: Accept this PR.

Accepted.

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

See PR #2019.

Not ready for discussion.

3. Any other business

Some discussion

  • MK: Had a little confusion on what to click
  • RD: Look at light/dark contrasts.

ACTION: ALL to look at this!