@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 184 draft minutes #minutes-10-13
Draft minutes published.
Issue #2983 created #created-2983
Inconsistency in definition of regular expression assertions
The now-merged PR #2966 has introduced inconsistency to the specifications.
The prefatory prose for 6.1.8 invokes the concept of "current position" and that concept is at the heart of the definitions of boundary assertions and all lookahead and lookbehind assertions, but it is no longer part of the definition of metacharacters ^ and $. Either the latter should be redefined in terms of current position, or the other assertions should be redefined without reference to current position, and the initial prose about assertions should be revised to drop any reference to "current position".
Issue #2976 closed #closed-2976
`fn:current`: drop it?
Issue #2977 closed #closed-2977
2976 `fn:current`: drop it!
Issue #2965 closed #closed-2965
Regex functions: bugs
Issue #2966 closed #closed-2966
2965 Regex functions: bugs
Issue #2930 closed #closed-2930
`fn:map-to-element`: tweaks
Issue #2931 closed #closed-2931
2930 fn:map-to-element: tweaks
Issue #2813 closed #closed-2813
Clarify xsl:result-document without href?
Issue #2920 closed #closed-2920
2813 clarifications for xsl:result-document
Issue #2693 closed #closed-2693
XSLT: Drop some type patterns
Issue #2911 closed #closed-2911
2693 Drop type patterns (and other revisions)
Issue #2521 closed #closed-2521
File retrieval, URIs: fragment identifiers
Issue #2760 closed #closed-2760
2521 URIs: unify handling of fragment identifiers
Issue #2936 closed #closed-2936
Named function references: make early errors optional
Issue #2939 closed #closed-2939
2936 Named function references: make early errors optional
Issue #2971 closed #closed-2971
Align trim-space with normalize-space
Issue #2975 closed #closed-2975
2971 Align trim-space with normalize-space
Issue #2982 created #created-2982
upper-case() and lower-case(): precise Unicode references
The functions upper-case() and lower-case() are defined by reference to the Unicode standard, but it is not easy to locate the specific rules that are being referred to, partly because we don't provide a precise link, and partly because the terminology seems to have evolved. We also need a clearer indication (and recognition in the test suite) of how changes between Unicode versions should be handled.
Also we might want to consider the way in which case-blind matching (the 'i' flag in regular expressions) is defined. This allows a lower-case character to match only one upper-case character, and vice versa.
There are some new test cases that have been submitted (e.g. caselessmatch17/18/19) that illustrate the difficulties.
Pull request #2981 created #created-2981
2980 Adaptive serialization: modes
…later than “next minutes”, but it’s online now. Closes #2980
Issue #2980 created #created-2980
Adaptive serialization: two modes
As indicated before, the adaptive output method tries to serve two purposes at once, and it achieves neither reliably:
- Output that can be pasted back into a query. The spec calls this “an aim rather than a requirement”. In practice, the output often fails to parse or doesn’t give back the same value.
- Human-readable output for debugging. Here the method is more verbose than it needs to be.
As a result, implementations tend to do some magic on their own. In, BaseX, for example, we added a custom basex method.
In the past, I have introduced some half-baked extensions to the serialization methods, like #2389, and I think we should go one step further. I propose to add a new serialization parameter, adaptive-mode, with two values:
expression(default): the output is an expression in the host language that rebuilds the value as far as possible. It stays close to today’s output, with stricter rules.readable: values are shown by their content, e.g.2015-07-17andtrue. Only kinds that would otherwise be unrecognizable are marked, such as JNodes and QNames. This mode suits console output, logs, and (depending on the implementation’s preference,fn:traceandfn:message).
Issue #2735 closed #closed-2735
JNodes: serialization
Issue #2979 closed #closed-2979
2972 Simplify record types
Pull request #2979 created #created-2979
2972 Simplify record types
This PR simplifies the definition of record types as follows:
- Terminology: structural and nominative record types become "simple" and "labeled" record types
- Simple record types revert to being purely structural: both type membership (matching) and subtyping depend only on comparing the contents of the definitions; no type annotations are needed on map instances.
- The default for the %constructor annotation switches; you now need a %no-constructor annotation to prevent the generation of a constructor function.
Pull request #2978 created #created-2978
2972 Records and simplicity
…an attempt to simplify records, as motivated by the table in https://github.com/qt4cg/qtspecs/issues/2972#issuecomment-6096543708. All kind of feedback is welcome (much more time went into this than originally planned; it also includes cleanups of minor inconsistencies).
The good thing: it made the implementation much easier again.
Closes #2972
QT4 CG meeting 184 draft agenda #agenda-10-13
Draft agenda published.
Pull request #2977 created #created-2977
2976 `fn:current`: drop it!
👋
Issue #2976 created #created-2976
`fn:current`: drop it?
Now that we have revised the dot semantics (.) in parameter default values, I believe that fn:current is not needed in XQuery anymore: current does not tell what it does, and for XSLT users, it may simply be confusing because it behaves differently.
In the upcoming PR, I’ll revert #2867.
Issue #2876 closed #closed-2876
Editorial Notes (September 2026 edition)
Issue #2947 closed #closed-2947
2876 Editorial Notes (September 2026 edition)
See 6177 more statuses in yearly archives.