QT4CG meeting 062 draft minutes, 23 January 2024

Hello,

Here are the draft minutes from yesterday’s meeting.

   https://qt4cg.org/meeting/minutes/2024/01-23.html

QT4 CG Meeting 062 Minutes 2024-01-23

Table of Contents

     * [1]Draft Minutes
     * [2]Summary of new and continuing actions [0/7]
     * [3]1. Administrivia
          + [4]1.1. Roll call [10/12]
          + [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 [0/4]
          + [10]1.6. Review of open pull requests and issues
               o [11]1.6.1. Blocked
               o [12]1.6.2. Merge without discussion
               o [13]1.6.3. Close without action
     * [14]2. Technical Agenda
          + [15]2.1. Issue #843: Standard, array & map functions:
            Equivalencies
          + [16]2.2. PRs #940 and #874: 878 Add subsequence-where function
          + [17]2.3. PR #937: 779 hash function
          + [18]2.4. PR #962: 946 fn:iterate-while -> fn:while-do,
            fn:do-until
          + [19]2.5. PR #956: 850-partial Editorial improvements to
            parse-html()
     * [20]3. Any other business
     * [21]4. Adjourned

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

Draft Minutes

Summary of new and continuing actions [0/7]

     * [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
       meeting"
     * [ ] QT4CG-056-04: MK to write a proposal for adding a select
       attribute to xsl:text
     * [ ] QT4CG-058-02: MK to consider providing more advice about the
       pitfalls of mixing decimal and double when sorting
     * [ ] QT4CG-061-01: MK to review the comments CG made on the PR #927.
     * [ ] QT4CG-062-01: CG to make an email proposal of a list of
       functions (re issue #843) to add
     * [ ] QT4CG-062-02: MK to check that the expansion of subsequence
       gives the correct result when neither from nor to match (INF - INF)
     * [ ] QT4CG-062-03: JK to revise the fn:hash function along the lines
       discussed at the meeting

1. Administrivia

1.1. Roll call [10/12]

   Regrets: MSM.
     * [X] Reece Dunn (RD)
     * [ ] Sasha Firsov (SF)
     * [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)
     * [X] Ed Porter (EP)
     * [ ] C. M. Sperberg-McQueen (MSM)
     * [X] Norm Tovey-Walsh (NW). Scribe. Chair.

   Welcome, Juri!

1.2. Accept the agenda

   Proposal: Accept [27]the agenda.

   Accepted.

1.2.1. Status so far...

   issues-open-2024-01-23.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2024-01-23.png

   Figure 2: Open issues by specification

   issues-by-type-2024-01-23.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   The next meeting [29]is scheduled for Tuesday, 30 January 2024.

   Any regrets for the next meeting? MSM.

1.5. Review of open action items [0/4]

     * [ ] QT4CG-052-02: NW to consider how to schedule an "editor's
       meeting"
     * [ ] QT4CG-056-04: MK to write a proposal for adding a select
       attribute to xsl:text
     * [ ] QT4CG-058-02: MK to consider providing more advice about the
       pitfalls of mixing decimal and double when sorting
     * [ ] QT4CG-061-01: MK to review the comments CG made on the PR #927.

1.6. Review of open pull requests and issues

1.6.1. Blocked

   The following PRs are open but have merge conflicts or comments which
   suggest they aren't ready for action.
     * PR [30]#795: 655: fn:sort-with
     * PR [31]#529: 528: revision of json(), and renaming to
       elements-to-maps()

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 [32]#958: 951 Parameters with default values: fn:lang, fn:id,
       fn:idref, fn:element-id
     * MK asks for a quick discussion of the rationale.
     * CG attempts to explain. The PR is an attempt to resolve some
       special cases. In fn:lang for example, we can't determine
       statically if the function is context dependent.
     * PR [33]#952: 945 module import contradiction
     * PR [34]#950: Minor edits (examples, rules)
     * PR [35]#941: 939 Remove fn:numeric-compare
     * PR [36]#936: 877 revised rules for op:binary-less-than
     * PR [37]#927: 861 Rewrite spec of deep lookup operator

   Proposal: merge without discussion

   Accepted.

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 [38]#818: Foxpath integration
     * Issue [39]#693: QT4 Tests without counterpart in the specs
     * Issue [40]#639: fn:void: Naming, Arguments

   Proposal: close without action

   Accepted.

2. Technical Agenda

2.1. Issue #843: Standard, array & map functions: Equivalencies

   Christian Gruen proposed putting a discussion of issue 843 on today's
   agenda as a supplement to further discussion of issue 872. I'm going to
   suggest we time box that to about 15 minutes unless we feel like we're
   making very substantial progress. He also proposed a list of PRs for
   discussion this week which I've included below.
     * CG: Not one of the most exciting issues, but it's about
       consistency. The issue lists all of the functions that are
       currently part of the specification. The question is, do we need
       array and map versions recently added functions?
     * JLO: observes that these functions are not all exactly comparable.
     * DN: What is the question, exactly? We've done this before. We
       should instead be trying to find a common collection type. We could
       avoid all these tables and the possibility of adding new columns.
       Automatically making array versions of sequence functions seems not
       very logical.
     * CG: The difference is that ideally, I only want to spend a few
       minutes on this summary and then not discuss it again. Finding a
       common collection type would be an interesting approach, but here
       we have some things we can do quickly.
     * DN: This isn't going to be the best approach.
     * MK: If someone has a proposal for a collection type, worked out in
       detail, I look forward to reading it. In the meantime, it makes
       sense to try to make the case more uniform.
     * NW: Should someone just take an action to make a proposal?
     * RD: Sequences are a flat representation of items, arrays can
       contain nested arrays, and maps have key/value pairs and the value
       can be an sequence or an array. How would something like array:some
       or array:every even work?
     * CG: I completely agree with RD. It would be nice to go through the
       list.
     * WP: I think there's a bit of a stress between long term goals and
       shorter-term goals. Some of DN's concerns might be addressed by
       agreeing that the longer term goal is some sort of uniformity.
          + ... If we're publishing this table, what message does that
            send?
     * JLY: It strikes me that there are some of these that can be created
       from some and every expression over things like filters and
       selectors. For example fn:duplicate-members could be done that way.
       Which do you have to have, that can't be easily constructed from
       existing functions.
     * MK: Procedurally, I think our time is much better spent discussing
       concrete proposals. It's hard to get agreement on policy questions;
       we should encourage people to make concrete proposals.
     * JLO: I wonder if we could at least for the new functions already
       and make it work for the new functions?
     * DN: I totally agree with MK that we need a constructive approach. I
       think that array:every, array:some, etc. should be added so that it
       doesn't appear that we're favoring sequences.
     * RD: One of the challenges with creating a unified function even
       with the existing data types is that an array is an item. So it's
       hard to distinguish them.

   ACTION QT4CG-062-01: CG to make an email proposal of a list of
   functions (re issue #843) to add

2.2. PRs #940 and #874: 878 Add subsequence-where function

   See PR [41]#940 and PR [42]#874.
     * MK introduces #940 as a replacement of his previous proposal to
       extend subsequence.
     * MK: The PR gets rid of the quartet of functions and replaces them
       with subequence-where that's inclusive.
          + ... MK explains the semantics of the function
          + ... It's defined in terms of fn:index-where
          + ... Being inclusive at both end points makes a few use cases
            more difficult.
          + ... It's inclusive because it's easier to get rid of an item
            than add one
          + ... The only tricky case I've found is that it's hard to tell
            if the last item was selected (as opposed to stopping at an
            item before the last).
     * JLY: In most cases, you can get to an exclusive result with
       head/tail.
     * MK: That use case inspired me to add a while close to for
       expressions that handles that case quite well.
     * DN: The use of INF in the description concerns me.
     * MK: The subsequence function handles INF so its fine.

   Proposal: accept #940, discard #878

   Accepted.

   Some discussion of subtraction of INF values.

   ACTION QT4CG-062-02: MK to check that the expansion of subsequence
   gives the correct result when neither from nor to match (INF - INF)

2.3. PR #937: 779 hash function

   See PR [43]#937
     * JK introduces the proposed hash function.
     * JK: The input is turned into a sequence of octets and fed to the
       algorithm
          + ... There were comments about providing a salt function, but I
            was hoping to start with a basic building block.
          + ... Two of the three algorithms have been cracked; caveat
            user.
     * RD: Should the algorithm names be matched in a case-insensitive
       manner. I note that sha-1 is lower case in one of my examples.
     * JK: Yes, that's in the spec.
     * MK: Another minor point, the conversion from an octet sequence to a
       string is under-specified. It should say that it does it as if
       using the hexbinary to string cast.
     * DN: I this proposal a lot, what strikes me is that there are just
       three algorithms. I'd like to have more or make the list
       open-ended.
     * JK: Benito asked why we don't have a hash function library, I don't
       have an opinion on that.
     * MK: Why are we returning a string rather than a binary value?
     * JK: That's what most people expect.

   Some discussion of what kind of string representation might be wanted.
     * NW: I think it should have an options algorithm.
     * MK: Have a single required option
     * JK: Replace the second argument with a map.
     * JLO: I like the idea of an options map. The options map could also
       specify the desired output format.
          + ... I would like to have a core function.
     * RD: On the question of implementing it in a library, the hash
       algorithms mutate the values so it's hard to do in an XQuery or
       XSLT function.
     * MK: I think the question of what module and namespace this function
       goes in and whether it can be implemented in XQuery are completely
       orthogonal.

   Some discussion of whether or not this should be an independent module.
     * MK: What about the name of the function? Is fn:hash the right name?
     * JK: It's always a mystery to me where the dividing line is between
       hash and checksum.

   Proposal: Accepted this PR

   Accepted.

   ACTION QT4CG-062-03: JK to revise the fn:hash function along the lines
   discussed at the meeting

2.4. PR #962: 946 fn:iterate-while -> fn:while-do, fn:do-until

   See PR [44]#962

   CG introduces the rational for creating while-do and do-until instead
   of iterate-while. It allows the user to check before or after the
   condition. This provides a broader set of semantics.

   CG shows how do-until makes some use cases easier because the iteration
   always happens at least once.
     * DN: I think do-until is something that would be very handy. I think
       while-do should be renamed to just while.
     * CG: I thought of that. But we are considering a while clause on a
       FLOWR expression and that could lead to ambiguity if the beginning
       of the FLOWR clause is omitted.
     * MK: Choosing names that we might want to use as language keywords
       seems unwise.
     * DN: We want to avoid specifying order and ordering in functional
       programming as much as possible.
     * MK: Yes, but we also want names that are intuitive to users. I like
       the symmetry.
     * CG: There really is an order here.

   Some discussion of the order of the arguments to the two functions.
     * RD: Would it be clearer if $seq in the first example was $value.
     * JL: If $p is the position, that would be better.
     * MK: Or $index
     * JLO: I thought we could rename them to apply-until, but I don't
       know if that's any better. But do-while is well known.

   Accept this PR.

   Accepted.

2.5. PR #956: 850-partial Editorial improvements to parse-html()

   See PR [45]#956

   Some discussion of the semantics. RD suggests that the way that the
   HTML version and type work have changed but the names haven't been
   changed in the record type.

   MK proposes to look at it again, encourages RD to make his comments on
   the PR.

3. Any other business

   None heard.

4. Adjourned

References

   1. https://qt4cg.org/meeting/minutes/2024/01-23.html#minutes
   2. https://qt4cg.org/meeting/minutes/2024/01-23.html#new-actions
   3. https://qt4cg.org/meeting/minutes/2024/01-23.html#administrivia
   4. https://qt4cg.org/meeting/minutes/2024/01-23.html#roll-call
   5. https://qt4cg.org/meeting/minutes/2024/01-23.html#agenda
   6. https://qt4cg.org/meeting/minutes/2024/01-23.html#so-far
   7. https://qt4cg.org/meeting/minutes/2024/01-23.html#approve-minutes
   8. https://qt4cg.org/meeting/minutes/2024/01-23.html#next-meeting
   9. https://qt4cg.org/meeting/minutes/2024/01-23.html#open-actions
  10. https://qt4cg.org/meeting/minutes/2024/01-23.html#open-pull-requests
  11. https://qt4cg.org/meeting/minutes/2024/01-23.html#blocked
  12. https://qt4cg.org/meeting/minutes/2024/01-23.html#merge-without-discussion
  13. https://qt4cg.org/meeting/minutes/2024/01-23.html#close-without-action
  14. https://qt4cg.org/meeting/minutes/2024/01-23.html#technical-agenda
  15. https://qt4cg.org/meeting/minutes/2024/01-23.html#issue-843
  16. https://qt4cg.org/meeting/minutes/2024/01-23.html#pr-940
  17. https://qt4cg.org/meeting/minutes/2024/01-23.html#pr-937
  18. https://qt4cg.org/meeting/minutes/2024/01-23.html#pr-962
  19. https://qt4cg.org/meeting/minutes/2024/01-23.html#pr-956
  20. https://qt4cg.org/meeting/minutes/2024/01-23.html#any-other-business
  21. https://qt4cg.org/meeting/minutes/2024/01-23.html#adjourned
  22. https://qt4cg.org/meeting/minutes/
  23. https://qt4cg.org/
  24. https://qt4cg.org/dashboard
  25. https://github.com/qt4cg/qtspecs/issues
  26. https://github.com/qt4cg/qtspecs/pulls
  27. https://qt4cg.org/meeting/agenda/2024/01-23.html
  28. https://qt4cg.org/meeting/minutes/2024/01-16.html
  29. https://qt4cg.org/meeting/agenda/2024/01-30.html
  30. https://qt4cg.org/dashboard/#pr-795
  31. https://qt4cg.org/dashboard/#pr-529
  32. https://qt4cg.org/dashboard/#pr-958
  33. https://qt4cg.org/dashboard/#pr-952
  34. https://qt4cg.org/dashboard/#pr-950
  35. https://qt4cg.org/dashboard/#pr-941
  36. https://qt4cg.org/dashboard/#pr-936
  37. https://qt4cg.org/dashboard/#pr-927
  38. https://github.com/qt4cg/qtspecs/issues/818
  39. https://github.com/qt4cg/qtspecs/issues/693
  40. https://github.com/qt4cg/qtspecs/issues/639
  41. https://qt4cg.org/dashboard/#pr-940
  42. https://qt4cg.org/dashboard/#pr-874
  43. https://qt4cg.org/dashboard/#pr-937
  44. https://qt4cg.org/dashboard/#pr-962
  45. https://qt4cg.org/dashboard/#pr-956

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Wednesday, 24 January 2024 08:57:51 UTC