QT4CG meeting 098 draft minutes, 12 November 2024

Here are the minutes from today’s meeting:

   https://qt4cg.org/meeting/minutes/2024/11-12.html

QT4 CG Meeting 098 Minutes 2024-11-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/9]
     * [8]1. Administrivia
          + [9]1.1. Roll call [10/12]
          + [10]1.2. Accept the agenda
               o [11]1.2.1. Status so far...
          + [12]1.3. Approve minutes of the previous meeting
          + [13]1.4. Next meeting
          + [14]1.5. Review of open action items [1/8]
          + [15]1.6. Review of open pull requests and issues
               o [16]1.6.1. Blocked
               o [17]1.6.2. Merge without discussion
     * [18]2. Technical agenda
          + [19]2.1. PR #1565: 1555 change default for parse json escape
          + [20]2.2. PR #1470: 689 fn:stack-trace: replace with
            $err:stack-trace
          + [21]2.3. PR #1562: 1561 Correct the schema for XSLT 4.0
          + [22]2.4. PR #1560: 1548 Clarify default for xsl:output/@indent
          + [23]2.5. PR #1558: 1522 Fix syntax ambiguity in patterns
          + [24]2.6. PR #1546: 1538 Add XSLT support for json-lines
          + [25]2.7. PR #1544: Allow (some) self-references in global
            variables
          + [26]2.8. PR #1454: 1449 Relax rules on multiple xsl:includes
     * [27]3. Any other business
     * [28]4. Adjourned

Draft Minutes

Summary of new and continuing actions [0/9]

     * [ ] QT4CG-080-07: NW to update the build instructions in the README
     * [ ] QT4CG-082-02: DN to work with MK to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-088-01: NW to consider how best to add a dedication to
       MSM.
     * [ ] QT4CG-088-04: [Someone] needs to update the processing model
       diagram needs vis-a-vis the static typing feature
     * [ ] QT4CG-089-01: CG to draft a PR that attempts to resolve the
       operators described in #755 to a smaller number of orthogonal
       choices.
     * [ ] QT4CG-097-02: MK to make the XSD schema component references
       into links to XSD
     * [ ] QT4CG-097-03: DN to proposal an axis for accessing the siblings
       of a node.
     * [ ] QT4CG-098-01: NW to update the Relax NG grammar for XSLT 4.0
     * [ ] QT4CG-098-02: NW to look at the XSL stylesheet for XSD,
       [29]#374.

1. Administrivia

1.1. Roll call [10/12]

   DN, EP give regrets.
     * [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)
     * [X] Juri Leino (JLO)
     * [X] John Lumley (JWL)
     * [ ] Dimitre Novatchev (DN)
     * [X] Wendell Piez (WP)
     * [ ] Ed Porter (EP)
     * [X] Norm Tovey-Walsh (NW). Scribe. Chair.

1.2. Accept the agenda

   Proposal: Accept [30]the agenda, amended to include PR #1569 in the
   "merge without discussion" group.

   Accepted.

1.2.1. Status so far...

   These charts have been adjusted so they reflect the preceding six
   months of work.

   issues-open-2024-11-12.png

   Figure 1: "Burn down" chart on open issues

   issues-by-spec-2024-11-12.png

   Figure 2: Open issues by specification

   issues-by-type-2024-11-12.png

   Figure 3: Open issues by type

1.3. Approve minutes of the previous meeting

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

   Accepted.

1.4. Next meeting

   This next meeting is planned for 19 November. Any regrets?

   DB gives for 19 and 26 November.

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

   (Items marked [X] are believed to have been closed via email before
   this agenda was posted.)
     * [ ] QT4CG-080-07: NW to update the build instructions in the README
     * [ ] QT4CG-082-02: DN to work with MK to come to agreement on the
       fn:ranks proposal
     * [ ] QT4CG-088-01: NW to consider how best to add a dedication to
       MSM.
     * [ ] QT4CG-088-04: [Someone] needs to update the processing model
       diagram needs vis-a-vis the static typing feature
     * [ ] QT4CG-089-01: CG to draft a PR that attempts to resolve the
       operators described in #755 to a smaller number of orthogonal
       choices.
     * [X] QT4CG-097-01: MK to add a note explaining why base-type and
       friends are functions in the schema-type-record
     * [ ] QT4CG-097-02: MK to make the XSD schema component references
       into links to XSD
     * [ ] QT4CG-097-03: DN to proposal an axis for accessing the siblings
       of a node.

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 [32]#1505: 1503 Add err:map, err:stack-trace, err:additional to
       XSLT
     * PR [33]#1454: 1449 Relax rules on multiple xsl:includes
     * PR [34]#1296: 982 Rewrite of scan-left and scan-right
     * PR [35]#1283: 77b Update expressions
     * PR [36]#1062: 150bis revised proposal for fn:ranks
     * PR [37]#529: 528 fn: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 [38]#1564: 1563 Fix fn:schema-type examples
     * PR [39]#1562: 1561 Correct the schema for XSLT 4.0
     * PR [40]#1559: 1515 Add cross-references to map:build
     * PR [41]#1558: 1522 Fix syntax ambiguity in patterns
     * PR [42]#1557: 1553 Expand explanation of predicates in axis steps
     * PR [43]#1549: 1534 Allow xsl:result-document/@select
     * PR [44]#1543: Drop fn:element-number
     * PR [45]#1535: 1478 Drop variadic functions
     * PR [46]#1569: 1567 Supply missing change metadata
     * PR [47]#1556: 1486 Editorial corrections & cleanups

   Proposal: Merge without discussion.

   Accepted.

2. Technical agenda

2.1. PR #1565: 1555 change default for parse json escape

   See PR [48]#1565

   MK introduces the PR.
     * MK: This arose from a bug report in the QT3 test suite; there were
       tests that were incompatible with the specification.
          + Came to the conclusion that the spec is wrong and the tests
            are correct.
          + The change is that escaping JSON is false by default.
          + "False" is by far the most usable option; looking at the
            history of 3.1, we changed the polarity of the option but we
            forgot to change the default.
     * CG: Yeah, that's fine.

   Proposal: Accept this PR.

   Accepted.

2.2. PR #1470: 689 fn:stack-trace: replace with $err:stack-trace

   See PR [49]#1470
     * CG: We've talked about this before.
          + MK suggested to return a function instead of an item or a
            string. That's the change.
     * JWL: Can you remind me why we wanted a function?
     * CG: The stack trace can be extensive, this defers computation until
       you need it.
     * MK: This drops the free-standing function as well.
     * CG: Yes.

   Proposal: Accept this PR.

   Accepted.

2.3. PR #1562: 1561 Correct the schema for XSLT 4.0

   See PR [50]#1562

   MK observes that the diff doesn't show well on this one...
     * MK: We publish the schema in two places, both free-standing and
       copied into an appendix.
     * NW: Could we just stop doing that? Is there value in the appendix?
     * RD: Are there cross-references into it?
     * MK: No.

   MK reviews the actual changes in the PR.
     * MK: The schema was actually invalid. And some of the stylesheets
       were invalid against the schema. There are already some caveats
       that say there are stylesheets that aren't valid even though
       they're correct. That caveat now extends to xsl:note.

   MK reviews the changes in the schema.

   ACTION: QT4CG-098-01: NW to update the Relax NG grammar for XSLT 4.0
     * RD: Would it make sense to generate the schema from the spec. We
       could put fragments of XSD and RNG into the specification and then
       pull them all together at the end.
     * MK: Are you volunteering?
     * RD: I'll take a look.

   ACTION: QT4CG-098-02: NW to look at the XSL stylesheet for XSD,
   [51]#374.
     * SF: Rendering in the specification or in the IDE with a live feed
       is a problem. If it could be solved, it would be game changing to
       the coding experience.

   Proposal: Accept this PR.

   Accepted.

2.4. PR #1560: 1548 Clarify default for xsl:output/@indent

   See PR [52]#1560
     * MK: The serialization doesn't define the defaults, that's up to the
       host language.
          + I found that XSLT didn't define a default for indent. This PR
            fixes that.
          + It also adds a couple of section numbers, which messes with
            the diff.
          + And in a few places json and adaptive serialization weren't
            mentioned.
     * MK: All of the prose about defaults for parameters has been moved
       into a new section.
          + ... The only change is to the indent parameter which now says
            the default is "yes" for HTML and XHTML and "no" everywhere
            else.

   Some discussion of how the diffs are constructed.

   Proposal: Accept this PR.

   Accepted.

2.5. PR #1558: 1522 Fix syntax ambiguity in patterns

   See PR [53]#1558
     * MK: This is an ambiguity in the XSLT pattern syntax that JWL
       identified.
          + The solution was to remove FunctionCallP in RootedPath because
            it only gives an option you can get to directly (introducing
            an ambiguity).

   Proposal: Accept this PR.

   Accepted.

2.6. PR #1546: 1538 Add XSLT support for json-lines

   See PR [54]#1546
     * MK: This adds json-lines to the XSLT spec, the bulk of the work is
       in the Serialization specification and we've already accepted it.
          + ... It adds it as an option in various places and makes a
            brief mention of what it does.
     * JLO: Is it possible to unify the XSLT and XQuery serialization
       parameters?
     * MK: I think moving things into the Serialization specification has
       refactored about as far as we can.
          + ... There are some differences that have nothing to do with
            XQuery.
     * JLO: Is there a way for a user to find out what the current, actual
       values are? The system that XQuery is running in will override some
       of those defaults.
     * MK: You can override defaults via an API. And the API can also
       discover what your current settings are.
          + ... There's no way to ask in XSLT or XQuery code what the
            current settings are. I'm not quite sure why you'd want to
            know.

   Proposal: Accept this PR.

   Accepted.

2.7. PR #1544: Allow (some) self-references in global variables

   See PR [55]#1544
     * MK: This mimics in XSLT a change that was made to XQuery.
          + ... The spec had said that a global variable isn't visible in
            its own declaration.
          + ... It is now visible, but trivial self references are
            disallowed by circularity rules.
          + ... There's an example where self-reference does make sense,
            for example, a recursive inline function.
     * MK: This removes an unnecessary restriction.
     * JWL: Is this only the case with function-valued global variables?
       Can you do it with any other kind?
     * MK: You could do it with maps.
     * JWL: That's effectively a function...
     * JLO: If it really only applies to functions, should we say that?

   Proposal: Accept this PR.

   Accepted.

2.8. PR #1454: 1449 Relax rules on multiple xsl:includes

   See PR [56]#1454
     * MK: We did take a look at it once before.
          + ... In the past, having circular includes was an error.
          + ... That meant you couldn't write stylesheets that simply
            included everything they depended on because you'd get
            circularities.
          + ... This change says that if you have xsl:includes at the same
            level, we ignore the duplicates. Only the first one counts.
          + ... Duplicates includes the entry point at the stylesheet
            level.
     * MK: There is an edge case where this gives you an incompatibility.
          + ... In 3.0 a circularity is an error but a "diamond" isn't. A
            diamond where both B and C include D would usually lead to an
            error because it would include two templates or functions with
            the same name.
          + ... In the rare case where an included module only contains
            template rules without names then you'd get two copies and
            next-match would go to the next.
     * JLO: Is there some kind of scoping mechanism? Can the output change
       when xsl:includes are inserted at different levels? Can you have
       different variables if they're at different levels?
     * MK: No. All the declarations are global to a package. They're
       import precedence only depends on the level. The order of tebmplate
       rules could be different which matters if you haven't specified
       priority.
     * JLO: Shouldn't we say that also the last one wins?
     * MK: In some ways, yes, but that doesn't work with static variables
       because it's the first one that counts. And you can only reference
       it in a static declaration that comes after it. So you wouldn't
       know if the include you'd already read was the last one.
          + ... The evaluation of static expressions is assumed to be
            serializable. That sort of preprocessing stage has to be
            sequential and you have to know when it's the first.
     * JLO: Are those includes at the same level turned into a flat list?
     * MK: You're processing your source hierarchically. For static
       variables and expressions, you work hierarchically. If you reach an
       xsl:include, you read it immediately, and any variables it contains
       are avialable anywhere after that include. It's sort of flattened.
     * WP: I think that the edge case that we're worried about is really
       out there on the edge. I think the current behavior might really be
       considered a bug.
     * MK: We'll find out in time!

   Some further discussion of includes and nesting and static variables.

   Proposal: Accept this PR.

   Accepted.

3. Any other business

   JWL shows a demo of hyperlinking the grammar.
     * JWL: As a consequence of building the iXML grammars, I now have
       hyperlinked grammars.
          + ... Going from the nonterminal to its definition is easy.
          + ... What I can do now is, for a given rule, show you all the
            rules that reference it!
          + ... I can probably reduce this to a little bit of JavaScript.
     * MK: I'd love to get rid of the stuff in the current spec where you
       have to tag the most important occurence of a rule with an ID. I'd
       love to automate that.
     * NW: I'd be happy to try to get something like this in the
       specification.

   CG wonders if we can talk about EXPath.

   Some discussion of the state of expath.org.
     * NW: Should we follow up in the issue about which ones we want to
       maintain.
     * JWL: They're not terribly complex. But archive was never
       satisfactorily finished.
          + ... And the http-client one is a lot more complex.
     * MK: The file and binary ones should be fairly straight-forward.
     * MK: Should support for the binary functions be intrinsic in our
       specifications?
          + ... File is harder because it depends on non-determinism.
     * JWL: There are only about 15 functions.
     * JLO: What I get as feedback from other implementors is that there
       are too many functions and everything is part of the spec. The spec
       alone is not enough, what about the repo and the test steps?
          + ... Would it have been better to have a CSV module, for
            example?
     * MK: Should the spec should be logically modular, and should it be
       editorially modular, are separable questions.
     * CG: If we want to have future versions of the file and binary
       modules, we need to extract them from the current solution and
       publish them here.
          + But it doesn't have to be part of 4.0.
     * RD: We talked in the past about things like packaging and that sort
       of thing. This seems like it fits into that. Is the package spec in
       XQuery or XPath?
     * JLO: That's XPath.
     * RD: So there's a question of how we specify this? Do we publish
       them as notes, as full specifications, etc.
     * WP: I think that merging them in is probably a good thing. But with
       respect to how that bears on complexity and implementability is
       maybe a separate issue.

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/2024/11-12.html#minutes
   7. https://qt4cg.org/meeting/minutes/2024/11-12.html#new-actions
   8. https://qt4cg.org/meeting/minutes/2024/11-12.html#administrivia
   9. https://qt4cg.org/meeting/minutes/2024/11-12.html#roll-call
  10. https://qt4cg.org/meeting/minutes/2024/11-12.html#agenda
  11. https://qt4cg.org/meeting/minutes/2024/11-12.html#so-far
  12. https://qt4cg.org/meeting/minutes/2024/11-12.html#approve-minutes
  13. https://qt4cg.org/meeting/minutes/2024/11-12.html#next-meeting
  14. https://qt4cg.org/meeting/minutes/2024/11-12.html#open-actions
  15. https://qt4cg.org/meeting/minutes/2024/11-12.html#open-pull-requests
  16. https://qt4cg.org/meeting/minutes/2024/11-12.html#blocked
  17. https://qt4cg.org/meeting/minutes/2024/11-12.html#merge-without-discussion
  18. https://qt4cg.org/meeting/minutes/2024/11-12.html#technical-agenda
  19. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1565
  20. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1470
  21. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1562
  22. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1560
  23. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1558
  24. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1546
  25. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1544
  26. https://qt4cg.org/meeting/minutes/2024/11-12.html#pr-1454
  27. https://qt4cg.org/meeting/minutes/2024/11-12.html#any-other-business
  28. https://qt4cg.org/meeting/minutes/2024/11-12.html#adjourned
  29. https://github.com/qt4cg/qtspecs/issues/374
  30. https://qt4cg.org/meeting/agenda/2024/11-12.html
  31. https://qt4cg.org/meeting/minutes/2024/11-05.html
  32. https://qt4cg.org/dashboard/#pr-1505
  33. https://qt4cg.org/dashboard/#pr-1454
  34. https://qt4cg.org/dashboard/#pr-1296
  35. https://qt4cg.org/dashboard/#pr-1283
  36. https://qt4cg.org/dashboard/#pr-1062
  37. https://qt4cg.org/dashboard/#pr-529
  38. https://qt4cg.org/dashboard/#pr-1564
  39. https://qt4cg.org/dashboard/#pr-1562
  40. https://qt4cg.org/dashboard/#pr-1559
  41. https://qt4cg.org/dashboard/#pr-1558
  42. https://qt4cg.org/dashboard/#pr-1557
  43. https://qt4cg.org/dashboard/#pr-1549
  44. https://qt4cg.org/dashboard/#pr-1543
  45. https://qt4cg.org/dashboard/#pr-1535
  46. https://qt4cg.org/dashboard/#pr-1569
  47. https://qt4cg.org/dashboard/#pr-1556
  48. https://qt4cg.org/dashboard/#pr-1565
  49. https://qt4cg.org/dashboard/#pr-1470
  50. https://qt4cg.org/dashboard/#pr-1562
  51. https://github.com/qt4cg/qtspecs/issues/374
  52. https://qt4cg.org/dashboard/#pr-1560
  53. https://qt4cg.org/dashboard/#pr-1558
  54. https://qt4cg.org/dashboard/#pr-1546
  55. https://qt4cg.org/dashboard/#pr-1544
  56. https://qt4cg.org/dashboard/#pr-1454

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Tuesday, 12 November 2024 18:07:28 UTC