- From: Michael Kay <mike@saxonica.com>
- Date: Thu, 2 Oct 2025 17:14:59 +0100
- To: public-xslt-40@w3.org
- Message-Id: <8C5E67F6-06C6-485C-A4F7-0981E5B0C01F@saxonica.com>
I have now conducted the same exercise for XSLT - running the latest Saxon build in 4.0 mode against the XSLT 3.0 test suite to see what breaks. I get the results shown below, but I haven't done a full analysis. Many of the failures are because the streaming code in the current build is in a fairly fragile state. I only found one failure that appears to be due to double/decimal comparison issues, namely math-1601. This test is failing because the expression number(k) = (0.0001 * 4) returns false where true is expected. The element k is `<k>0.0004</k>`. The LHS number(k) produces a double equal to 0.0004000000000000000191686944095437183932517655193805694580078125 while the RHS produces the decimal 0.0004. If the stylesheet didn't attempt explicit conversion to a double, but relied on implicit conversion, then the expression would return true. We can be sure that users will encounter such issues, but I'm gaining confidence that they will be rare. Failures by Test Set: accumulator : 3 as : 1 current-output-uri : 1 document : 2 error : 9 for-each-group : 1 format-date-en : 2 forwards : 21 function : 5 function-available : 1 global-context-item : 1 higher-order-functions : 4 import : 2 maps : 2 match : 2 math : 1 merge : 1 next-match : 6 number : 1 package : 4 regex : 4 regex-syntax : 20 sf-insert-before : 2 sf-outermost : 1 shadow : 1 si-LRE : 27 si-apply-templates : 2 si-copy : 2 si-element : 1 si-for-each-group : 2 si-fork : 1 source-document : 1 streamable : 1 streaming-fallback : 2 su-absorbing : 2 system-property : 2 type : 2 variable : 1 version : 2 xml-to-json : 4 Finished in 52s Result: 11661 successes, 150 failures, 33 incorrect ErrorCode, 2790 not run I will ignore streaming results because the streaming code in this snapshot needs attention.
Received on Thursday, 2 October 2025 16:15:16 UTC