- 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