QT4CG meeting 071 draft minutes, 26 March 2024

Hi folks,

Here are the minutes from today’s meeting:

  https://qt4cg.org/meeting/minutes/2024/03-26.html

QT4 CG Meeting 071 Minutes 2024-03-26

Table of Contents

     * [1]Draft Minutes
     * [2]Summary of new and continuing actions [0/10]
     * [3]1. Administrivia
          + [4]1.1. Roll call [12/15]
          + [5]1.2. Accept the agenda
               o [6]1.2.1. Status so far...
          + [7]1.3. Approve minutes of the previous meeting
          + [8]1.4. Next meeting
          + [9]1.5. Review of open action items [2/6]
          + [10]1.6. Review of open pull requests and issues
               o [11]1.6.1. Merge without discussion
               o [12]1.6.2. Substantive PRs
               o [13]1.6.3. Proposed for V4.0
     * [14]2. Technical Agenda
          + [15]2.1. PR #1071: 1070 Bare Brace map constructor syntax
          + [16]2.2. PR #1059: 1019 XQFO: Unknown option parameters
          + [17]2.3. PR #1100: 99 fn:equal() function to compare sequences
            and arrays
          + [18]2.4. PR #1077: Correct the status of new language features
          + [19]2.5. PR #1074 Confirm status of provisional functions
          + [20]2.6. PR #1088 and #1098: improvements to
            parse-uri/build-uri
     * [21]3. Any other business
     * [22]4. Adjourned

   [23]Meeting index / [24]QT4CG.org / [25]Dashboard / [26]GH Issues /
   [27]GH Pull Requests

Draft Minutes

Summary of new and continuing actions [0/10]

     * [ ] QT4CG-063-06: MK to consider refactoring the declare item type
       syntax to something like declare record
     * [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
       $target consistently.
     * [-] QT4CG-069-02: NW to coordinate with MK to use the introspection
       features on the test suite.
          + In progress...
     * [ ] QT4CG-070-01: NW to review how records are formatted.
     * [ ] QT4CG-071-01: MK to put namespace bindings for XQuery back on
       the issue list
     * [ ] QT4CG-071-02: MK to raise a PR that changes map construction
       examples as appropriate
     * [ ] QT4CG-071-03: MK to review the definition of map equality in
       fn:equal
     * [ ] QT4CG-071-04: MK to update the prose to highlight differences
       between fn:equal and fn:deep-equal
     * [ ] QT4CG-071-05: MK to consider the name of the function argument.
     * [ ] QT4CG-071-06: NW to clarify the cases that are distinguished by
       the leading empty string in path segments

1. Administrivia

1.1. Roll call [12/15]

     * [X] Reece Dunn (RD)
     * [X] Sasha Firsov (SF)
     * [X] Mukul Gandhi (MG)
     * [X] Christian Gr¸n (CG)
     * [X] Joel Kalvesmaki (JK)
     * [X] Michael Kay (MK)
     * [X] Juri Leino (JLO)
     * [X] John Lumley (JLY)
     * [X] Dimitre Novatchev (DN)
     * [X] Wendell Piez (WP)
     * [ ] Ed Porter (EP)
     * [ ] Liam Quin (LQ)
     * [ ] Adam Retter (AR)
     * [X] C. M. Sperberg-McQueen (MSM)
     * [X] Norm Tovey-Walsh (NW). Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [28]the agenda.

1.2.1. Status so far...

   issues-open-2024-03-26.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2024-03-26.png

   Figure 2: Open issues by specification

   issues-by-type-2024-03-26.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting [30]is scheduled for Tuesday, 9 April 2024.

   The CG will not meet on 2 April 2024.

   WP, JK gives regret for 9 April.

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

     * [X] QT4CG-063-04: NW to try to add test review to the editorial
       meeting.
     * [ ] QT4CG-063-06: MK to consider refactoring the declare item type
       syntax to something like declare record
     * [ ] QT4CG-064-08: NW to open an issue to try to resolve $search to
       $target consistently.
     * [-] QT4CG-069-02: NW to coordinate with MK to use the introspection
       features on the test suite.
          + In progress...
     * [ ] QT4CG-070-01: NW to review how records are formatted.
     * [X] QT4CG-070-02: MK to raise the line separators issue in
       parse-csv.

1.6. Review of open pull requests and issues

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 [31]#1106: 859 lookup syntax problems
     * PR [32]#1097: 566-partial Fix colon issue in URI parsing
     * PR [33]#1092: 1039 Add notes referring to fn:collation-key
     * PR [34]#1078: 1060-partial Formatting XPath/XQuery
     * PR [35]#1076: 1075 Drop 'with' expressions

   MK wants to talk about #1076
     * MK: Do we still want to solve the problem that with was attempting
       to solve?
     * WP: I think it would be nice, but EQNames are useful. Would be nice
       to get developers more familiar with it.
     * DN: I don't remember hearing about this issue. My experience with
       namespaces in XQuery has not been very satisfactory.

   ACTION: QT4CG-071-01: MK to put namespace bindings for XQuery back on
   the issue list

   JLO wants to discuss #1078
     * JLY: There's only one remark, the empty map should be formatted
       differently. There's a lot of whitespace in an empty map now.
          + ... It would be nice to have a discussion about formatting
            XPath and XQuery in general.
     * CG: I looked at the predominate way things were done. I added
       whitespace to make it more readable.
     * MK: Did you use tools to do it?
     * CG: I did it by hand.

   Proposal: merge all of these PRs without further discussion.

   Approved.

1.6.2. Substantive PRs

   The following substantive PRs were open when this agenda was prepared.
     * PR [36]#1112: 1110-partial New error codes
     * PR [37]#1108: 566-partial Describe a less aggressive %-encoding for
       fn:build-uri
     * PR [38]#1100: 99 fn:equal() function to compare sequences and
       arrays
     * PR [39]#1098: 566-partial Editorial improvements per recent
       discussion
     * PR [40]#1093: 1091 Add fn:collation function
     * PR [41]#1087: 1086 Editorial changes to array:values
     * PR [42]#1077: Correct the status of new language features
     * PR [43]#1074: Confirm status of provisional functions
     * PR [44]#1071: 1070 Bare Brace map constructor syntax
     * PR [45]#1068: 73 fn:graphemes
     * PR [46]#1062: 150bis - revised proposal for fn:ranks
     * PR [47]#1059: 1019 XQFO: Unknown option parameters
     * PR [48]#1027: 150 fn:ranks

1.6.3. Proposed for V4.0

   The following issues are labled "proposed for V4.0".
     * Issue [49]#938: Canonical serialization
     * Issue [50]#934: String comparison in deep-equal
     * Issue [51]#910: Introduce a Kollection object with functions that
       operate on all types of items that can be containers of unlimited
       number of "members"
     * Issue [52]#908: Function identity: documentation still too vague
     * Issue [53]#882: fn:chain or fn:compose
     * Issue [54]#850: fn:parse-html: Finalization
     * Issue [55]#716: Generators in XPath
     * Issue [56]#689: fn:stack-trace: keep, drop, replace with
       $err:stack-trace ?
     * Issue [57]#583: array:replace(), etc
     * Issue [58]#557: fn:unparsed-binary: accessing and manipulating
       binary types
     * Issue [59]#150: fn:ranks: Produce all ranks in applying a function
       on the items of a sequence
     * Issue [60]#31: Extend FLWOR expressions to maps

2. Technical Agenda

   Agenda reordered as suggested in email.

2.1. PR #1071: 1070 Bare Brace map constructor syntax

   See PR [61]#1071: 1070 Bare Brace map constructor syntax

   MK summarizes the proposed change. p
     * MK: The map keyword left the plain braces available for other
       features, but those features no longer exist.
     * JLO: The main question I have is, will this be problematic in
       places where we do have curly braces in XML.
     * MK: The only place where you would be likely to have problems are
       where you have a map or a string where you could have element
       content.
     * RD: Curly braces in an XML literal switches the contexts. So if you
       have { } and your map in that, that's fine. But because of XQuery
       uses }} in the XML context as an escaped }, you'd have to avoid
       that.
     * DN: I'm really not sure there isn't ambiguity here. What about the
       body of a function? How do we distinguish it from a map. And didn't
       we do something with if/then/else to use braces.
     * MK: There are no expressions that begin with curly braces, so it
       doesn't appear to be a problem.
     * RD: Those are all defined in terms of contained expressions.
     * MK: There's ambiguity in the sense that the grammar is ambiguous
       and I don't think we have any technical ambiguities in that sense.
       There's also ambiguity that confuses the reader, you might want to
       continue to use the map keyword for that.
     * JLY: I had the same comment as DN; use the map keyword.
     * WP: (inaudible)

   Something about attribute value templates.
     * MK: That's like the other cases; but those are always strings so
       it's even less likely.

   Proposal: Merge this PR.

   Accepted.

   ACTION: QT4CG-071-02: MK to raise a PR that changes map construction
   examples as appropriate

2.2. PR #1059: 1019 XQFO: Unknown option parameters

   See PR [62]#1059
     * NW: We've talked about this a couple of times. CG's revision makes
       it an error to use unknown options only if they are in no
       namespace.
     * CG: That's right.

   Proposal: accept this PR

   Accepted.

2.3. PR #1100: 99 fn:equal() function to compare sequences and arrays

   See PR [63]#1100: 99 fn:equal() function to compare sequences and
   arrays

   MK introduces the PR.
     * MK: This is a function that can compare anything and is
       parameterized at the item level about how it does the comparison.
          + ... Fills out the family of starts-with/ends-with etc.
            functions
     * CG: I think we need to check if the second map contains a value
       because the value can be an empty sequence.

   Some discussion of the finer details here. A missing key vs. a key with
   the value of an empty sequence. {a:()} vs {b:()}, for example.

   ACTION: QT4CG-071-03: MK to review the definition of map equality in
   fn:equal
     * MK: It's different from fn:deep-equal primarily in that the
       comparison is parameterized.
     * JLY: Given that the fn:deep-equal and fn:equal are both descending
       comparisons, both sections should highlight the differences.

   ACTION: QT4CG-071-04: MK to update the prose to highlight differences
   between fn:equal and fn:deep-equal
     * DN: We need to know more about the differences between this and
       fn:deep-equal. It can be confusing. In all these signatures, the
       comparison function is confusing. Rather than equality comparison,
       I'd like a more general comparison, not just equality.
          + ... For example, consider a sort key where you might produce
            an array and you should be able to compare arrays as sort
            keys.
     * MK: Those are all good points. I have the same dilemma, we have too
       many comparison functions and not enough! I'd like to find a
       different name. I do think we need a straight equality comparison
       to complement the subsequence-equals/starts-with/etc. functions.
       You can't just use a general comparison because not all atomic
       values are ordered.
     * DN: The name of the argument could be equality-comparer.
     * MK: It's a bit long for a keyword; there's always a tension in
       naming.

   ACTION: QT4CG-071-05: MK to consider the name of the function argument.
     * CG: Another challenge is the existence of the comparitor function.
       A user might expect to use it here. I think it would be reasonable
       to add it for this case as well. Then there's a question of nodes
       vs. atomic values. Many comparisons atomize and that might create
       different results.
     * MK: Then it quickly becomes non-transitive.

   Some discussion of the examples.
     * JLO: Maybe it's really useful to point out what a leaf is.

   Some discussion of whether or not that term is in the spec.
     * DN: It seems strange that there are no collations here.
     * MK: I felt you could supply a comparison callback that uses a
       collation.

   (From the chat, there is some discussion of whether or not a comparison
   function should be made available to fn:deep-equal)

   MK will make another pass.

2.4. PR #1077: Correct the status of new language features

   See PR [64]#1077

   MK introduces the PR; it just changes the change log.
     * MK: It resolves the fact that we have now discussed all the
       features.
     * CG: I think so.

   Proposal: merge this PR.

   Accepted.

2.5. PR #1074 Confirm status of provisional functions

   See PR [65]#1074
     * MK: this is the same thing for Functions and Operators.
          + ... It removes the fn:json function as that's the subject of a
            PR in flight.
     * CG: I have some concerns regarding fn:stack-trace; that's actually
       still an open issues.
          + ... The same is true of map:replace and array:replace.

   Proposal: merge this PR.

   Accepted.

2.6. PR #1088 and #1098: improvements to parse-uri/build-uri

   See PR [66]#1098: 566-partial Editorial improvements per recent
   discussion
     * CG: I think there's a comment in the PR that wasn't addressed.
     * NW: Oh...

   Some discussion of why the leading empty string is necessary in path
   segments.

   ACTION: QT4CG-071-06: NW to clarify the cases that are distinguished by
   the leading empty string in path segments

   And we've run out of time.

3. Any other business

   None heard.

4. Adjourned

References

   1. https://qt4cg.org/meeting/minutes/2024/03-26.html#minutes
   2. https://qt4cg.org/meeting/minutes/2024/03-26.html#new-actions
   3. https://qt4cg.org/meeting/minutes/2024/03-26.html#administrivia
   4. https://qt4cg.org/meeting/minutes/2024/03-26.html#roll-call
   5. https://qt4cg.org/meeting/minutes/2024/03-26.html#agenda
   6. https://qt4cg.org/meeting/minutes/2024/03-26.html#so-far
   7. https://qt4cg.org/meeting/minutes/2024/03-26.html#approve-minutes
   8. https://qt4cg.org/meeting/minutes/2024/03-26.html#next-meeting
   9. https://qt4cg.org/meeting/minutes/2024/03-26.html#open-actions
  10. https://qt4cg.org/meeting/minutes/2024/03-26.html#open-pull-requests
  11. https://qt4cg.org/meeting/minutes/2024/03-26.html#merge-without-discussion
  12. https://qt4cg.org/meeting/minutes/2024/03-26.html#substantive
  13. https://qt4cg.org/meeting/minutes/2024/03-26.html#proposed-40
  14. https://qt4cg.org/meeting/minutes/2024/03-26.html#technical-agenda
  15. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1071
  16. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1059
  17. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1100
  18. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1077
  19. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1074
  20. https://qt4cg.org/meeting/minutes/2024/03-26.html#pr-1088
  21. https://qt4cg.org/meeting/minutes/2024/03-26.html#any-other-business
  22. https://qt4cg.org/meeting/minutes/2024/03-26.html#adjourned
  23. https://qt4cg.org/meeting/minutes/
  24. https://qt4cg.org/
  25. https://qt4cg.org/dashboard
  26. https://github.com/qt4cg/qtspecs/issues
  27. https://github.com/qt4cg/qtspecs/pulls
  28. https://qt4cg.org/meeting/agenda/2024/03-26.html
  29. https://qt4cg.org/meeting/minutes/2024/03-19.html
  30. https://qt4cg.org/meeting/agenda/2024/04-09.html
  31. https://qt4cg.org/dashboard/#pr-1106
  32. https://qt4cg.org/dashboard/#pr-1097
  33. https://qt4cg.org/dashboard/#pr-1092
  34. https://qt4cg.org/dashboard/#pr-1078
  35. https://qt4cg.org/dashboard/#pr-1076
  36. https://qt4cg.org/dashboard/#pr-1112
  37. https://qt4cg.org/dashboard/#pr-1108
  38. https://qt4cg.org/dashboard/#pr-1100
  39. https://qt4cg.org/dashboard/#pr-1098
  40. https://qt4cg.org/dashboard/#pr-1093
  41. https://qt4cg.org/dashboard/#pr-1087
  42. https://qt4cg.org/dashboard/#pr-1077
  43. https://qt4cg.org/dashboard/#pr-1074
  44. https://qt4cg.org/dashboard/#pr-1071
  45. https://qt4cg.org/dashboard/#pr-1068
  46. https://qt4cg.org/dashboard/#pr-1062
  47. https://qt4cg.org/dashboard/#pr-1059
  48. https://qt4cg.org/dashboard/#pr-1027
  49. https://github.com/qt4cg/qtspecs/issues/938
  50. https://github.com/qt4cg/qtspecs/issues/934
  51. https://github.com/qt4cg/qtspecs/issues/910
  52. https://github.com/qt4cg/qtspecs/issues/908
  53. https://github.com/qt4cg/qtspecs/issues/882
  54. https://github.com/qt4cg/qtspecs/issues/850
  55. https://github.com/qt4cg/qtspecs/issues/716
  56. https://github.com/qt4cg/qtspecs/issues/689
  57. https://github.com/qt4cg/qtspecs/issues/583
  58. https://github.com/qt4cg/qtspecs/issues/557
  59. https://github.com/qt4cg/qtspecs/issues/150
  60. https://github.com/qt4cg/qtspecs/issues/31
  61. https://qt4cg.org/dashboard/#pr-1071
  62. https://qt4cg.org/dashboard/#pr-1059
  63. https://qt4cg.org/dashboard/#pr-1100
  64. https://qt4cg.org/dashboard/#pr-1077
  65. https://qt4cg.org/dashboard/#pr-1074
  66. https://qt4cg.org/dashboard/#pr-1098

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 26 March 2024 17:15:42 UTC