@qt4cg statuses
This page displays recent status updates about the QT4CG project.
The are also captured in an RSS feed.
By year: 2026, 2025, 2024, 2023, 2022, 2021, 2020
QT4 CG meeting 173 draft agenda #agenda-07-21
Draft agenda published.
Pull request #2800 created #created-2800
2799 fn:slice: negative steps
Closes #2799
Issue #2799 created #created-2799
`fn:slice`: negative step with default start/end returns empty sequence
Users from other Python may want to use fn:slice to revert a sequence. Reversal works if you supply both bounds:
slice((1, 2, 3, 4, 5), 5, 1, -1)
…but if you omit start and end, you get the empty sequence:
slice((1, 2, 3, 4, 5), step := -1)
I think this can easily be fixed without changing the existing behavior of the function. I’ll write a PR.
Issue #2798 created #created-2798
Handling of named captured groups by `fn:analyze-string`
Should we output <group nr="1"/> (with the group number) or perhaps <group name="n"/> (with the group name) or perhaps <group name="n" nr="1"/> (with both)?
Pull request #2797 created #created-2797
2699 fn:element-to-map: validation
Closes #2699
Pull request #2796 created #created-2796
2352 Trusted execution: clarifications
Closes #2352
The security feature “trusted” controls whether running code is allowed to reach external resources (like files or web documents). The same word trusted was being used for two different things, which was confusing:
- Who is running: is the code itself trusted? (This one stays unchanged)
- What a parse may fetch: when reading an XML document, may it also pull in extra linked things like external entities, a DTD, or XInclude content? (I renamed this one to
trust-external).
In addition, I tried to clear up loose ends:
- It says plainly that “code” is trusted (not “documents”).
- it adds the missing rule for who is trusted by default: a query you run yourself is trusted; code loaded indirectly (via
fn:load-xquery-module, etc.) is not. - I clarified that untrusted code cannot grant itself access just by setting the option (access needs both trusted code and the option).
- Cleanups
Pull request #2795 created #created-2795
2338 Nomenclature: node(), gnode(), xnode()
Closes #2338
90% mechanical, but it also includes substantial prose.
The editing of the XSLT spec may be incomplete. For example, it still needs to formally state what the node() pattern matches now that node() means any node.
Pull request #2794 created #created-2794
2748 CSV Serialization
Closes #2748
90% copy & paste; the relevant contents are in the serialization spec.
I anticipated the integration of the line-ending parameter of #1234 (however the exact syntax will look like).
Pull request #2793 created #created-2793
2729 fn:replace: named groups (+other regex functions)
Close #2729
Pull request #2792 created #created-2792
2790 fn:pad-string, truncation
I hope it’s less ambiguous now. Closes #2790 No extra QT4 tests needed (the PR contains two new examples).
Issue #2791 created #created-2791
Cross-document links to XDM 4.0 definitions go to overview instead of specific target
Starting from https://qt4cg.org/specifications/xpath-functions-40/Overview.html, use "find in page" in the browser to find the text entry orderDM. It's a link on the phrase "entry order". The link target is https://qt4cg.org/specifications/xpath-datamodel-40/Overview.html#dt-entry-order, but clicking the link goes to Overview.html as a whole instead of the definition of entry order.
Same for function itemDM or GNodeDM, which goes to Overview.html instead of the definition of function item or absent, respectively.
Some links go to their specific definitions in other specifications as expected, e.g., do "find in page" on digitXP or absentDM31. Maybe the XDM 4.0 specification is the problem?
Issue #2790 created #created-2790
Truncation of fill string in fn:pad-string()
Given pad-string("x", 5, {"fill": "0123456789", "side":"start"})
I don't think it's obvious from the spec whether the expected result is 0123x or 6789x (the latter seems preferable to me).
It's even less obvious with side:both.
There don't seem to be any examples that use a multi-character fill string.
Pull request #2789 created #created-2789
2787 XQuery changes to merge declare record and declare type
Now that "declare type" produces constructor functions, there is no longer any good reason to preserve the overlapping functionality of "declare type" and "declare record".
This PR currently makes the XQuery changes to merge these constructs; I intend to make similar changes for XSLT.
Along the way, there are some other minor changes:
- The definition of Constant now allows the empty sequence, ()
- The initialiser defining the default value of a field in a record type must be a Constant
- The default value for a field is used in coercion from maps to record types as well as in constructor functions
- Creating a constructor function for a named type is optional, by explicit request
- Constructor functions can be created for a record type even if its field names are not all NCNames
- The rule that coercion from maps to record types doesn't allow extraneous fields in the map is now explicit. We seem to have somehow referred to this rule without actually defining it.
QT4 CG meeting 172 draft minutes #minutes-07-14
Draft minutes published.
Issue #2769 closed #closed-2769
Repeatability of $rng?next() and $rng?permute()
Issue #2771 closed #closed-2771
2769 Clarify repeatability of random-number-generator() results
Issue #2641 closed #closed-2641
[Feature] Comments and parse-csv()
Issue #2778 closed #closed-2778
2641b Add support for CSV comments
Issue #2750 closed #closed-2750
`fn:unparsed-text`, `fn:unparsed-binary`: make them nondeterministic?
Issue #2767 closed #closed-2767
2750 Make fn:unparsed-text, ... nondeterministic
Issue #2761 closed #closed-2761
2758 Add rules for visibility of named types across packages
Pull request #2788 created #created-2788
2774 Reversion of PR 2747 which allowed `A/B?C`
Fix #2774
This PR reverts the effect of PR 2747, which introduced the ability to write the expression A/B?C, with the lookup ?C being part of the step (B?C).
As discussed in the issue, the problem is the interaction with the rules on sorting nodes into document order and deduplication. The expression "feels like" it should evaluate (A/B) ? C - typically searching a JTree to obtain a JNode that wraps a map, and then extracting the entry C from that map; but that's not the actual semantics, because assuming that ?C doesn't select JNodes) it disrupts the deduplication and sorting that (A/B) would otherwise undertake.
Issue #2569 closed #closed-2569
Inconsistent rules for unprefixed function calls with explicit default function namespace
Issue #2757 closed #closed-2757
2569 Rules for unprefixed function calls with explicit default function ns
Issue #2783 closed #closed-2783
Padding strings
Issue #2784 closed #closed-2784
2783 fn:pad-string
Issue #2257 closed #closed-2257
Record declarations without namespace
Issue #2713 closed #closed-2713
2257 Record declarations without namespace
Issue #2779 closed #closed-2779
2781a Fix parsing errors in F&O and XQuery specs
Issue #2781 closed #closed-2781
XQFO: outdated examples
See 5764 more statuses in yearly archives.