QT4 CG Meeting 115 Minutes 2025-03-26

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

Table of Contents

Minutes

Approved at meeting 116 on 8 April 2025.

Summary of new and continuing actions [0/4]

  • [ ] QT4CG-082-02: DN to work with NW to come to agreement on the fn:ranks proposal
  • [ ] QT4CG-107-05: JLO and DN to consider a proposal for system defined records.
  • [ ] QT4CG-112-01: JLO to propose a concrete example that uses “.” in a ~%method~s.
  • [ ] QT4CG-113-02: NW to investigate a way to show extra attributes in the syntax summary.
  • [ ] QT4CG-115-01: MK to give an example of params passed automatically through next-match using a 3.0 version control
  • [ ] QT4CG-115-02: JWL to write a few tests for xsl:record

1. Administrivia

1.1. Roll call [11/13]

Regrets: NW, BTW.

  • [X] David J Birnbaum (DB)
  • [X] Reece Dunn (RD)
  • [X] Sasha Firsov (SF)
  • [X] Christian Grün (CG)
  • [X] Joel Kalvesmaki (JK)
  • [X] Michael Kay (MK) Chair.
  • [X] Juri Leino (JLO)
  • [X] John Lumley (JWL) Scribe.
  • [X] Dimitre Novatchev (DN)
  • [X] Wendell Piez (WP)
  • [X] Ed Porter (EP)
  • [ ] Bethan Tovey-Walsh (BTW)
  • [ ] Norm Tovey-Walsh (NW).

NW edited the minutes taken by JWL. (Thank you, JWL!)

1.2. Accept the agenda

Proposal: Accept the agenda.

  • MHK suggests fn:compose/chain() item should be held until another chair.
  • Drop discussion of PR #1888: 366 xsl:package-location, not ready yet
  • Late addition of PR #1766 Drop array bound checking

Accepted with those ammendments.

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 scheduled for 1 April 2025.

Note: The QT4CG meeting is scheduled on UK/European civil time. The United States switched to daylight saving time on 9 March 2025 and the UK/Europe switches on 30 March 2025. Consequently, the 1 April meeting will be back to the “usual” time in North America (no fooling!).

No regrets heard.

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

(Items marked [X] are believed to have been closed via email before this agenda was posted.)

  • [ ] QT4CG-082-02: DN to work with NW to come to agreement on the fn:ranks proposal
  • [ ] QT4CG-107-05: JLO and DN to consider a proposal for system defined records.
  • [X] QT4CG-110-04: JK to consider a PR for #366, xsl:use-package with xsl:package-location
  • [ ] QT4CG-112-01: JLO to propose a concrete example that uses “.” in a ~%method~s.
  • [ ] QT4CG-113-02: NW to investigate a way to show extra attributes in the syntax summary.

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 #1283: 77b Update expressions
  • PR #1062: 150bis revised proposal for fn:ranks

2. Technical agenda

2.1. Review of pull requests

2.1.1. PR #1875: 1861 Params passed automatically through next-match

See PR #1875

An external issue but the backwards compatibility issue is manageable.

  • JWL: is there any way around this? Can we use a version="3.0"?
  • MK: Possibly live with the incompatibility - it should be controllable by a version attribute.

ACTION QT4CG-115-01: MK to give an example of params passed automatically through next-match using a 3.0 version control

Proposal: Accept this PR.

Accepted, subject to the above amendment.

2.1.2. PR #1874: 1862 Coercing to a record type changes map order

See PR #1874

  • CG: Have you thought of changing the instance-of check to make it order-sensitive?
  • MK: Unsure - order of a map is just cosmetic.
  • JLO: The order is not so important - no need to change instance-of.
    • … Why do we need to change the order?
  • MK: Perhaps for internal coherence with implementation data structures.
  • CG: Use constant offsets into the storage structures.
  • MK: the record type encourages implementation efficiency.
  • DN: Will users consider ordering to be costly. We should not spend more time on this. (Making too much of this.)

Proposal: Accept this PR.

Accepted.

2.1.3. PR #1887: 1870 rename $zero keyword of fold functions

See PR #1887

  • MK: There is a problem with the PR, which incorporates commits from fn:path().

Return to this after acceptance of #1886 (which was accepted).

  • MK: $accum rather than $zero - really it's the initial value of something that alters as the computation progresses.
  • DN: Mathematics might suggest $natural-element, or perhaps $initial-result
  • MK: That's a bit long.
  • JK: $init is a possible.
  • JLO: $init would be fine.

Proposal: Accept this PR, amended to use $init

Accepted.

2.1.4. PR #1858: Initial xsl:record

See PR #1858

  • Proposal: Accept this PR.

Accepted subject to removal of a command and adding Must Not on shadow attributes.

ACTION QT4CG-115-02: JWL to write a few tests for xsl:record

2.1.5. PR #1886: 1660 Additional options for fn:path

See PR #1886

  • MK: two option changes - a relative ($origin) node for the path and Lexical names for node match.

Proposal: Accept this PR.

Accepted.

2.1.6. PR #1766: Drop array bound checking

See PR #1766

  • MK: Most important for deep look-up in nested array structures.
    • … Added a function array:get-if-present() which retains the error behaviour
    • array:get() drops the fallback option.
    • array:remove() and array:put() retain the error.
  • DN: This is extremely wrong and makes logical errors very difficult to debug.
  • JLO: The complete opposite - makes arrays behave much more consitently with maps and XPath steps. Do we need array:remove() the throw an error.
  • CG: Encourage for consistency with other lookup mechanisms - e.g. $sequence[N].
  • DN: Very unhappy about this.
  • MK: We now know what the tenor of opinions are…

3. Any other business

None heard.

4. Adjourned