IBM followed Xalan with an XSLT3 optimizing compiler, which was almost a 
complete rewrite. Unfortunately, it was only released as part of Websphere, and 
was not donated to Apache. (I think it's released name was xthpc or something 
like that, XSL Transformation for High Performance Computing; the internal name 
was Xylem.)

And we had another major step forward in progress when we were summarily pulled 
off that effort.

Internal politics, headcount raids between departments, disagreement about how 
we were going to position our new acquisition of DataPower. And the new 
management had no interest in donating it to Apache.

.. so, yeah, most of the world never heard about it and had no access to it, 
and it basically got dropped on the floor and forgotten. And there are few of 
us who even remember it.

Obviously I'm still a bit grumpy about that...

I'm not sure how much of that work was patented or if IBM would give Apache a 
free license to those.


One conclusion drawn from that effort: The non-deterministic behavior of JIT 
compilers make performance optimization extremely difficult. Simple run-to-run 
variation swamped some of the measurements we were trying to make. It's a lot 
easier to optimize in a J9 system or similar, where the JVM behavior is more 
predictable.



--
   /_  Joe Kesselman (he/him/his)
-/ _) My Alexa skill for New Music/New Sounds fans:
   /   https://www.amazon.com/dp/B09WJ3H657/

() Plaintext Ribbon Campaign
/\ Stamp out HTML mail!
________________________________
From: Mukul Gandhi <muk...@apache.org>
Sent: Tuesday, September 12, 2023 10:35:43 AM
To: dev@xalan.apache.org <dev@xalan.apache.org>
Subject: Re: xalanj new release proposal

Hi Joseph,

On Tue, Sep 12, 2023 at 7:11 PM Joseph Kesselman <kesh...@alum.mit.edu> wrote:

> When IBM implemented 3.0 we started with the API and data model work needed 
> to migrate Xalan to the XSLT3 data model rather than from the "what could be 
> back-ported to 2.0" angle

I believe, IBM had produced an XSLT 2.0 processor and not 3.0. Please
correct me if I'm wrong.

I still do have IBM's XSLT 2.0 implementation binaries with me, having
got them from a team member from IBM's XSLT 2.0 team, within the year
2012 I guess. I did work with IBM till 2015 for few years and I've
enjoyed those years of my work :)

> In addition to new utilities and schema data types, 3.0 changes some 
> semantics, specifically in removing the distinction between node sets and 
> temporary trees (which has always been a bit
> frustrating). It isn't clear whether we could get away with that one and 
> still claim 2.0 conformance; negative tests which detect the difference would 
> fail. Have you been avoiding that (eg
> building automatic conversion into your new functions), or are you working to 
> the 2.0 definitions?

Are you referring to XPath 3.1 (data) type promotion (ref,
https://www.w3.org/TR/xpath-31/#id-type-promotion-and-operator-mapping),
required during evaluations of few XPath operators and for function
calls? This has been implemented to a great extent, on XalanJ dev
branch repos xalan-j_xslt3.0.

> (My own highest architectural priority would be getting us into cursors 
> rather than DTM iterators, which would give us a path toward 3.0 semantics 
> and make running over data other than DTM
> much simpler... but I'm biased; the cursor cutover was my baby, all those 
> years ago. And it's not a small change.)

Currently, on XalanJ dev repos branch xalan-j_xslt3.0, I'm handling a
sequence of XDM items using two data structures together (XNodeSet and
ResultSequence). The XalanJ's XSLT 3.0 implementation may be achieved
in a simpler way, if we had a single data structure to work with for
XDM sequence. I think, we cannot discard XalanJ's XNodeSet, since lot
of XalanJ functionality is already using that. And we need to have
something else as well, to handle an XDM heterogeneous sequence
(having ResultSequence class, helps us achieve that).


--
Regards,
Mukul Gandhi

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org
For additional commands, e-mail: dev-h...@xalan.apache.org

Reply via email to