QT4 CG Meeting 157 Minutes 2026-03-24

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

Draft Minutes

1. Administrivia

1.1. Roll call [7/10]

Regrets: DB, NW

  • [ ] David J Birnbaum (DB)
  • [ ] 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 31 March 2026.

1.5. Review of open action items [2/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
  • [X] 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.
  • [X] QT4CG-156-04: CG: Related to #2313, make some minor changes to the explanatory note.
    • Probably done, CG will report back.

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. 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.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 #2502: Rounding dates/times and durations
  • Issue #2496: EBV: maps, arrays, QNames
  • Issue #2461: Unparsed entities
  • Issue #2454: Grammar: literals & constants, negative numbers
  • Issue #2381: Add facility to serialize binary values as url-safe base64 encoded strings
  • Issue #2198: Serialization parameter: `conditional-cdata`

Proposal: close with no further action.

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 #2548: 2547 delete: rules and error handling revised

See PR #2548.

  • CG: Rules for the delete() function were rather sparse/concise - expanded to be clearer. Changed so that no error in case that the file does not exist - just ignore. Added note to clarify about lack of rollback
  • JLO: Why not let an implementation support rollback if the file system might. Also do we need a 'forced' deletion option?
  • WP: Can we delete an empty directory, without having to set $recursive=true()

ACTION QT4CG-157-01: CG to consider the issue of such empty directories

ACTION QT4CG-157-02: CG to propose an editorial change to use the fos:notes construct for the Notes. Also relevant to #2546

Proposal: merge this PR.

Accepted.

2.2. PR #2546: 2455 copy, move: creating targets

See PR #2546.

  • CG: not clear that could be overwriting dangers, so notes added.

Proposal: merge this PR.

Accepted.

2.3. PR #2543: 2542 subsequence() takes xs:numeric rather than xs:double

See PR #2543.

  • MK: Changes to support some edge cases in function subsumption, (found within Saxon). Reflects the majority case of use of integer position, and is backwards compatible.

Proposal: merge this PR.

Accepted.

2.4. PR #2541: 2525 JNodes: map constructor

See PR #2541.

  • CG: Users seem to like the analogy with nodes, but there has been some minor unforseen differences: e.g. $doc/. and $doc/a with tree and map bindings to $doc, differ in the case that with a map {"a": {"b": "c"}} the second would produce {"b":"c"}, by comparison with <a><b><c/></b></a> with a node tree on $doc. So change to produce a single entry map, retaining the information of the key
  • MK: What about top level arrays? [Scribe struggled to capture the substance of this question.]
  • JLO: Like this, but we could think of treating an array of maps in the same manner as a sequence of maps [Scribe: this is what MK was getting at]

Proposal: merge this PR.

Accepted.

2.5. PR #2540: 2535 File Module: examples, editorial notes

See PR #2540.

  • CG: Almost all editorial - adding that trailing slashes are optional and other minor additions.
  • JLO: Question about Windows - the root is the current device (C; e.g.)

Proposal: merge this PR.

Accepted.

2.6. PR #2539: 2524 JNodes, lookup expression: coercion to maps & arrays

See PR #2539.

  • CG: Extend the rules on coercion in lookup to handle sequences of JNodes. Most won't notice the difference.

Proposal: merge this PR.

Accepted.

2.7. PR #2538: QT4CG-156-02 Follow on from 2520, esp re non-XML characters

See PR #2538.

  • MK: Last week we changed to base the atomic type on XSD 1.1. But that effected what we said about strings and characters Looked at what XML 1.1 said about characters/strings. Most effect in the Data Model. Unpaired surrogates never supported, but x0 and xFFFE and xFFFF (?) support is optional and implementation defined. This means that these characters could (implmentation dependent) be put into a tree (but must cause errors on (XML) serialisation)

Proposal: merge this PR (with corrected typos).

Accepted.

3. Any other business

JLO: Are we still going to meet in Prague for 2 days? Need to plan potential travel.