- From: Dimitre Novatchev <dnovatchev@gmail.com>
- Date: Tue, 27 Sep 2022 20:17:33 -0700
- To: Norm Tovey-Walsh <norm@saxonica.com>
- Cc: public-xslt-40@w3.org
- Message-ID: <CAK4KnZcAdY5Ck26her_iateJ2axzh5-J12H2Eb+72GbTw_CHhw@mail.gmail.com>
On Tue, Sep 27, 2022 at 9:42 AM Norm Tovey-Walsh <norm@saxonica.com> wrote: > > > Draft Minutes > > Summary of new and continuing actions [0/7] > > * [ ] QT4CG-002-01: NW to incorporate email feedback and produce new > versions of the process documents. > * [ ] QT4CG-003-03: NW to tweak the CSS for function signatures to > avoid > line breaks on - characters. > * [ ] QT4CG-002-10: BTW to coordinate some ideas about improving > diversity in the group > * [ ] QT4CG-004-01: MK (with DN and RD) to draft a new proposal for > variadic functions > * [ ] QT4CG-004-02: DN to make a proposal for deep-equal-safe for > future > discussion > * [ ] QT4CG-004-03: MK to draft a pull request implementing > fn:intersperse > * [ ] QT4CG-004-04: DN to open an issue for the inverse of > fn:intersperse > > The description of the function *fn:deep-equal-safe*() is in a pdf file that can be found here: *https://github.com/dnovatchev/FXSL-XSLT2/blob/master/fn-deep-equal-safe.pdf <https://github.com/dnovatchev/FXSL-XSLT2/blob/master/fn-deep-equal-safe.pdf>* Note: this document is essentially a compilation from the FO 3.1 of: *op:same-key* ( https://www.w3.org/TR/xpath-functions-31/#func-same-key), and *fn:deep-equal *( https://www.w3.org/TR/xpath-functions-31/#func-deep-equal) Special care was taken to substitute the fn:deep-equal semantics that either results in raising an error, or in possible intransitivity or context-dependency. All such behavior has been substituted with the corresponding behavior from *op:same-key*, which the 3.1 Spec claims to be: "*deterministic, context-independent, and ·focus-independent*", etc. More specifically, to achieve this: 1. No errors are raised, instead *false() *is returned 2. Strings are compared without any dependency on collations (*fn:codepoint-equal *is used in such comparisons) 3. Not using *eq *but instead every instance of *xs:double, xs:float and xs:decimal* is represented exactly as a decimal number provided enough digits are available both before and after the decimal point.Unlike the *eq *relation which converts both operands to *xs:double* values, possibly losing precision in the process, this comparison is transitive 4. *fn:deep-equal* is used in comparing values having a variety of date, time, year, month day types so that, unlike when using *eq*, no error is raised when comparing values of different types, but just *fasle()* is returned. Also, unlike when using the *eq *operator, this comparison has no dependency on implicit time-zone, meaning no dependency on this aspect of the dynamic context. The goal of this function description is to serve as a starting point for discussion about possible options for fn:deep-equal. Any comments will be appreciated. Thanks, Dimitre
Received on Wednesday, 28 September 2022 03:17:58 UTC