Re: [xslt] Status of refactored code
- From: Nick Wellnhofer <wellnhofer aevum de>
- To: xslt gnome org
- Subject: Re: [xslt] Status of refactored code
- Date: Thu, 03 Dec 2009 00:28:03 +0100
On 02/12/09 14:27, Daniel Veillard wrote:
On Sat, Oct 10, 2009 at 05:22:37PM +0200, Nick Wellnhofer wrote:
I wonder what's the status of the refactored code in libxslt that can be
enabled by defining XSLT_REFACTORED. It's been there for some years now
and AFAICS it fixes some bugs that are hard to fix without the refactoring.
I gave it a try about two years ago and I couldn't find any obvious
problems.
Hum, Kasimier left before we really validated it fully,
if you think it's fine and ready, maybe I should have a look,
I won't have much time before the end of year vacations but
I should be able to looks at things at the end of December
Any additional testing or regression tests you could provide
showing the bug fixed would be a good step forward :-)
It fixes some of the bugs assigned to Kasimier in Bugzilla:
https://bugzilla.gnome.org/buglist.cgi?query_format=advanced;emailassigned_to1=1;order=Bug%20Number;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;bug_status=NEEDINFO;email1=kbuchcik;product=libxslt;emailtype1=substring
I can't really judge if the refactored code is ready. But I didn't find
any problems last time I gave it a try.
Attached is a diff of the test output when running the tests with or
without the refactored code. The exslt failures definitely look like a
problem.
REC/test-7.1.1-3
Fixed by the refactored code
REC/test-2.5-1
general/bug-114
general/bug-164
general/bug-60
Maybe these are just differently worded error and warning messages. I'm
not sure.
REC/test-7.1.1
Looks like a result of the fix to bug #341325.
general/bug-150
general/bug-71
namespaces/tst5
Different order of namespace declarations
exslt/functions/function.8 fails with the following error message:
compilation error: file ./function.8.xsl line 22 element param
Redefinition of variable or parameter 'in'.
compilation error: file ./function.8.xsl line 30 element param
Redefinition of variable or parameter 'in'.
exslt/math/max.3 fails with a similar message
This seems to be a problem in the refactored code wrt params of exslt
functions. Parameters of a different functions with the same name are
rejected as duplicate.
Nick
--- test_current.log 2009-12-02 23:35:26.000000000 +0100
+++ test_refactored.log 2009-12-02 23:31:47.000000000 +0100
@@ -9,18 +9,44 @@
make[1]: Leaving directory `/home/nik/src/libxslt/tests/REC2'
make[1]: Entering directory `/home/nik/src/libxslt/tests/REC'
## Running REC tests
-test-7.1.1-3 result
-2c2 < <out>SUCCESS</out> --- > <out xmlns:doc="http://example.org/doc">SUCCESS</out>
+test-2.5-1 result
+1,4c1,2 < compilation error: file ./test-2.5-1.xsl line 6 element exciting-new-1.8-feature < xsltStylePreCompute: unknown xsl:exciting-new-1.8-feature < compilation error: file ./test-2.5-1.xsl line 2 element stylesheet < xsl:version: only 1.0 features are supported --- > compilation warning: file ./test-2.5-1.xsl line 2 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+test-7.1.1 result
+2,8c2,8 < <axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> < <axsl:template match="p"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h1"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h2"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h3"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h4"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < </axsl:stylesheet> --- > <xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="p"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h1"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h2"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h3"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h4"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > </xsl:stylesheet>
## Running REC tests without dictionaries
-test-7.1.1-3 result
-2c2 < <out>SUCCESS</out> --- > <out xmlns:doc="http://example.org/doc">SUCCESS</out>
+test-2.5-1 result
+1,4c1,2 < compilation error: file ./test-2.5-1.xsl line 6 element exciting-new-1.8-feature < xsltStylePreCompute: unknown xsl:exciting-new-1.8-feature < compilation error: file ./test-2.5-1.xsl line 2 element stylesheet < xsl:version: only 1.0 features are supported --- > compilation warning: file ./test-2.5-1.xsl line 2 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+test-7.1.1 result
+2,8c2,8 < <axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> < <axsl:template match="p"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h1"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h2"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h3"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < <axsl:template match="h4"><fo:block><axsl:apply-templates/></fo:block></axsl:template> < </axsl:stylesheet> --- > <xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="p"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h1"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h2"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h3"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > <xsl:template match="h4"><fo:block><xsl:apply-templates/></fo:block></xsl:template> > </xsl:stylesheet>
make[1]: Leaving directory `/home/nik/src/libxslt/tests/REC'
make[1]: Entering directory `/home/nik/src/libxslt/tests/general'
## Running general tests
+bug-114 result
+0a1,2 > compilation warning: file ./bug-114.xsl line 4 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-150 result
+2c2 < <root xmlns="urn:A" xmlns:b="urn:B" xmlns:a="urn:A"><Product a:ID="1001"/></root> --- > <root xmlns:b="urn:B" xmlns:a="urn:A" xmlns="urn:A"><Product a:ID="1001"/></root>
+bug-164 result
+0a1,2 > compilation warning: file ./bug-164.xsl line 5 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-60 result
+1,2c1,2 < compilation error: file ./bug-60.xsl line 6 element foo-of < xsltStylePreCompute: unknown xsl:foo-of --- > compilation warning: file ./bug-60.xsl line 5 element result > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-71 result
+2c2 < <pa:Contact xmlns:pa="urn:test:pa" xmlns:rdf="urn:test:rdf" rdf:about="hello"><pa:primaryPhone rdf:about="toto"/></pa:Contact> --- > <pa:Contact xmlns:rdf="urn:test:rdf" xmlns:pa="urn:test:pa" rdf:about="hello"><pa:primaryPhone rdf:about="toto"/></pa:Contact>
## Running general tests without dictionaries
+bug-114 result
+0a1,2 > compilation warning: file ./bug-114.xsl line 4 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-150 result
+2c2 < <root xmlns="urn:A" xmlns:b="urn:B" xmlns:a="urn:A"><Product a:ID="1001"/></root> --- > <root xmlns:b="urn:B" xmlns:a="urn:A" xmlns="urn:A"><Product a:ID="1001"/></root>
+bug-164 result
+0a1,2 > compilation warning: file ./bug-164.xsl line 5 element stylesheet > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-60 result
+1,2c1,2 < compilation error: file ./bug-60.xsl line 6 element foo-of < xsltStylePreCompute: unknown xsl:foo-of --- > compilation warning: file ./bug-60.xsl line 5 element result > Warning: the attribute xsl:version specifies a value different from '1.0'. Switching to forwards-compatible mode. Only features of XSLT 1.0 are supported by this processor.
+bug-71 result
+2c2 < <pa:Contact xmlns:pa="urn:test:pa" xmlns:rdf="urn:test:rdf" rdf:about="hello"><pa:primaryPhone rdf:about="toto"/></pa:Contact> --- > <pa:Contact xmlns:rdf="urn:test:rdf" xmlns:pa="urn:test:pa" rdf:about="hello"><pa:primaryPhone rdf:about="toto"/></pa:Contact>
make[1]: Leaving directory `/home/nik/src/libxslt/tests/general'
make[1]: Entering directory `/home/nik/src/libxslt/tests/namespaces'
## Running namespaces tests
+tst5 result
+2c2 < <windows xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xhtml="http://www.w3.org/1999/xhtml"> --- > <windows xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
make[1]: Leaving directory `/home/nik/src/libxslt/tests/namespaces'
make[1]: Entering directory `/home/nik/src/libxslt/tests/keys'
## Running keys tests
@@ -143,9 +169,13 @@
make[2]: Leaving directory `/home/nik/src/libxslt/tests/exslt/common'
make[2]: Entering directory `/home/nik/src/libxslt/tests/exslt/functions'
## Running exslt function tests
+function.8 result
+Fatal error, no function.8.res\n
make[2]: Leaving directory `/home/nik/src/libxslt/tests/exslt/functions'
make[2]: Entering directory `/home/nik/src/libxslt/tests/exslt/math'
## Running exslt math tests
+max.3 result
+Fatal error, no max.3.res\n
make[2]: Leaving directory `/home/nik/src/libxslt/tests/exslt/math'
make[2]: Entering directory `/home/nik/src/libxslt/tests/exslt/sets'
## Running exslt sets tests
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]