SaxonCS 11.0 is available

Roger L Costello <[email protected]> Mon, 11 Oct 2021 12:05:59 +0000
Newsgroups gmane.text.xml.saxon.help
Message-ID <SA9PR09MB5952D1F62E95EAA547E80E4BC8B59@SA9PR09MB5952.namprd09.prod.outlook.com>
> SaxonCS is therefore built by generating C# from the Java source code of SaxonJ 
> using a custom transpiler, written in XSLT.

What is a transpiler?

I learned a new word today:

Compiler: is an umbrella term to describe a program that takes source code written in one language and produce a (or many) output file in some other language. In practice we mostly use this term to describe a compiler such as gcc which takes in C code as input and produces a binary executable (machine code) as output.

Transpilers are also known as source-to-source compilers. So in essence they are a subset of compilers which take in a source code file and convert it to another source code file in some other language or a different version of the same language. The ouput is generally understandable by a human. This output still has to go through a compiler or interpreter to be able to run on the machine.

Some examples of transpilers:

1. Emscripten: Transpiles C/C++ to JavaScript
2. Babel: Transpiles ES6+ code to ES5 (ES6 and ES5 are different versions or generations of the JavaScript language)

https://stackoverflow.com/questions/44931479/compiling-vs-transpiling

/Roger

-----Original Message-----
From: Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected]> 
Sent: Wednesday, October 6, 2021 9:55 AM
To: Mailing list for the SAXON XSLT and XQuery processor <[email protected]>
Subject: [EXT] [saxon] SaxonCS 11.0 is available

We are pleased to announce the release of SaxonCS-EE 11.0 - Saxon Enterprise Edition for .NET 5.

Details:

Documentation: https://www.saxonica.com/documentation11/index.html
Download: https://www.saxonica.com/download/dotnet.xml (or search for SaxonCS on nuget)

Previous products for .NET were built using IKVM to convert the Java bytecode of the Java product (which we are now calling SaxonJ). IKVM doesn't work with .NET Core or .NET 5, so we had to come up with a new approach; SaxonCS is therefore built by generating C# from the Java source code of SaxonJ using a custom transpiler, written in XSLT.

As well as being our first product for .NET 5, this is also the first product built from the version 11 code base (SaxonJ 11 will follow). There are lots of new features, described in detail in the change history section of the documentation, but for most users support for .NET 5 will be the main reason for adoption. We've tested the product on .NET 5 running on Windows, MacOS, and Linux.

Licensing: being Enterprise Edition, a license key is required. Existing license keys will work provided they have current upgrade rights. You can also get a 30-day evaluation license in the usual way. However, we're making a change to the licensing at the same time: from Saxon 11, we plan to offer term and/or subscription licenses only, rather than perpetual licenses. The software is now in a mature phase where many users are looking for stability and support rather than new features, and we feel that perpetual licenses encourage people to stay on old releases until they hit a support problem, at which point it's hard for us to offer assistance. Much of the industry has moved to term and subscription licensing, and we think this will work better. We'll be updating the online shop over the
  next few days.

Compatibility and transition: the API for SaxonCS follows the design of the old .NET API closely, but not slavishly. When we've seen where it can be improved by breaking compatibility, we've improved it. (For example, callbacks are typically now implemented as delegates rather than interfaces.) So some reworking of existing applications will be needed, but we hope it won't be onerous. There are a few areas in which we haven't (yet) replicated the functionality of the old .NET product: the most obvious is localization (number and date formatting), and we'll be addressing this in later releases.

Performance: initial results are very encouraging, but slightly inconsistent. Some things are faster than SaxonJ, some are slower, and we haven't yet been able to establish a clear pattern. Please try it out on your own workload and let us know how it goes.

Michael Kay
Saxonica

_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[email protected]
https://lists.sourceforge.net/lists/listinfo/saxon-help