- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 29 Apr 2025 17:38:25 +0100
- To: public-xslt-40@w3.org
Hi folks, Here are the draft minutes: https://qt4cg.org/meeting/minutes/2025/04-29.html QT4 CG Meeting 119 Minutes 2025-04-29 [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 [1/7] * [8]1. Administrivia + [9]1.1. Roll call [10/13] + [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 [5/10] + [15]1.6. Review of open pull requests and issues o [16]1.6.1. Blocked o [17]1.6.2. Merge without discussion o [18]1.6.3. Close without action o [19]1.6.4. Substantive PRs * [20]2. Technical agenda + [21]2.1. Review of pull requests + [22]2.2. PR #1883/1894: fn:chain and fn:compose + [23]2.3. PR #1587: 557 Add fn:unparsed-binary function + [24]2.4. PR #1961: Attempt to show that xsl:record allows extra attributes + [25]2.5. PR #1933: 1271 fn:xsd-validator() function + [26]2.6. PR #1956: 1954 (part) Private variables and functions don't need to be in the module namespace * [27]3. Any other business * [28]4. Adjourned Draft Minutes Summary of new and continuing actions [1/7] * [ ] QT4CG-082-02: DN to work with NW to come to agreement on the fn:ranks proposal * [ ] QT4CG-107-05: JLO and DN to consider a proposal for system defined records. * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "." in a ~%method~s. * [ ] 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 * [X] QT4CG-119-01: NW will add a bit of prose about * and then merge the PR 1961 * [ ] QT4CG-119-02: MK to add a note about how schema composition is done for multiple options 1. Administrivia 1.1. Roll call [10/13] Regrets: JWL * [X] David J Birnbaum (DB) * [X] Reece Dunn (RD) * [ ] Sasha Firsov (SF) * [X] Christian Gr¸n (CG) * [X] Joel Kalvesmaki (JK) * [X] Michael Kay (MK) * [X] Juri Leino (JLO) * [ ] John Lumley (JWL) * [X] Dimitre Novatchev (DN) * [X] Wendell Piez (WP) * [ ] Ed Porter (EP) * [X] Bethan Tovey-Walsh (BTW) * [X] Norm Tovey-Walsh (NW) Scribe. Chair. 1.2. Accept the agenda Proposal: Accept [29]the agenda. Accepted. 1.2.1. Status so far... These charts have been adjusted so they reflect the preceding six months of work. issues-open-2025-04-22.png Figure 1: "Burn down" chart on open issues issues-by-spec-2025-04-22.png Figure 2: Open issues by specification issues-by-type-2025-04-22.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 The next meeting is scheduled for 6 May 2025. JWL gives regrets. 1.5. Review of open action items [5/10] (Items marked [X] are believed to have been closed via email before this agenda was posted.) * [ ] QT4CG-082-02: DN to work with NW to come to agreement on the fn:ranks proposal * [ ] QT4CG-107-05: JLO and DN to consider a proposal for system defined records. * [ ] QT4CG-112-01: JLO to propose a concrete example that uses "." in a ~%method~s. * [X] QT4CG-113-02: NW to investigate a way to show extra attributes in the syntax summary. * [X] QT4CG-115-02: JWL to write a few tests for xsl:record * [ ] QT4CG-116-01: Add a specific error code for unsupported options on doc and doc-available * [X] QT4CG-116-03: NW to review the star/plus/delta symbols in the ToC. (See [31]1838) * [ ] QT4CG-118-01: MK to make an incorrect type raise an error in #1906 * [X] QT4CG-118-02: DN to open an issue about methods in records * [X] QT4CG-118-03: NW to make sure compose/chain and binary are on the agenda for next week 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]#1942: 37 Support sequence, array, and map destructuring declarations * PR [34]#1283: 77b Update expressions * PR [35]#1062: 150bis revised proposal for fn:ranks 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]#1950: 1704 Add rules/notes for BOM and related topics * PR [37]#1945: 1568 unicode case blind collation * PR [38]#1906: 1797 elements-to-maps-conversion-plan function 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 [39]#1844: Drop mapping arrow operator * Issue [40]#1416: Key-value pairs: built-in record type `pair` * Issue [41]#1319: Specification Documents: Editors and Contributors Proposal: close without further action Accepted. 1.6.4. Substantive PRs The following substantive PRs were open when this agenda was prepared. * PR [42]#1961: Attempt to show that xsl:record allows extra attributes * PR [43]#1959: 1953 (part) XSLT Worked example using methods to implement atomic sets * PR [44]#1956: 1954 (part) Private variables and functions don't need to be in the module namespace * PR [45]#1933: 1271 fn:xsd-validator() function * PR [46]#1894: Additional examples to fn:chain - in a new branch * PR [47]#1888: 366 xsl:package-location * PR [48]#1883: 882 Replace fn:chain by fn:compose * PR [49]#1587: 557 Add fn:unparsed-binary function 2. Technical agenda 2.1. Review of pull requests 2.2. PR #1883/1894: fn:chain and fn:compose Related PRs: * PR [50]#1883: 882 Replace fn:chain by fn:compose * PR [51]#1894: Additional examples to fn:chain - in a new branch Discussion: * MK: We have two reasonably well defined functions, fn:chain and fn:compose. They have a lot of overlapping functionality. Do we want chain, or compose, or both, or neither? + ... I think the amount of overlap is such that we don't want both. + ... fn:chain offers two things that compose doesn't: it applies the function in addition to returning it. + ... The other thing is that it handles functions with arity greater than one. * NW: Can you use partial function application to achieve chain with compose? * JLO: Yes, I think so. + ... I did implement a chain like functions, and handling the edge cases was very complicated and had difficult error cases. + ... I prefer compose for this reason. * DN: I want to thank MK for the analysis. If we just have to vote for this PR, I think the question is wrong. First, it is devisive. This is lose-lose. (Scribe failed to capture an analogy about user interfaces.) DN shares a comment from PR 1890. * DN: I have translated all of the fn:compose examples into fn:chain examples. + ... The statement that there's no real difference in capability is obviously wrong. + ... The statement that you have to know a lot about the functions you're chaining, is equally true for fn:compose. + ... You can use fn:chain with dynamic functions. + ... The example of how to replace something that uses chain with compose is complicated, ugly, and error prone. * DN: The claim that this breaks the principle of substitutability: if (function-arity($f) eq 1) then [ $x ] else if ($x instance of array(*)) then $x else array { $x } * DN: Is wrong. * DN: Having both functions would be redundant. Would that be bad? * RD: Would it make sense to have some analysis on the comparison of functionality between the two. + ... Where the functionality is the same, could we see side-by-side examples? + ... Where the functionality is different, see how those look? + ... And some examples of substitutibility? * MK: That post was my attempt to do that. + ... Do you return a function or also apply it? I don't think that's a very substantive difference. * RD: With returning a function you could cascade the application of compose or chain * MK: Yes. If the function applies the compose function, then you can do a partial application to prevent it, conversly, if it doesn't apply the function then you can easily apply it. * MK: The more substantive difference is whether you apply the capability of putting functions of arity greater than one into the chain. + ... That is a capability that adds some power but also adds a lot of complexity. My judgement in this particular case was that this wasn't worth it in this case. * DN: The convenience of chain is an important feature. * NW: These are functions that 1% of 1% will ever use, so convenience is among a small group. * CG: There are many languages that support fn:compose but none that support anything like fn:chain + ... DN are there any languages that support chain? * DN: I don't know of any, but I invented chain in response to the monstrous complexity of lambda functions that arose from our long operators. * BTW: I'm confused. It seems to me that MK has made a pull request ... shouldn't we just be discussing that. * MK: I'm not quite sure I'd express it that way. We do have four options. The intent of this PR was to express that we should have fn:compose instead of fn:chain, but if the will of the group is to go another way, we can do that. * JLO: There's another side effect of this PR. I think the pipeline operator is a better chain. * DN: We should be asked four questions instead of one. Some discussion of the status quo. * RD: In terms of compose, that's similar to other language features, it would be good to add. I'm less sure about chain. Straw poll: Option Votes fn:chain (only) 0 fn:compose (only) 6 both 3 neither 0 We'll come back to this next week for a short discussion and then some resolution. 2.3. PR #1587: 557 Add fn:unparsed-binary function See PR [52]#1587 * NW: What's left to do on this one? * MK: This has been dormant for a while. Proposal: merge this PR? Accepted. 2.4. PR #1961: Attempt to show that xsl:record allows extra attributes See PR [53]#1961 * NW: This was my attempt to address an action. * MK: Looks okay to me. Proposal: merge this PR? Accepted. ACTION: QT4CG-119-01: NW will add a bit of prose about * and then merge the PR 1961 2.5. PR #1933: 1271 fn:xsd-validator() function See PR [54]#1933 MK introduces the design of the new function. * MK: It allows you to compose the schema through any of a variety of components. * MK: If you ask for a binary answer, you don't have to have compatible type annotations. * MK: The validation function returns a map. * MK: Information about URIs and line and column numbers isn't in the data model but the implementation my be able to provide it. * JK: What are the rules if you populate all five of the options? * MK: You use them all and taken together they must provide a valid schema. * JK: It might be good to put a note in about this. ACTION: QT4CG-119-02: MK to add a note about how schema composition is done for multiple options Some discussion of how XML Schema defines schemas and schema composition. * JLO: Is this marked as being part of a schema aware processor? * MK: The F&O spec doesn't have conformance profiles. Instead, it says it's a dynamic error. Some discussion of whether this could or should be a static error instead. Proposal: merge this PR? Accepted. 2.6. PR #1956: 1954 (part) Private variables and functions don't need to be in the module namespace See PR [55]#1956 * MK: This removes a restriction that never seemed necessary. + ... It replaces it with a new rule about public names. * MK: This was triggered by the fact that I tried to make an example and I tripped over it. * CG: If you have variables, you don't need a namespace at all. * MK: Right. * JLO: Can I have a function called foo()? (Not in a namespace.) Can you now use local in libraries? * MK: Yes. Proposal: merge 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/04-29.html#minutes 7. https://qt4cg.org/meeting/minutes/2025/04-29.html#new-actions 8. https://qt4cg.org/meeting/minutes/2025/04-29.html#administrivia 9. https://qt4cg.org/meeting/minutes/2025/04-29.html#roll-call 10. https://qt4cg.org/meeting/minutes/2025/04-29.html#agenda 11. https://qt4cg.org/meeting/minutes/2025/04-29.html#so-far 12. https://qt4cg.org/meeting/minutes/2025/04-29.html#approve-minutes 13. https://qt4cg.org/meeting/minutes/2025/04-29.html#next-meeting 14. https://qt4cg.org/meeting/minutes/2025/04-29.html#open-actions 15. https://qt4cg.org/meeting/minutes/2025/04-29.html#open-pull-requests 16. https://qt4cg.org/meeting/minutes/2025/04-29.html#blocked 17. https://qt4cg.org/meeting/minutes/2025/04-29.html#merge-without-discussion 18. https://qt4cg.org/meeting/minutes/2025/04-29.html#close-without-action 19. https://qt4cg.org/meeting/minutes/2025/04-29.html#substantive 20. https://qt4cg.org/meeting/minutes/2025/04-29.html#technical-agenda 21. https://qt4cg.org/meeting/minutes/2025/04-29.html#technical-prs 22. https://qt4cg.org/meeting/minutes/2025/04-29.html#h-92337C4E-B551-4176-894D-E6A787B9E12D 23. https://qt4cg.org/meeting/minutes/2025/04-29.html#h-B25410B2-D4A6-4B55-AA44-77E8AA6C14C9 24. https://qt4cg.org/meeting/minutes/2025/04-29.html#h-FE13E29E-5866-4DB5-AC9F-5B0CE37301FC 25. https://qt4cg.org/meeting/minutes/2025/04-29.html#h-939C55CA-BED8-44BF-A411-57FDCD93ABE6 26. https://qt4cg.org/meeting/minutes/2025/04-29.html#h-2CEE8E12-133A-47BB-80AC-EBAD41C0B383 27. https://qt4cg.org/meeting/minutes/2025/04-29.html#any-other-business 28. https://qt4cg.org/meeting/minutes/2025/04-29.html#adjourned 29. https://qt4cg.org/meeting/agenda/2025/04-29.html 30. https://qt4cg.org/meeting/minutes/2025/04-22.html 31. https://github.com/qt4cg/qtspecs/pull/1838#issuecomment-2682372207 32. https://qt4cg.org/meeting/minutes/2025/04-29.html#technical-agenda 33. https://qt4cg.org/dashboard/#pr-1942 34. https://qt4cg.org/dashboard/#pr-1283 35. https://qt4cg.org/dashboard/#pr-1062 36. https://qt4cg.org/dashboard/#pr-1950 37. https://qt4cg.org/dashboard/#pr-1945 38. https://qt4cg.org/dashboard/#pr-1906 39. https://github.com/qt4cg/qtspecs/issues/1844 40. https://github.com/qt4cg/qtspecs/issues/1416 41. https://github.com/qt4cg/qtspecs/issues/1319 42. https://qt4cg.org/dashboard/#pr-1961 43. https://qt4cg.org/dashboard/#pr-1959 44. https://qt4cg.org/dashboard/#pr-1956 45. https://qt4cg.org/dashboard/#pr-1933 46. https://qt4cg.org/dashboard/#pr-1894 47. https://qt4cg.org/dashboard/#pr-1888 48. https://qt4cg.org/dashboard/#pr-1883 49. https://qt4cg.org/dashboard/#pr-1587 50. https://qt4cg.org/dashboard/#pr-1883 51. https://qt4cg.org/dashboard/#pr-1894 52. https://qt4cg.org/dashboard/#pr-1587 53. https://qt4cg.org/dashboard/#pr-1961 54. https://qt4cg.org/dashboard/#pr-1933 55. https://qt4cg.org/dashboard/#pr-1956 Be seeing you, norm -- Norm Tovey-Walsh Saxonica
Received on Tuesday, 29 April 2025 16:38:35 UTC