Re: [xsl] [ANN] Saxon 10.0 (today's other news..)

Subject: Re: [xsl] [ANN] Saxon 10.0 (today's other news..)
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 21 Mar 2020 23:50:35 -0000
That's great to know. We saw an improvement in some of our performance tests,
and inconsistent results in others (faster on one machine, slower on another)
and didn't quite get to the bottom of the anomalies. So more feedback from the
field will be useful.

The biggest performance-affecting change is probably the handling of namespace
nodes both in the TinyTree and in the push pipeline; the main effect should be
to make copying of subtrees involving many namespaces rather faster.

Michael Kay

> On 21 Mar 2020, at 23:18, Martin Holmes gtxxgm-xsl-list-2@xxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> We've tested version 10 HE on a number of projects, and we're noticing
somewhere between 10% and 40% improvement in speed (probably mostly due to the
availability of @new-each-time, but also in other areas too).
> So far we've seen no anomalous behaviour or regressions.
> This is a fantastic piece of work. Thanks indeed.
> Cheers,
> Martin
> On 2020-03-16 12:22 p.m., Michael Kay mike@xxxxxxxxxxxx
<mailto:mike@xxxxxxxxxxxx> wrote:
>> Saxon 10.0 is released today for the Java platform:
>> 10.0 feels like a special number, and marks something of a milestone,
although to be honest it's only called 10.0 because it happens to be the 31st
major release since 7.0 came out back in 2002. Think of it as the culmination
of 18 years' work, think of it as the dawn of a new era, or just think of it
as Saxonica carrying on doing what we're good at.
>> As always there's a minutely detailed list of changes in the documentation
on the web site, but to save you time, here are the "top ten" highlights that
we think
>> will be most popular:
>> * Higher order functions and xsl:evaluate are now available in Saxon-HE.
>> * An interactive command-line utility named Gizmo is available for ad-hoc
querying and updating of documents.
>> * A new API is provided for easy and efficient tree construction, based on
modern API design ideas using fluent and immutable objects.
>> These complement the stream-based API introduced in 9.9 for tree
>> * XSLT and XPath provide an optional switch to allow unprefixed names to
ignore namespaces, so the path /a/b/c matches elements with
>> local names "a", "b", and "c" regardless of namespace. Ideal for ad-hoc
queries where namespaces just get in the way, as well as queries on
>> single-namespace documents.
>> * HTML serialization now generates HTML5 by default (support for
html-version="4" is retained if explicitly requested).
>> * Saxon now integrates with the new date-and-time handling features in Java
8, including a new extension function saxon:parse-dateTime()
>> that builds on Java date parsing capabilities.
>> * Many new extension functions are available, most of them taking advantage
of the power of higher-order functions. For example,
>>   saxon:replace-with("Chapter 13", "[0-9]+", function($x){number($x)+1})
returns "Chapter 14".
>> * Saxon 10.0 includes experimental implementations of a number of powerful
new XSLT and XPath features, which Saxonica
>> has put forward for inclusion in a new version 4.0 of the standards. These
include tuple types, named item types, streamlined syntax
>> for inline functions and conditional instructions, XSLT instructions to
handle arrays, and enhancements to XSLT patterns to make
>> JSON transformation much easier. These features are only available if
explicitly enabled.
>> * A number of extensions to XML Schema 1.1 are provided: list data types
can be constrained to be distinct and/or ordered, and can
>> use a separator other than whitespace; elements in a sequence can also be
constrained to appear in ascending or descending order.
>> * As always, there has been significant internal re-engineering to keep the
code performant and maintainable. A significant change is
>> in the way namespaces are represented both in the tree model (the NodeInfo
interface) and in the push pipeline (the Receiver interface):
>> both now deliver namespace maps representing complete sets of namespace
bindings, rather than individual namespace declarations
>> and undeclarations. The main benefit is that copying of trees with many
namespaces is significantly faster.
>> Saxon 10.0 requires Java 8 or higher. A .NET version will follow later.
Saxon 10.0 can export compiled stylesheets in the form of SEF files
>> suitable for reading either by Saxon 10.0, or by Saxon-JS 2 (which will be
released in the next few weeks); SEF files cannot be used with earlier
>> In future we intend to use two-part version numbers rather than four-part:
the next major release will be 11.0, the next maintenance release 10.1.
>> The number of tests we run increases every time we release; it's now close
to a million. But we know from experience that some of you will still find
>> We're therefore recommending production users to stick with 9.9 (which has
become very stable and reliable) for the time being, while testing your
>> on 10.0 and reporting any issues you encounter.
>> Michael Kay
>> Saxonica
>> XSL-List info and archive <
>> EasyUnsubscribe <
<>> (by email <>)

Current Thread