Thanks for the feedback. Most of these points are fairly minor but the two bugs are certainly something we want to know about. Don't worry too much if you can't make the repro simple, so long as we can reproduce the problem, we'll get to the bottom of it.

I don't like that "only 1 slots are" in an error message. I'm usually obsessive about making them grammatical, even if it's a condition that should never arise!

Michael Kay
Saxonica


On 25 Apr 2013, at 09:10, John Lumley wrote:

On 19/04/2013 21:57, Michael Kay wrote:
Some of you will have already picked up from Twitter that Saxon 9.5 is now available. Or you may have seen that we've already had a bug reported on this list. It might sound odd, but that gives me great pleasure. The quality of Saxon owes so much to the users who do amazing things with it, and not only tell us when it doesn't work, but produce simple test cases that make the problems easy to fix. Having users who download the software on day 1 to test it is a great asset. So a big thank you to all our regular and loyal power users.

......

I've managed to convert my document layout system (some 30 stylesheets, half-a-dozen extension functions) from 3.0 under 9.4.0.7 to 3.0 under 9.5.0.1 with only a few minor problems:

  1. Tightening to the XSLT 'spec' required some minor XSLT code changes - all alerted by the compiler or runtime: serialisation paremeters now required on a very specific element, context-item on xsl:evaluate..... (Some of the documentation will eventually need to follow .... I'll try to record them.)
  2. Changes in the System Programming Interfaces (i.e. internal structures) were pretty straighforward when you found out about them. Axis -> AxisInfo was simple, and the dropping of fingerprint access to attributes in NodeInfo didn't cause much problem. The new Sequence seems easier for the extension call interface, but the example of the full interface in the documentation (http://www.saxonica.com/documentation/index.html#!extensibility/integratedfunctions/ext-full-J) will need altering some time ;-) 
  3. There are a number of extra nice 'warning' touches that have appeared in warning about conditions that are 'useless', e.g. mode #current in functions (I have an example that I used to illustrate XSLT code examining and reporting on itself...).
  4. I have two (XSLT compile/execution) bugs that seem to have appeared in the change (i.e. all worked well under 9.4.0.7). As usual the problem is to try to isolate the bug manifestation into a small example from the extensive operational context within which it appears.
  • An NPE (XSLNextIteration.java:135) in the compilation of an xsl:iterate within a function that is itself called recursively (laying out a graphical tree, if you're interested)
  • An ArrayOutOfBounds: "local variable $mid uses slot 2 but only 1 slots are allocated on the stack frame". (LocalVariableReference.java:105) within the runtime of the same function (but not inside the xsl:iterate - this does not depend on the presence of the iterate).
When I've tracked down simplified examples of the two bugs I'll post to the bug tracker....

As you said Mike - treading on the bleeding edge. It took me about a day to do the complete conversion, pace the two bugs, which I can work around for the present.
-- 
John Lumley MA PhD CEng FIEE
john@johnlumley.net
+44 (0)1275 845284
mobile: +44 7765 717073

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
saxon-help@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/saxon-help