Re: QT4CG meeting 082 draft minutes, 18 June 2024

Hi Norm,

That codepen link won't show what I demonstrated as I edited that in-place
to create the demonstration -- it was mainly so I could show the in-browser
tree and API/DOM behaviour via the deveoper console. You can view an
example usage in the HTML spec for the template element.

Kind regards,
Reece

On Tue, 18 Jun 2024 at 17:48, Norm Tovey-Walsh <norm@saxonica.com> wrote:

> Here’s are the draft minutes from today’s meeting:
>
>    https://qt4cg.org/meeting/minutes/2024/06-18.html
>
> QT4 CG Meeting 082 Minutes 2024-06-18
>
> Table of Contents
>
>      * [1]Draft Minutes
>      * [2]Summary of new and continuing actions [1/18]
>      * [3]1. Administrivia
>           + [4]1.1. Roll call [11/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 [15/18]
>           + [10]1.6. Review of open pull requests and issues
>                o [11]1.6.1. Substantive PRs
>                o [12]1.6.2. Proposed for V4.0
>      * [13]2. Technical Agenda
>           + [14]2.1. HTML 5 template element content
>           + [15]2.2. PR #1280: 1267 fn:apply contradictions
>           + [16]2.3. PR #1279: 1278 - line endings in unparsed-text-lines
>           + [17]2.4. PR #1276: QT4CG-081-03 parse-xml-[fragment]: $options
>             should be optional
>           + [18]2.5. PR #1270: QT4CG-081-01 Add cross refererence from
>             fn:round-half-to-even
>           + [19]2.6. PR #1268: QT4CG-077-03 Add note on document order
>             across documents
>           + [20]2.7. PR #1264: 1245 Correct properties of format-DT
>             function family
>           + [21]2.8. PR #1275: 1274 Further rounding modes
>      * [22]3. Any other business
>      * [23]4. Adjourned
>
>    [24]Meeting index / [25]QT4CG.org / [26]Dashboard / [27]GH Issues /
>    [28]GH Pull Requests
>
> Draft Minutes
>
> Summary of new and continuing actions [1/18]
>
>      * [ ] QT4CG-079-01: WP to seek expert advice on hashing functions.
>      * [ ] QT4CG-080-05: NW to add absolute property to the parse-uri
>        output
>      * [ ] QT4CG-080-07: NW to update the build instructions in the README
>      * [ ] QT4CG-082-01: JLO to raise an issue about what to do when
>        validation is requested but not possible.
>      * [ ] QT4CG-082-02: DN to work with MK to come to agreement on the
>        fn:ranks proposal
>
> 1. Administrivia
>
> 1.1. Roll call [11/12]
>
>    CG gives regrets.
>      * [X] Reece Dunn (RD) [x:10-]
>      * [X] Sasha Firsov (SF)
>      * [ ] 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)
>      * [X] C. M. Sperberg-McQueen (MSM)
>      * [X] Norm Tovey-Walsh (NW). Scribe. Chair.
>
> 1.2. Accept the agenda
>
>    Proposal: Accept [29]the agenda.
>
>    Accepted.
>
> 1.2.1. Status so far...
>
>    issues-open-2024-06-18.png
>
>    Figure 1: "Burn down" chart on open issues
>
>    issues-by-spec-2024-06-18.png
>
>    Figure 2: Open issues by specification
>
>    issues-by-type-2024-06-18.png
>
>    Figure 3: Open issues by type
>
> 1.3. Approve minutes of the previous meeting
>
>    Proposal: Accept [30]the minutes of the previous meeting.
>
>    Accepted.
>
> 1.4. Next meeting
>
>    This next meeting is planned for 25 June.
>
>    CG gives regrets for two weeks.
>
> 1.5. Review of open action items [15/18]
>
>      * [X] QT4CG-063-06: MK to consider refactoring the declare item type
>        syntax to something like declare record
>      * [X] QT4CG-077-04: MK to review inconsistencies discovered in review
>        of #1117
>      * [X] QT4CG-078-01: MK to make the default for normalize-newlines
>        backwards compatible.
>      * [ ] QT4CG-079-01: WP to seek expert advice on hashing functions.
>      * [X] QT4CG-080-01: NW to add what the DocBook stylesheets do for
>        this function
>      * [X] QT4CG-080-02: NW to fix issue classification so PR #1181 isn't
>        misclassified as an XSLT issue
>      * [X] QT4CG-080-03: MK to make a separate issue for @as on
>        xsl:value-of
>      * [X] QT4CG-080-04: NW to revise p:invisible-xml
>      * [ ] QT4CG-080-05: NW to add absolute property to the parse-uri
>        output
>      * [X] QT4CG-080-06: NW to investigate the cross-spec reference errors
>        in the build
>      * [ ] QT4CG-080-07: NW to update the build instructions in the README
>      * [X] QT4CG-080-08: MK to work out what happened to his next-match PR
>      * [X] QT4CG-080-09: MK to address comments made on PR #832
>      * [X] QT4CG-081-01: MK to update fn:round-to-even to point to
>        fn:round
>      * [X] QT4CG-081-02: NW to make an issue about how grammar productions
>        should be identified
>      * [X] QT4CG-081-03: MK to make the options parameter optional in
>        fn:parse-xml and fn:parse-xml-fragment
>      * [X] QT4CG-081-04: NW to update the function signature of
>        fn:invisible-xml
>      * [X] QT4CG-081-04: NW to describe why the grammar option can be
>        empty on fn:invisible-xml
>
>    MK reports creating issues for his actions, so the actions are marked
>    as completed.
>
> 1.6. Review of open pull requests and issues
>
> 1.6.1. Substantive PRs
>
>    The following substantive PRs were open when this agenda was prepared.
>      * PR [31]#1280: 1267 fn:apply contradictions
>      * PR [32]#1279: 1278 - line endings in unparsed-text-lines
>      * PR [33]#1276: QT4CG-081-03 parse-xml-[fragment]: $options should be
>        optional
>      * PR [34]#1275: 1274 Further rounding modes
>      * PR [35]#1270: QT4CG-081-01 Add cross refererence from
>        fn:round-half-to-even
>      * PR [36]#1268: QT4CG-077-03 Add note on document order across
>        documents
>      * PR [37]#1266: 1158 Add array mapping operator
>      * PR [38]#1265: 1161 Further revision of document-uri constraints
>      * PR [39]#1264: 1245 Correct properties of format-DT function family
>      * PR [40]#1262: 1160 Add collation-available() function
>      * PR [41]#1254: 729 Add rules for use of xsi:schemaLocation during
>        validation
>      * PR [42]#1244: 566-partial Rewrite parse-uri
>      * PR [43]#1228: - Adding the BLAKE3 hashing algorithm to fn:hash
>      * PR [44]#1209: 1183 Add transient mode and the transient{}
>        expression
>      * PR [45]#1185: 1179 array:values, map:values -> array:get, map:get
>
> 1.6.2. Proposed for V4.0
>
>    The following issues are labled "proposed for V4.0".
>      * Issue [46]#1225: Generalization of Deep Updates
>      * Issue [47]#1069: fn:ucd
>      * Issue [48]#938: Canonical serialization
>      * Issue [49]#850: fn:parse-html: Finalization
>      * Issue [50]#755: Expression for binding the Context Value
>      * Issue [51]#689: fn:stack-trace: keep, drop, replace with
>        $err:stack-trace ?
>      * Issue [52]#657: User-defined functions in main modules without
>        `local` prefix
>      * Issue [53]#576: JSON serialization: Sequences, INF/NaN, function
>        items
>      * Issue [54]#501: Error handling: Rethrow errors; finally block
>      * Issue [55]#150: fn:ranks: Produce all ranks in applying a function
>        on the items of a sequence
>      * Issue [56]#37: Support sequence, array, and map destructuring
>        declarations
>      * Issue [57]#31: Extend FLWOR expressions to maps
>
> 2. Technical Agenda
>
> 2.1. HTML 5 template element content
>
>    This is a follow-up from the face-to-face meeting, see [58]issue 75.
>
>    RD introduces the template element starting at
>    [59]https://html.spec.whatwg.org/multipage/scripting.html#the-template-
>    element
>      * RD: When the HTML parser parses the template element and adds it
>        into the DOM, it doesn't add the child elements as children of the
>        template, it constructs a document fragment and attaches that to
>        the content property of the HTML template DOM.
>           + ... That's what element.content returns in JavaScript
>           + ... It's a DocumentFragment(), a new node type in HTML5.
>           + ... There's also a ShadowRoot for similar style document
>             fragments.
>                o ... The other shadow roots can only be constructed with
>                  JavaScript
>      * RD: When you parse the HTML document, you get the HTML DOM but the
>        template doesn't have any child elements.
>           + ... A document fragment isn't a document, it can have multiple
>             roots.
>
>    RD demonstrates a query in codepen.io/yoann-b/pen/jOLjjOP
>      * RD: The WHATWG defines two different behaviors for XSLT and XPath.
>           + If you use XSLT, then the template element should behave as if
>             the content elements are child elements.
>           + But if you're using XPath, then you don't.
>      * RD: That's why the HTML parse options has an
>        include-template-content option. It lets you control which behavior
>        you want when parsing the document.
>           + ... That's also why the children accessor in the HTML DOM
>             section is complicated.
>           + ... But we aren't supporting document fragments because they
>             aren't nodes in the XDM.
>           + ... Can we add support for templates by adding a new XDM node
>             type?
>      * SF: It happens that content is only materialized at the moment of
>        attachment when the browser adds it to the DOM.
>           + ... When we are working on the parser level, you're never
>             dealing with the HTML not the virtual, detatched DOM.
>           + ... The template behavior is triggered when the content is
>             attached to the document.
>           + ... I don't see any reason to handle the templates
>             differently. During the transformation, you don't want to
>             simulate what the browser does.
>           + ... Perhaps in the future, there will be reuse for the
>             templates. So they aren't injected, they're reused during the
>             rendering.
>      * RD: If you're using an HTML5 compliant parser, it'll be using the
>        algorithm that handles templates. There are two modes: tokenization
>        (tag name and attribute parsing into a node name and attributes
>        blob) and then it runs the tree construction which builds the HTML
>        DOM.
>      * SF: Yes, when it does the attachment, that's when the different
>        behavior happens. But we're using XSLT before we're attaching to
>        the DOM.
>           + In both cases, the attachment step happens on the browser
>             level, so I don't need it at the XSLT layer.
>           + Once it's adopted by the original DOM, it's tranformed into
>             the fragment.
>           + When we do the XSLT transformation, we're receiving the HTML
>             as a DOM tree, but this doesn't need to be "unwrapped". It
>             doesn't need to have the document fragments inside.
>      * JLY: Is the template trying to be like a def/use in SVG?
>      * RD: Yes, effectively.
>      * SF: It's not exactly reuse, you have to clone it.
>      * NW: I think there are two cases: can we generate templates, easy.
>        If we're loading an HTML5 DOM into an XDM, then we can punt to
>        "implementation defined" at some point.
>      * RD: I've tried to handle some of the DOM to XDM transformations in
>        the specification.
>      * MK: What is the gap in the current spec? What's the issue in the
>        status quo text?
>      * RD: The gap really is that the HTML DOM defines a document fragment
>        node and the XDM doesn't support that.
>           + ... So we are currently working around that by dealing with
>             the templates by skipping the document fragment part and
>             treating it as if it doesn't exist.
>      * MK: And why is that a problem?
>      * SF: The original idea of having templates and document fragments is
>        isolation. The isolation is on many different layers: APIs, CSS,
>        DOMs, etc. That's done for the purpose. We can either ignore it, or
>        actually honor it.
>           + ... It would be logical to have some support for templates.
>             They can be open or closed. If they're open, you can see
>             everything. If they're closed, they're a black box.
>           + ... There is a plan to have even more open-styleable content.
>             This is on a per-template instance.
>      * JLO: I think that document fragments predate HTML 5. I haven't
>        found when they were introduced, but I've definitely had to deal
>        with them.
>           + ... I don't see that we need to have this isolation. If
>             someone wants to deal with template elements in that way, then
>             they can.
>      * NW: Can we have a concrete use case?
>      * DN: I don't think the description of XPath and XSLT integration is
>        very clear. Does the browser call them? Which version will be used?
>        Can templates be nested? Maybe we need to get in contact with the
>        HTML authors to get on the same pages.
>
>    NW pulls his chair's hat down over his ears and draws this section to a
>    close.
>
> 2.2. PR #1280: 1267 fn:apply contradictions
>
>    See PR [60]#1280.
>
>    MK introduces the issue.
>      * MK: There are a few simple fixes, bu the substacne is in the
>        fn:apply function.
>           + ... I've changed the spec to be clear that the size of the
>             array doesn't have to exactly match the number of arguments.
>      * JLO: I like this. I just fear that this has consequences that I
>        can't see. Ignoring excess arguments worries me.
>      * MK: It's making it consistent with dynamic function calls where
>        this already happens.
>      * DN: I know that we adopted the rule that a function can be called
>        with extra arguments that are ignored. Now I'm worried about it a
>        little bit. Doesn't this effect the type safety?
>           + ... In JavaScript isn't this only allowed in callbacks?
>           + ... Are we proposing to allow static function calls to have
>             additional arguments?
>           + ... Maybe we need to be more careful about when this is
>             allowed?
>           + ... Perhaps we can even add a keyword that signals functions
>             are allowed to have extra arguments.
>      * MK: I share some of the reservations, but I think fn:apply needs to
>        be made consistent with dynamic function calls.
>      * DN: I think we need to constrain this feature.
>      * MK: Would you like to raise a new issue on that?
>      * DN: I'm a little tired of having things going into the spec that I
>        didn't agree with.
>
>    Anyone in favor? Several thumbs up. Anyone opposed: DN expresses
>    reservations.
>      * JLY: We're not talking about static function excess arguments,
>        isn't that right?
>      * MK: No, this is only about dynamic function calls.
>      * DN: It's very easy to make a static function into a dynamic
>        function, just assign it to a variable.
>
>    Proposal: merge this PR.
>
>    Accepted.
>
> 2.3. PR #1279: 1278 - line endings in unparsed-text-lines
>
>    See PR [61]#1279.
>      * MK: This originated with CG. This PR attempts to address an issue
>        raised by CG.
>      * MK: Unparsed text lines should continue as they did in 3.1, always
>        treating CR/LF and newline as equivalent.
>           + ... This removes the normalize newline option, reverting to
>             the 3.1 spec.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
> 2.4. PR #1276: QT4CG-081-03 parse-xml-[fragment]: $options should be
> optional
>
>    See PR [62]#1276.
>      * MK: This one is extremely trivial. It just adds a question mark to
>        the options parameter so that an empty sequence is allowed.
>      * JLO: Last week we merged in the validation options. Are those
>        optional?
>      * MK: XSD validation is an optional feature. We should say what
>        happens if you are in a non-schema aware processor.
>           + ... We ought to say the same thing for DTD validation. If you
>             can't validate raise an error.
>      * SF: There's a need for validation and schema capabilities; it would
>        be nice if we have a separate meeting about this. it touches very
>        many questions here. In the community and on the web, it's a
>        critical issue.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
>    ACTION: QT4CG-082-01: JLO to raise an issue about what to do when
>    validation is requested but not possible.
>
> 2.5. PR #1270: QT4CG-081-01 Add cross refererence from
> fn:round-half-to-even
>
>    See PR [63]#1270.
>      * MK: This just adds a cross reference.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
> 2.6. PR #1268: QT4CG-077-03 Add note on document order across documents
>
>    See PR [64]#1268.
>      * MK: This adds a note that was requested in discussion of another
>        proposal. It reinforces document order across documents.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
> 2.7. PR #1264: 1245 Correct properties of format-DT function family
>
>    See PR [65]#1264.
>      * MK: This merely brings the text on properties up to date with the
>        spec. Several arguments now have defaults.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
> 2.8. PR #1275: 1274 Further rounding modes
>
>    See PR [66]#1275.
>      * MK: The rounding mode names differed from the names that Java used.
>        That got me looking around, so now I'm proposing that we extend the
>        set of modes we offer.
>
>    MK summarizes the nine modes.
>      * MK: That full set of nine is offered on .NET, Java offers seven.
>           + ... Java offers the capability to offer all nine.
>           + ... You can support any of the modes by some combination of
>             changing the sign, rounding, etc.
>
>    Proposal: accept this PR.
>
>    Accepted.
>
> 3. Any other business
>
>      * DN: What happened to the action that MK and I had to come to a
>        resolution on fn:ranks?
>      * NW: I don't recall, apologies if that got accidentally dropped.
>        I'll put it back.
>
>    (On further investigation, the [67]minutes of meeting 079 say that "DN
>    will attempt to work with MK" but don't record an explicit action; the
>    scribe will add one now.)
>
>    ACTION: QT4CG-082-02: DN to work with MK to come to agreement on the
>    fn:ranks proposal
>
> 4. Adjourned
>
> References
>
>    1. https://qt4cg.org/meeting/minutes/2024/06-18.html#minutes
>    2. https://qt4cg.org/meeting/minutes/2024/06-18.html#new-actions
>    3. https://qt4cg.org/meeting/minutes/2024/06-18.html#administrivia
>    4. https://qt4cg.org/meeting/minutes/2024/06-18.html#roll-call
>    5. https://qt4cg.org/meeting/minutes/2024/06-18.html#agenda
>    6. https://qt4cg.org/meeting/minutes/2024/06-18.html#so-far
>    7. https://qt4cg.org/meeting/minutes/2024/06-18.html#approve-minutes
>    8. https://qt4cg.org/meeting/minutes/2024/06-18.html#next-meeting
>    9. https://qt4cg.org/meeting/minutes/2024/06-18.html#open-actions
>   10. https://qt4cg.org/meeting/minutes/2024/06-18.html#open-pull-requests
>   11. https://qt4cg.org/meeting/minutes/2024/06-18.html#substantive
>   12. https://qt4cg.org/meeting/minutes/2024/06-18.html#proposed-40
>   13. https://qt4cg.org/meeting/minutes/2024/06-18.html#technical-agenda
>   14.
> https://qt4cg.org/meeting/minutes/2024/06-18.html#h-BF98CA1E-7B5C-4D07-93C5-73D78AD45BFF
>   15. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1280
>   16. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1279
>   17. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1276
>   18. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1270
>   19. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1268
>   20. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1264
>   21. https://qt4cg.org/meeting/minutes/2024/06-18.html#pr-1275
>   22. https://qt4cg.org/meeting/minutes/2024/06-18.html#any-other-business
>   23. https://qt4cg.org/meeting/minutes/2024/06-18.html#adjourned
>   24. https://qt4cg.org/meeting/minutes/
>   25. https://qt4cg.org/
>   26. https://qt4cg.org/dashboard
>   27. https://github.com/qt4cg/qtspecs/issues
>   28. https://github.com/qt4cg/qtspecs/pulls
>   29. https://qt4cg.org/meeting/agenda/2024/06-18.html
>   30. https://qt4cg.org/meeting/minutes/2024/06-11.html
>   31. https://qt4cg.org/dashboard/#pr-1280
>   32. https://qt4cg.org/dashboard/#pr-1279
>   33. https://qt4cg.org/dashboard/#pr-1276
>   34. https://qt4cg.org/dashboard/#pr-1275
>   35. https://qt4cg.org/dashboard/#pr-1270
>   36. https://qt4cg.org/dashboard/#pr-1268
>   37. https://qt4cg.org/dashboard/#pr-1266
>   38. https://qt4cg.org/dashboard/#pr-1265
>   39. https://qt4cg.org/dashboard/#pr-1264
>   40. https://qt4cg.org/dashboard/#pr-1262
>   41. https://qt4cg.org/dashboard/#pr-1254
>   42. https://qt4cg.org/dashboard/#pr-1244
>   43. https://qt4cg.org/dashboard/#pr-1228
>   44. https://qt4cg.org/dashboard/#pr-1209
>   45. https://qt4cg.org/dashboard/#pr-1185
>   46. https://github.com/qt4cg/qtspecs/issues/1225
>   47. https://github.com/qt4cg/qtspecs/issues/1069
>   48. https://github.com/qt4cg/qtspecs/issues/938
>   49. https://github.com/qt4cg/qtspecs/issues/850
>   50. https://github.com/qt4cg/qtspecs/issues/755
>   51. https://github.com/qt4cg/qtspecs/issues/689
>   52. https://github.com/qt4cg/qtspecs/issues/657
>   53. https://github.com/qt4cg/qtspecs/issues/576
>   54. https://github.com/qt4cg/qtspecs/issues/501
>   55. https://github.com/qt4cg/qtspecs/issues/150
>   56. https://github.com/qt4cg/qtspecs/issues/37
>   57. https://github.com/qt4cg/qtspecs/issues/31
>   58. https://github.com/qt4cg/qtspecs/issues/75
>   59.
> https://html.spec.whatwg.org/multipage/scripting.html#the-template-element
>   60. https://qt4cg.org/dashboard/#pr-1280
>   61. https://qt4cg.org/dashboard/#pr-1279
>   62. https://qt4cg.org/dashboard/#pr-1276
>   63. https://qt4cg.org/dashboard/#pr-1270
>   64. https://qt4cg.org/dashboard/#pr-1268
>   65. https://qt4cg.org/dashboard/#pr-1264
>   66. https://qt4cg.org/dashboard/#pr-1275
>   67. https://qt4cg.org/meeting/minutes/2024/05-28.html#pr-1062
>
>                                         Be seeing you,
>                                           norm
>
> --
> Norm Tovey-Walsh
> Saxonica
>

Received on Tuesday, 18 June 2024 17:07:21 UTC