- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 14 Jul 2026 19:06:09 +0100
- To: public-xslt-40@w3.org
Here are the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2026/07-14.html
QT4 CG Meeting 172 Minutes 2026-07-14
[1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
Pull Requests
Table of Contents
* [6]Summary of new and continuing actions [0/9]
* [7]Draft Minutes
* [8]1. Administrivia
+ [9]1.1. Roll call [7/11]
+ [10]1.2. Accept the agenda
+ [11]1.3. Approve minutes of the previous meeting
+ [12]1.4. Next meeting
+ [13]1.5. Review of open action items [1/9]
+ [14]1.6. Review of open pull requests and issues
o [15]1.6.1. Blocked
o [16]1.6.2. Merge without discussion
o [17]1.6.3. Close without action
o [18]1.6.4. Substantive PRs
* [19]2. Technical agenda
+ [20]2.1. PR #2784: 2783 fn:pad-string
+ [21]2.2. PR #2778: 2641b Add support for CSV comments
+ [22]2.3. PR #2777: 2644 Extend casts to sequences, arrays,
maps, and records
+ [23]2.4. PR #2768: 2740 Drop constructor functions from
built-in records
+ [24]2.5. PR #2767: 2750 Make fn:unparsed-text, ...
nondeterministic
+ [25]2.6. PR #2761: 2758 Add rules for visibility of named
types across packages
+ [26]2.7. PR #2760: 2521 URIs: unify handling of fragment
identifiers
+ [27]2.8. PR #2757: 2569 Rules for unprefixed function calls
with explicit default function ns
+ [28]2.9. PR #2713: 2257 Record declarations without namespace
* [29]3. Any other business
Summary of new and continuing actions [0/9]
* [ ] QT4CG-143-02: MK to try to recover the ability to extract
formal equivalences into tests
* [ ] QT4CG-167-02: MK to make a PR for #2591, grammar for
step?lookup is invalid
* [ ] QT4CG-167-03: NW to make a PR for #2482, fallback on
bin:decode-string
* [ ] QT4CG-167-05: MK to write a proposal to change #2393 so the
functions return JNodes
* [ ] QT4CG-167-07: NW to review tests for interpolated strings with
edge cases in mind
* [ ] QT4CG-167-08: MK to review the state of #1949 to see which
items are still outstanding.
* [ ] QT4CG-167-09: NW to close all "nice to have" issues at the end
of October if they haven't progressed
* [ ] QT4CG-170-01: RD to draft a proposal that attempts to address
the lexical issues differently.
* [ ] QT4CG-172-01: MK to check if the XSLT rules are consistent with
the rules in #2757.
Draft Minutes
1. Administrivia
1.1. Roll call [7/11]
JWL, BTW, WP give regrets.
* [X] David J Birnbaum (DB)
* [ ] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [X] Juri Leino (JLO)
* [ ] John Lumley (JWL)
* [X] Alan Painter (AP)
* [ ] Wendell Piez (WP)
* [ ] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [30]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [31]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is planned for 21 July.
No regrets heard
1.5. Review of open action items [1/9]
* [ ] QT4CG-143-02: MK to try to recover the ability to extract
formal equivalences into tests
* [X] QT4CG-167-01: DB to write a PR for #2641, comments in CSV
+ Overtaken by events, see [32]#2778.
* [ ] QT4CG-167-02: MK to make a PR for #2591, grammar for
step?lookup is invalid
* [ ] QT4CG-167-03: NW to make a PR for #2482, fallback on
bin:decode-string
* [ ] QT4CG-167-05: MK to write a proposal to change #2393 so the
functions return JNodes
* [ ] QT4CG-167-07: NW to review tests for interpolated strings with
edge cases in mind
* [ ] QT4CG-167-08: MK to review the state of #1949 to see which
items are still outstanding.
* [ ] QT4CG-167-09: NW to close all "nice to have" issues at the end
of October if they haven't progressed
* [ ] QT4CG-170-01: RD to draft a proposal that attempts to address
the lexical issues differently.
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 [33]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 [34]#2594: 2389 Adaptive Serialization: more freedom
* PR [35]#2350: 708 An alternative proposal for generators
* PR [36]#2247: 716 Deferred Evaluation in XPath - the f:generator
record
* PR [37]#2160: 2073 data model changes for JNodes and Sequences
* PR [38]#2071: 77c deep update
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 [39]#2782: 2781b XQFO: outdated examples
* PR [40]#2779: 2781a Fix parsing errors in F&O and XQuery specs
* PR [41]#2771: 2769 Clarify repeatability of
random-number-generator() results
Proposal: accept 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 [42]#2315: Optimization of the workflow action checkout
* Issue [43]#2299: Make the pipe-like operators left associative and
have the same precedence
Proposal: close with no further action.
Accepted.
1.6.4. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [44]#2784: 2783 fn:pad-string
* PR [45]#2778: 2641b Add support for CSV comments
* PR [46]#2777: 2644 Extend casts to sequences, arrays, maps, and
records
* PR [47]#2776: 2769 repeatability of rng next
* PR [48]#2768: 2740 Drop constructor functions from built-in records
* PR [49]#2767: 2750 Make fn:unparsed-text, ... nondeterministic
* PR [50]#2761: 2758 Add rules for visibility of named types across
packages
* PR [51]#2760: 2521 URIs: unify handling of fragment identifiers
* PR [52]#2757: 2569 Rules for unprefixed function calls with
explicit default function ns
* PR [53]#2739: 2738 XSLT - tree terminology
* PR [54]#2734: 2733 A step too far
* PR [55]#2719: 1234 Serialization Parameters: Indentation,
Whitespace, Newlines
* PR [56]#2715: 2653 FLWOR, member/key/value clauses: allow sequences
* PR [57]#2714: 2219 Generalize method calls to sequences
* PR [58]#2713: 2257 Record declarations without namespace
* PR [59]#2712: 2702 Dynamic node tests
* PR [60]#2707: 1962 fn:map-to-element
* PR [61]#2696: 2695 Apply templates to maps, arrays, and JNodes
2. Technical agenda
I've put a few new PRs at the top, then the previous ones in the same
order as last week.
2.1. PR #2784: 2783 fn:pad-string
See PR [62]#2784
CG introduces the PR.
* CG: Allows you to pass any atomic, so you can use it to pad
numbers.
* MK: I made a comment about atomization; if you supply a node whose
typed value is an integer or decimal, you're going to lose any
trailing zeros. I'm not sure that's intuitive behavior.
* CG: How does fn:string-join handle this?
* MK: Yes, it does have the same problem. But I guess it's
consistent.
* JLO: Is it worth nothing that you shouldn't allow a zero-width
space character.
* NW: I think that'll just do the thing.
* JK: I proposed changing the key word "fill" to "padding" so that
it's clearly a noun.
* CG: Sounds good to me.
* MK: An observation on the error conditions; I think you'l get a
type error if the side is not a valid member of the enum. So the
extra error condition isn't necessary.
Proposal: accept the PR.
CG will make the two fixes suggested and merge the PR.
2.2. PR #2778: 2641b Add support for CSV comments
See PR [63]#2778
MK introduces the PR. It had to be rewritten in the light of other
changes to CSV.
MK reviews the new section 17.5.3 Comments.
* MK: I also fixed a bug where we forgot to say that the field
delimiter must not be a newline.
* AP: If I want to have the first character in the first column, that
I have to quote it?
NW observes that DB is not an "external contributor"! :-)
MK: If you're going to enable comments, choose a character that doesn't
occur in the data. But yes, you could quote it.
Proposal: accept the PR.
Accepted.
2.3. PR #2777: 2644 Extend casts to sequences, arrays, maps, and records
See PR [64]#2777
* MK: The PR extends casts to all the collective data types.
+ ... The proposed rules just use cast recursively.
* MK: A CastTarget is expanded to include AnyItemType,
TypedArrayType, etc.
+ ... There's a bit of an issue with AnyItemType at the top
level, but it's needed to be consistent with recursion.
MK reviews the rules. They've been restructured a bit.
* MK: For backwards compatibility, for casting to list types, we
don't constrain the result by the occurrence indicator.
* MK: There's one other significant change; we used to say that if
the input to castable can't be atomized, you get an error. Now you
get false.
* MK: CG raised a comment: if you have a type for a field in your
record that isn't a valid cast target, then you can't do the cast
at all.
+ ... Having one field like that rules the thing out.
+ ... I introduced item() to deal with that, but it isn't an
adequate solution.
+ CG's suggestion seems like a better way forward.
MK to revise resubmit.
2.4. PR #2768: 2740 Drop constructor functions from built-in records
See PR [65]#2768
* CG: We discussed this last week and MK provided some feedback.
+ ... I've tried to ceate a new version. But it's failing at the
moment.
* NW: Try restarting the job?
* CG: I did. Twice. Same fail.
* CG: Maybe it's better to look at MK's comment.
* MK: I noticed after making that comment that named item types if
they are records do have a constructor function.
+ ... I think we need to have another attempt to bring together
named item types and named record types.
* CG: We use the record constructor functions a lot for user defined
record types.
+ ... But that doesn't mean it needs to stay that way.
* MK: I'm not suggesting removing them, but ...
Let's do some more work on this. We're digging ourselves into a hole
here.
2.5. PR #2767: 2750 Make fn:unparsed-text, ... nondeterministic
See PR [66]#2767
CG reviews the PR.
* CG: How do we tackle the potential backwards incompatibility?
+ ... We could say this is changed in 4.0, or we have to try to
keep it compatible.
* MK: I'm reasonably comfortable making that incompatibility change.
* NW: That seems fine to me as well.
* JK: In 3.0, 3.1 people thought this was deterministic but it
wasn't.
* MK: I'd have to check to be sure.
* JK: That observation might be useful in the
backwards-incompatibility note.
Proposal: accept the PR.
Accepted.
2.6. PR #2761: 2758 Add rules for visibility of named types across packages
See PR [67]#2761
* MK: We had all the required syntax in place to say if declared
types were public or private, or whatever.
+ ... But we didn't have any text describing the samantics.
+ ... They're fairly intutive, but ...
* MK: One decision that has to be made is, are types "components".
+ ... I decided not to. There's a lot of stuff about components
refering to other components, etc. and that doesn't apply to
types.
* MK: They aren't components, but they behave a bit like components.
+ ... So I slightly fudged it.
MK reviews the semantics in 3.4.7.
* MK: The rules for schema types are generalized accordingly.
* JLO: It wasn't clear to me what happens if I have a type that is
private to my package but I expose a function that returns that
type.
* MK: You can still call the function; if the type in question is a
choice type, then you can call it with either of the things in the
choice.
+ ... Even though the name of the choice type is not visible to
you.
You can't see the name, but you can still manipulate it like a record.
Proposal: accept the PR.
Accepted.
2.7. PR #2760: 2521 URIs: unify handling of fragment identifiers
See PR [68]#2760
* CG: I think there's nothing new.
Wait until we've discussed [69]#2786, my issue about fragment
identifiers.
2.8. PR #2757: 2569 Rules for unprefixed function calls with explicit default
function ns
See PR [70]#2757
* CG: Gunther observed that the rule about unprefixed function calls
made the rules about lookup more complex.
+ ... I think if the user has defined a default function
namespace, we don't have to do lookup.
* CG: This proposal implements that.
CG reviews the rules proposed.
ACTION QT4CG-172-01: MK to check if the XSLT rules are consistent with
the rules in #2757.
Proposal: accept the PR.
Accepted.
2.9. PR #2713: 2257 Record declarations without namespace
See PR [71]#2713
* CG: When you write scripts, you want to declare records without a
prefix.
+ ... This PR attempts to define rules for that.
CG reviews the rules.
* CG: This would certainly make simple scripts easier to write.
* MK: We're going for rules that are simple for people who haven't
read them.
+ ... Actually understanding these rules is terribly complex.
* JLO: I think this is useful.
Proposal: accept the PR.
Accepted.
3. Any other business
The pr-archives repository exists:
[72]https://github.com/qt4cg/pr-archive/actions
If you check it out and open the index.html file at the top level, you
should see all the PRs. You probably have to use a webserver.
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/2026/07-14.html#new-actions
7. https://qt4cg.org/meeting/minutes/2026/07-14.html#minutes
8. https://qt4cg.org/meeting/minutes/2026/07-14.html#administrivia
9. https://qt4cg.org/meeting/minutes/2026/07-14.html#roll-call
10. https://qt4cg.org/meeting/minutes/2026/07-14.html#agenda
11. https://qt4cg.org/meeting/minutes/2026/07-14.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2026/07-14.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2026/07-14.html#open-actions
14. https://qt4cg.org/meeting/minutes/2026/07-14.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2026/07-14.html#blocked
16. https://qt4cg.org/meeting/minutes/2026/07-14.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2026/07-14.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2026/07-14.html#substantive
19. https://qt4cg.org/meeting/minutes/2026/07-14.html#technical-agenda
20. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2784
21. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2778
22. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2777
23. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2768
24. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2767
25. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2761
26. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2760
27. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2757
28. https://qt4cg.org/meeting/minutes/2026/07-14.html#pr-2713
29. https://qt4cg.org/meeting/minutes/2026/07-14.html#any-other-business
30. https://qt4cg.org/meeting/agenda/2026/07-14.html
31. https://qt4cg.org/meeting/minutes/2026/07-07.html
32. https://qt4cg.org/dashboard/#pr-2778
33. https://qt4cg.org/meeting/minutes/2026/07-14.html#technical-agenda
34. https://qt4cg.org/dashboard/#pr-2594
35. https://qt4cg.org/dashboard/#pr-2350
36. https://qt4cg.org/dashboard/#pr-2247
37. https://qt4cg.org/dashboard/#pr-2160
38. https://qt4cg.org/dashboard/#pr-2071
39. https://qt4cg.org/dashboard/#pr-2782
40. https://qt4cg.org/dashboard/#pr-2779
41. https://qt4cg.org/dashboard/#pr-2771
42. https://github.com/qt4cg/qtspecs/issues/2315
43. https://github.com/qt4cg/qtspecs/issues/2299
44. https://qt4cg.org/dashboard/#pr-2784
45. https://qt4cg.org/dashboard/#pr-2778
46. https://qt4cg.org/dashboard/#pr-2777
47. https://qt4cg.org/dashboard/#pr-2776
48. https://qt4cg.org/dashboard/#pr-2768
49. https://qt4cg.org/dashboard/#pr-2767
50. https://qt4cg.org/dashboard/#pr-2761
51. https://qt4cg.org/dashboard/#pr-2760
52. https://qt4cg.org/dashboard/#pr-2757
53. https://qt4cg.org/dashboard/#pr-2739
54. https://qt4cg.org/dashboard/#pr-2734
55. https://qt4cg.org/dashboard/#pr-2719
56. https://qt4cg.org/dashboard/#pr-2715
57. https://qt4cg.org/dashboard/#pr-2714
58. https://qt4cg.org/dashboard/#pr-2713
59. https://qt4cg.org/dashboard/#pr-2712
60. https://qt4cg.org/dashboard/#pr-2707
61. https://qt4cg.org/dashboard/#pr-2696
62. https://qt4cg.org/dashboard/#pr-2784
63. https://qt4cg.org/dashboard/#pr-2778
64. https://qt4cg.org/dashboard/#pr-2777
65. https://qt4cg.org/dashboard/#pr-2768
66. https://qt4cg.org/dashboard/#pr-2767
67. https://qt4cg.org/dashboard/#pr-2761
68. https://qt4cg.org/dashboard/#pr-2760
69. https://github.com/qt4cg/qtspecs/issues/2786
70. https://qt4cg.org/dashboard/#pr-2757
71. https://qt4cg.org/dashboard/#pr-2713
72. https://github.com/qt4cg/pr-archive/actions
--
Norm Tovey-Walsh
CEO, Saxonica
Received on Tuesday, 14 July 2026 18:06:17 UTC