QT4CG meeting 132 draft minutes, 12 August 2025

Hello,

Here are the draft minutes from today:

   https://qt4cg.org/meeting/minutes/2025/08-12.html

QT4 CG Meeting 132 Minutes 2025-08-12

   [1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
   Pull Requests

Table of Contents

     * [6]Draft Minutes
     * [7]Summary of new and continuing actions [0/11]
     * [8]1. Administrivia
          + [9]1.1. Roll call [8/11]
          + [10]1.2. Accept the agenda
          + [11]1.3. Approve minutes of the previous meeting
          + [12]1.4. Next meeting
          + [13]1.5. Review of open action items [2/9]
          + [14]1.6. Review of open pull requests and issues
               o [15]1.6.1. Blocked
               o [16]1.6.2. Merge without discussion
               o [17]1.6.3. Close without action
     * [18]2. Technical agenda
          + [19]2.1. PR #2116: 2112 Refine/revise the rules for get() in
            node tests
          + [20]2.2. PR #2120: 2007 Revised design for xsl:array
          + [21]2.3. PR #2156: 2092 Drop map:pair, map:of-pairs, map-pairs
          + [22]2.4. PR #2155: 2150 Define patterns for JNodes
          + [23]2.5. PR #2154: 2152 Revise rules for enumeration types
          + [24]2.6. PR #2149: 2100 Make innermost, outermost,
            has-children, path apply to JNodes
          + [25]2.7. PR #2147: 2143 Redesign of method calls
          + [26]2.8. PR #2134: 1996 Lookups, KeySpecifier: Literal,
            ContextValueRef
          + [27]2.9. PR #2133: 2132 error handling in logical expressions
     * [28]3. Any other business
     * [29]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/11]

     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
       #1906
     * [ ] QT4CG-127-01: NW to diagram the JTree representing arbitrary
       XDM content.
     * [ ] QT4CG-128-03: NW to compare the file: module against the
       equivalent XProc 3.1 steps
     * [ ] QT4CG-131-01: MK to add a non-schema aware result.
     * [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
     * [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
       matrix example.
     * [ ] QT4CG-132-01: MK to add more examples for innermost, outermost,
       has-children and path with JNodes
     * [ ] QT4CG-132-02: MK to double-check the signature of innermost
     * [ ] QT4CG-132-03: MK to double-check stray text in h.i. in path
     * [ ] QT4CG-132-04: MK to add resize to the rectangle in the example
       of chaining method calls and flesh out the example.

1. Administrivia

1.1. Roll call [8/11]

   Regrets: BTW.
     * [X] David J Birnbaum (DB)
     * [X] Reece Dunn (RD)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK) [:15-]
     * [X] Michael Kay (MK)
     * [ ] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [X] Wendell Piez (WP)
     * [ ] Ed Porter (EP)
     * [ ] Bethan Tovey-Walsh (BTW)
     * [X] Norm Tovey-Walsh (NW) Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [30]the agenda.

   Accepted.

1.3. Approve minutes of the previous meeting

   Proposal: Accept [31]the minutes of the previous meeting.

   Accepted.

1.4. Next meeting

   The following meeting is scheduled for 19 August 2025.

   No regrets heard.

   (The CG will take a short recess in late August. We will not meet on 26
   August, 2 September, or 9 September.)

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

   (Items marked [X] are believed to have been closed via email before
   this agenda was posted.)
     * [X] QT4CG-082-02: DN to work with NW to come to agreement on the
       fn:ranks proposal
          + Overtaken by events
     * [ ] QT4CG-116-01: Add a specific error code for unsupported options
       on doc and doc-available
     * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
       #1906
     * [ ] QT4CG-127-01: NW to diagram the JTree representing arbitrary
       XDM content.
     * [ ] QT4CG-128-03: NW to compare the file: module against the
       equivalent XProc 3.1 steps
     * [ ] QT4CG-131-01: MK to add a non-schema aware result.
     * [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
     * [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
       matrix example.
     * [X] QT4CG-131-04: JK to double check the use of &lt;&lt; in the
       grammar where &gt;&gt; might have been intended

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 [32]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 [33]#2124: 573 Functions to Construct Trees
     * PR [34]#2120: 2007 Revised design for xsl:array
     * PR [35]#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 [36]#2158: 2157 Editorial updates to F+O ß5.5 (Unicode
       collations)
     * PR [37]#2146: Require at least one character in
       StringTemplateFixedPart
     * PR [38]#2145: Allow implicit whitespace in StringInterpolation
     * PR [39]#2141: Remove nested paragraphs
     * PR [40]#2137: 2136 Drop full-width < and > symbols
     * PR [41]#2135: QT4CG-131-01/02 Expand on example as actioned

   Proposal: merge these PRs without discussion.

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 [42]#1852: fn:values-except: Return atomic values that occur
       in A but not in B
          + MK proposes closing on a value judgement; didn't meet the
            minimum bar for adding the function. But that's a personal
            judgement.
          + JWL: Easy enough to write your own?
          + MK: Yes.
          + CG: Background: we had some users who were asking for the
            function. They noticed that there's no equivalent predicate
            solution that's fast enough.
               o ... If you have a dedicated function, it's easier to
                 optimize. But we have maps and there are no other
                 comments, so I'm fine with closing it.
     * Issue [43]#1698: Allow select attribute for xsl:call-template
       instruction
     * Issue [44]#714: Function annotations in XSLT
          + JWL: If you really want to do this you can pre-process the
            source code that contains a map.
          + MK: They wouldn't be visible as annotations, but you can get
            the information.
          + JWL: You can do it yourself.
          + RD: That's defining the equivalent of XQuery annotations on
            functions. Those are used in different places, like BaseX and
            other processors support REST XQ through annotations.
          + MK: There are two things here; being able to define
            annotations. You could do that with a vendor-defined extension
            attribute. The other is having the annotations available
            dynamically for interrogation. That's subtle enough, we can
            leave users to design their own.
          + RD: I've used it in the past for roles.
          + MK: You can do that with extension attributes. It was a nice
            idea, but we can live without it.
          + RD: That means if you're importing a function from XSLT, you
            can't use the annotation mechanism in XQuery to interrogate
            the function.
          + WP: The more I hear, the more I'm with JWL. There are ways of
            doing this.
     * Issue [45]#150: fn:ranks: Produce all ranks in applying a function
       on the items of a sequence
          + PR [46]#1062: 150bis revised proposal for fn:ranks

   Proposal: close these issues and PRs without further action.

2. Technical agenda

2.1. PR #2116: 2112 Refine/revise the rules for get() in node tests

   See PR [47]#2116

   Defer until later. (Maybe later today, maybe next week.)

2.2. PR #2120: 2007 Revised design for xsl:array

   See PR [48]#2120
     * MK: Not ready for discussion. I need to rethink it.

2.3. PR #2156: 2092 Drop map:pair, map:of-pairs, map-pairs

   See PR [49]#2156
     * MK: We have too many ways to do things; I like these functions, but
       they are one-liners with JNodes. So let's simplify the spec by
       dropping them.
     * JWL: I wonder if it's worthwhile putting them in as examples
       somewhere.
     * MK: We could have a rag-bag appendix of functions in F&O.
     * WP: That would be awesome.

   Proposal: accept this PR.

   Accepted.

2.4. PR #2155: 2150 Define patterns for JNodes

   See PR [50]#2155

   Defer until later.

2.5. PR #2154: 2152 Revise rules for enumeration types

   See PR [51]#2154

   MK introduces the PR. Only the XPath and XQuery specs are effected.
     * MK: The only material change for users is that instance of now does
       the required thing.
          + ... We still define them as a union of singleton enumerations
          + ... But a singleton is no longer defined as a type derived
            from restriction, that stops instance of working.
          + ... This defines it as a new kind of subtype of string.
          + ... The main reason to change this is so that you can use
            instance of tests in XSLT Patterns because patterns don't use
            coercion.
     * JWL: Is there any use case where people might want to use other
       collations?
     * MK: Maybe, but the consequences would be horrible.

   Proposal: accept this PR.

   Accepted.

2.6. PR #2149: 2100 Make innermost, outermost, has-children, path apply to
JNodes

   See PR [52]#2149

   MK introduces the PR.
     * MK: This generalizes a few more functions so that they work on
       JNodes.
          + ... These could do with more examples.

   ACTION: QT4CG-132-01: MK to add more examples for innermost, outermost,
   has-children and path with JNodes ACTION: QT4CG-132-02: MK to
   double-check the signature of innermost

   MK walks through the revised functions.

   Some discussion of why has-children exists at all: streaming.

   ACTION: QT4CG-132-03: MK to double-check stray text in h.i. in path

   Some discussion of where the "TODO" note is leading; will be resolved
   when we sort out the question of JNodes and sequences.

   Proposal: accept this PR.

   Accepted.

   MK will address the actions and then merge the PR.

2.7. PR #2147: 2143 Redesign of method calls

   See PR [53]#2147

   The design of methods was just too baroque; CG made a simplification
   proposal. Rather than overloading the ? operator, we have a separate
   operator for invoking methods.
     * MK: We introduce a new operator ?>. We can debate how to spell it
       later.
          + ... No magic semantics for ? anymore. Instead there's a new
            expression.
     * MK: You can't use partial function application in this case. It's a
       simplification.
     * CG: I think I like this solution. Mostly we had different
       proposals; the other syntax was a little shorter but it wasn't as
       composable.
     * JWL: Given the example with chaining and resize; would it not be
       worthwhile putting the resize method into the example.

   ACTION: QT4CG-132-04: MK to add resize to the rectangle in the example
   of chaining method calls and flesh out the example.
     * JK: One of the examples that confuses me is the rectangle example.
          + ... Area is defined in rectangle as a 1 arity function but it
            looks like you're invoking a 0 arity function.
          + ... Can you use area(.)?
     * MK: No, like the arrow syntax it implicitly passes the first
       argument.
     * JK: If someone were to jigger the function, what are the rules?
     * MK: No, the map has to be the first argument and it's implicitly
       set.
     * JK: More examples would help. An example that invites external
       parameters would also be helpful.
     * RD: The only reserved names are things like function and switch.
     * MK: I'm not sure even those are reserved; they're fine in the
       context of the record.
     * JWL: Thinking about resize; it has to produce a new rectangle that
       has to have an area method and a resize method and that needs a
       real example.
     * RD: You could potentially do that with a create helper.
     * JWL: It doesn't matter how you do it, you need an example people
       can follow.

   Some discussion of how it might be done: by constructing a new map or
   by using map:put.

   Proposal: accept this PR.

   Accepted.

2.8. PR #2134: 1996 Lookups, KeySpecifier: Literal, ContextValueRef

   See PR [54]#2134

   CG introduces the PR.
     * CG: In the old version a KeySpecifier had a few specific
       productions on the RHS.
     * CG: I generalized literals and added VarRef.
     * MK: I have slight reservations about the use of .. People might
       feel like ? is very similar to / and /. would do something quite
       different.
     * CG: You can use variables and in my mind is that . is like that.
     * MK: Well, yes, but it changes implicitly in places.

   Proposal: accept this PR.

   Accepted.

2.9. PR #2133: 2132 error handling in logical expressions

   See PR [55]#2133
     * MK: I think this is a simple bug fix. We made the statement that
       with and and or expressions that an error in the second operand is
       masked. We failed to carry that into the spec where we discuss
       those expressions.
     * RD: Don't the tables make the paragraph that defines the semantic
       redundant?
     * MK: Yes, but I think it's still valuable.

   Proposal: accept this PR.

   Accepted.

3. Any other business

   None heard.

4. Adjourned

References

   1. https://qt4cg.org/meeting/minutes/
   2. https://qt4cg.org/
   3. https://qt4cg.org/dashboard
   4. https://github.com/qt4cg/qtspecs/issues
   5. https://github.com/qt4cg/qtspecs/pulls
   6. https://qt4cg.org/meeting/minutes/2025/08-12.html#minutes
   7. https://qt4cg.org/meeting/minutes/2025/08-12.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2025/08-12.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2025/08-12.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2025/08-12.html#agenda
  11. https://qt4cg.org/meeting/minutes/2025/08-12.html#approve-minutes
  12. https://qt4cg.org/meeting/minutes/2025/08-12.html#next-meeting
  13. https://qt4cg.org/meeting/minutes/2025/08-12.html#open-actions
  14. https://qt4cg.org/meeting/minutes/2025/08-12.html#open-pull-requests
  15. https://qt4cg.org/meeting/minutes/2025/08-12.html#blocked
  16. https://qt4cg.org/meeting/minutes/2025/08-12.html#merge-without-discussion
  17. https://qt4cg.org/meeting/minutes/2025/08-12.html#close-without-action
  18. https://qt4cg.org/meeting/minutes/2025/08-12.html#technical-agenda
  19. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2116
  20. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2120
  21. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2156
  22. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2155
  23. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2154
  24. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2149
  25. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2147
  26. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2134
  27. https://qt4cg.org/meeting/minutes/2025/08-12.html#pr-2133
  28. https://qt4cg.org/meeting/minutes/2025/08-12.html#any-other-business
  29. https://qt4cg.org/meeting/minutes/2025/08-12.html#adjourned
  30. https://qt4cg.org/meeting/agenda/2025/08-12.html
  31. https://qt4cg.org/meeting/minutes/2025/07-29.html
  32. https://qt4cg.org/meeting/minutes/2025/08-12.html#technical-agenda
  33. https://qt4cg.org/dashboard/#pr-2124
  34. https://qt4cg.org/dashboard/#pr-2120
  35. https://qt4cg.org/dashboard/#pr-2019
  36. https://qt4cg.org/dashboard/#pr-2158
  37. https://qt4cg.org/dashboard/#pr-2146
  38. https://qt4cg.org/dashboard/#pr-2145
  39. https://qt4cg.org/dashboard/#pr-2141
  40. https://qt4cg.org/dashboard/#pr-2137
  41. https://qt4cg.org/dashboard/#pr-2135
  42. https://github.com/qt4cg/qtspecs/issues/1852
  43. https://github.com/qt4cg/qtspecs/issues/1698
  44. https://github.com/qt4cg/qtspecs/issues/714
  45. https://github.com/qt4cg/qtspecs/issues/150
  46. https://qt4cg.org/dashboard/#pr-1062
  47. https://qt4cg.org/dashboard/#pr-2116
  48. https://qt4cg.org/dashboard/#pr-2120
  49. https://qt4cg.org/dashboard/#pr-2156
  50. https://qt4cg.org/dashboard/#pr-2155
  51. https://qt4cg.org/dashboard/#pr-2154
  52. https://qt4cg.org/dashboard/#pr-2149
  53. https://qt4cg.org/dashboard/#pr-2147
  54. https://qt4cg.org/dashboard/#pr-2134
  55. https://qt4cg.org/dashboard/#pr-2133

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 12 August 2025 16:40:37 UTC