- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 18 Mar 2025 17:49:55 +0000
- To: public-xslt-40@w3.org
Hello,
Here’s the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2025/03-18.html
QT4 CG Meeting 114 Minutes 2025-03-18
[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/4]
* [8]1. Administrivia
+ [9]1.1. Roll call [11/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 [2/7]
+ [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
* [19]2. Technical agenda
+ [20]2.1. Review of pull requests
o [21]2.1.1. PR #1877: 1866 Disambiguate TypeSpecifier
syntax
o [22]2.1.2. PR #1882: 982 Editorial rewrite of scan-left
and scan-right
o [23]2.1.3. PR #1879: 1857, 1860: Add more options to
parse-xml
o [24]2.1.4. PR #1856: 998 Add boundary and
lookahead/behind assertions
o [25]2.1.5. PR #1867: 1341 Drop position from fold
callbacks
o [26]2.1.6. PR #1883: 882 Replace fn:chain by fn:compose
* [27]3. Any other business
* [28]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/4]
* [ ] 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-110-04: JK to consider a PR for #366, xsl:use-package
with xsl:package-location
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
in the syntax summary.
1. Administrivia
1.1. Roll call [11/13]
Regrets: BTW.
* [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)
* [X] John Lumley (JWL)
* [X] Dimitre Novatchev (DN)
* [X] Wendell Piez (WP)
* [X] Ed Porter (EP)
* [ ] 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-03-18.png
Figure 1: "Burn down" chart on open issues
issues-by-spec-2025-03-18.png
Figure 2: Open issues by specification
issues-by-type-2025-03-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
The next meeting is scheduled for 25 March 2025.
Note: The QT4CG meeting is scheduled on UK/European civil time. The
United States switched to daylight saving time on 9 March 2025, so the
meeting of 25 March will be one hour later there (12:00 EDT, 09:00 PDT)
until the UK/Europe also switches (on 30 March 2024).
No regrets heard.
1.5. Review of open action items [2/7]
(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-110-04: JK to consider a PR for #366, xsl:use-package
with xsl:package-location
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [X] QT4CG-113-01: MK to make a PR to drop the position callback on
fold-left/fold-right
* [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
in the syntax summary.
* [X] QT4CG-113-03: JWL to consider shadow attributes and all the
other standard attributes on xsl:record.
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 [31]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 [32]#1283: 77b Update expressions
* PR [33]#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 [34]#1880: Editorial revision of fn:function-identity
* PR [35]#1878: 1851 Make ?variety optional; explain
namespace-sensitive
* [DEL: PR [36]#1875: 1861 Params passed automatically through
next-match :DEL]
* PR [37]#1873: 1869 duplicate values
Proposal: Merge without discussion, except for #1875
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]#1863: add \U \u L \u \E to replace() (case conversion)
Proposal: Close without any further action.
Accepted.
2. Technical agenda
2.1. Review of pull requests
2.1.1. PR #1877: 1866 Disambiguate TypeSpecifier syntax
See PR [39]#1877
I was tempted to mark this one merge-without-discussion, but let's see
if we all agree on the proposed syntactic change.
Proposal: Accepted.
2.1.2. PR #1882: 982 Editorial rewrite of scan-left and scan-right
See PR [40]#1882
I was tempted to mark this one merge-without-discussion, but there's an
open comment on the PR (but not an especially substantive one, AFAICT).
* MK: I thought that scan-left and scan-right should be in the same
style.
* CG: The simple map operator doesn't have a formal equivalent.
* MK: Yes, reducing the number of constructs is usefull
Some discussion of other primitives; we're using for-each a lot.
* MK: Aspirationally, I'd like to get the equivalents to be on
primitives in the data model.
* DN: Speaking of primitives; for-each can be expressed using
fold-left or fold-right.
* MK: Or recursion.
Proposal: Accepted, without futher edits.
Accepted.
2.1.3. PR #1879: 1857, 1860: Add more options to parse-xml
See PR [41]#1879
I was tempted to mark this one merge-without-discussion, but some brief
discussion of entity-expansion-limit may be in order.
* MK: I did a revision in the light of the comment on
entity-expansion-limit.
MK reviews the options on fn:parse-xml().
* NW: Expanding an external entity can change the base URI for
entities within that entity...but I don't think anyone is likely to
misread that.
* NW: Many XPointer schemes aren't supportable by a streaming
implementation in the parser.
* JLO: What do you do if you have an override? Is it then an error?
* MK: I think we should leave it up to the implementation.
* WP: Thank you, this is awesome. Point of clarification, numeric
character references are also allowed (even if entity expansion is
allowed).
+ ... It might also be nice to have some examples.
* MK: There's always room for more tutorial material.
* RD: Should we put a note in about potential security issue? One of
the reasons to limit entity expansion is to prevent malicious
"billion laughs" attacks.
* NW: I'm reluctant.
* WP: I don't think we should explain how to attack the parser.
* RD: A caution on setting the limit too high.
* CG: I would agree that if you're looking for entity expansion limit
on the web, you'll find lots of answers.
Proposal: Accept this PR.
Accepted.
2.1.4. PR #1856: 998 Add boundary and lookahead/behind assertions
See PR [42]#1856
MK introduces the PR.
* MK: This PR basically replaces the whole regular expression section
with a new one.
* MK: We now have a processing model for regular expressions that
allows us to define some terms.
+ ... Some attempt to standardize terminology for capture groups
and capturing subexpressions.
The rules for regular expression matching in different libraries are
often incompletely specified. It's possible that the rules here aren't
precisely the same as other libraries.
* MK: The constraint on lookbehind is stronger than some, but it
means you don't have to backtrack.
* MK: The flags are unchanged; the semantics of some of the functions
has been clarified.
* MK: Functions like fn:tokenize() now allow the regular expression
to match a zero-length string and define rules for what it means.
+ ... It's common to split a string into characters if the regex
matches the zero length strings. But, again, there's lots of
variation in the libraries.
* RD: Do we specify a minimum version of Unicode? That will effect
what the character classes match and what languages are available.
* MK: I think we recommend implementations to support the latest, but
we don't impose any constraints.
Some discussion of whether we should impose a constraint.
* RD: Would it be worth adding a note that the Unicode group matching
is dependent on the version of Unicode.
* MK: We probably get some of that from XSD 1.1.
* JK: I'm grateful, this must have been a lot of work.
* JLO: I really like the changes; my only question is what lead to
the decision to split on space instead of between characters when
the string is a zero length.
* MK: That's not new; tokenize with no regular expression was already
defined in 3.1 to split on space boundaries.
Some discussion of how to split; the empty string will work.
* RD: Could the grammar be written in the same style as the XPath 3.1
grammar?
* MK: Yes. The semantics of having more than one grammar might be a
bit tricky.
* RD: Don't we have that with XSLT?
* MK: No, there's only one grammar in the document.
* JWL: Where is the other grammar in F&O? The grammars for XPath
don't appear in here.
Proposal: Accept this PR.
Accepted.
2.1.5. PR #1867: 1341 Drop position from fold callbacks
See PR [43]#1867
* MK: The main thing to be aware of is that it involved changing a
number of the formal expansions of other functions. For example,
fn:replicate is no longer easily defined in terms of fn:fold-left.
Proposal: Accept this PR.
Accepted.
2.1.6. PR #1883: 882 Replace fn:chain by fn:compose
See PR [44]#1883
MK introduces the PR and reviews the examples.
* MK: One key difference is that the this function is going to be
most useful when it's going to be reused.
* MK: I was most motivated by the use of the compose in a callback
function.
* MK: It's simpler than fn:chain, it returns a function rather than
applying the function and it doesn't handle the complexity of
handling functions with arities other than one.
* DN: I fully approve of fn:compose, but I think there's a
questionable thing as well.
+ ... There's no way to compare fn:compose to fn:chain. The
fn:chain function provides more functionality than fn:compose
in every case.
+ ... There is a difference of quality here.
+ ... One of the main differences, one of the things that
fn:chain provides, is the ability to have multiple arguments.
+ ... In fn:chain, there are 25 examples and in 8 of them,
there's a function with arity greater than one.
+ ... One might say that such functionality is rarely used. But
that's like saying an airplane is rarely used. That's true,
but it's very useful.
* JLO: I am not a fan of fn:chain and I'd be happy with just
fn:compose.
There's a typo in the last example: "let".
* JLO: Trying to combine functions with variable arity using fn:chain
has a lot of edge cases. I like this better.
* MK: My main thinking on this was that if you know statically what
functions you want to call, it's very easy to compose them using
the arrow operator. The case for the compose function is when you
have dynamic functions to compose. With fn:chain as it's currently
defined, you have to know what the arities are so it's hard to find
examples of creating a completely flexible function chain. I found
that logic complex; it's going to sometimes work, but I found it
frustrating.
+ ... I also trying to exercise some discipline, removing
something to prevent duplication.
* RD: Would it be possible to restrict fn:compose to functions of the
same arity.
Discussion to continue.
3. Any other business
Should we revisit EXPath Archive?
* MK: I'm concerned about our workload.
* CG: Some concerns as MK, I'd like to spend time on it, but I want
to do some other things first.
* WP: Is there overlap with XProc?
* NW: I'm not sure.
* JWL: I can convert it to the new system and we can decide if we
want to do it.
+ ... There is work to be done; it isn't just a matter of
updating the spec.
+ ... We'd need an implementor.
Consensus does not seem to be for taking this work on now.
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/03-18.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/03-18.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/03-18.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/03-18.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/03-18.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/03-18.html#so-far
12. https://qt4cg.org/meeting/minutes/2025/03-18.html#approve-minutes
13. https://qt4cg.org/meeting/minutes/2025/03-18.html#next-meeting
14. https://qt4cg.org/meeting/minutes/2025/03-18.html#open-actions
15. https://qt4cg.org/meeting/minutes/2025/03-18.html#open-pull-requests
16. https://qt4cg.org/meeting/minutes/2025/03-18.html#blocked
17. https://qt4cg.org/meeting/minutes/2025/03-18.html#merge-without-discussion
18. https://qt4cg.org/meeting/minutes/2025/03-18.html#close-without-action
19. https://qt4cg.org/meeting/minutes/2025/03-18.html#technical-agenda
20. https://qt4cg.org/meeting/minutes/2025/03-18.html#technical-prs
21. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1877
22. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1882
23. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1879
24. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1856
25. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1867
26. https://qt4cg.org/meeting/minutes/2025/03-18.html#pr-1883
27. https://qt4cg.org/meeting/minutes/2025/03-18.html#any-other-business
28. https://qt4cg.org/meeting/minutes/2025/03-18.html#adjourned
29. https://qt4cg.org/meeting/agenda/2025/03-11.html
30. https://qt4cg.org/meeting/minutes/2025/03-11.html
31. https://qt4cg.org/meeting/minutes/2025/03-18.html#technical-agenda
32. https://qt4cg.org/dashboard/#pr-1283
33. https://qt4cg.org/dashboard/#pr-1062
34. https://qt4cg.org/dashboard/#pr-1880
35. https://qt4cg.org/dashboard/#pr-1878
36. https://qt4cg.org/dashboard/#pr-1875
37. https://qt4cg.org/dashboard/#pr-1873
38. https://github.com/qt4cg/qtspecs/issues/1863
39. https://qt4cg.org/dashboard/#pr-1877
40. https://qt4cg.org/dashboard/#pr-1882
41. https://qt4cg.org/dashboard/#pr-1879
42. https://qt4cg.org/dashboard/#pr-1856
43. https://qt4cg.org/dashboard/#pr-1867
44. https://qt4cg.org/dashboard/#pr-1883
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 18 March 2025 17:50:03 UTC