New validator progress 20071009
Par Laurentj le mardi, octobre 9 2007, 13:05 - Projets - Lien permanent
I finished to port the javascript prototype of my new validator, into a C++ version. Performances are increased by 43% : the javascript version takes 7 seconds[1] to parse 373 schemas and to validate 529 documents (the James Clarks's tests suite) . The C++ version takes only 4 seconds. I think I can still increase this performance by doing improvements in the algorithm. But I must fix before all the 7050 memory leaks which appeared during the launch of the tests suite :-) (I think I have circular references...).
This new validator is not embedded into Etna yet. I have to do some works:
- rewriting the blank content generator
- rewriting the implementation of the diIValidationSchemaQuery interface. This feature is needed by the editor to query the validator in different contexts ("can this element be added as a child of the current element ?", "can text be inserted here ?", "is this attribute value valid ?" etc.)
- implementation of our RelaxNG extensions in the new RelaxNG parser.
See the meta bug #164 for details.
Notes
[1] In a previous post, I said it took 27.7 seconds, but it was with my own test suite framework, which shows each result in a html document. I use now the test framework of Mozilla, which is launched in a command line, and which doesn't show any result, except when a test fails.