XQilla: an XQuery and XPath 2.0 library and command line interpreter.


version 2.3.0 (2011.09.09):
	* Added support for XQuery 3.0 version declarations.
	* Updated to support XQuery 3.0 higher order functions, including
	  partial function application, function coercion, and function item
	  SequenceType checking.
	* Implemented XQuery 3.0 FLWOR clause ordering.
	* Implemented XQuery 3.0 FLWOR count clause.
	* Implemented XQuery 3.0 extended typeswitch syntax.
	* Implemented XQuery 3.0 namespace test and constructor.
	* Implemented XQuery 3.0 private functions.
	* Updated to the latest W3C XQuery Full Text syntax.
	* Implemented Unicode word bounding and sentence bounding for XQuery
	  Full Text tokenization.
	* Implemented XQuery Full Text case options.
	* Implemented XQuery 1.0 second edition semantics for module import.
	* Added the xqilla:explain() function to return the query plan of an
	  expression.
	* Added xqilla:words() and xqilla:sentences() to perform Unicode word
	  and sentance boundary detection.
	* Added xqilla:drop().
	* Rewrote a number of the built-in XQuery functions in XQuery itself.
	* Implemented constant time indexing into materialized sequences.
	* Improved the efficiency of the tail call optimization code.
	* Optimized boolean operators.
	* Optimized DOMDocument::evaluate() calls.
	* Fixed various bugs in static typing.
	* Fixed various memory leaks in the DOM 3 API, and regular expressions.
	* Fixed a bug that caused a crash when using huge integers.
	* Modified to build against Xerces-C 3.1.1
	* Added Visual Studio 2010 support.
	* Build fix for AIX 5.3.
	* Build fix for the clang++ compiler.
	* Build fix for GCC 4.6.

version 2.2.4 (2010.03.01):
	* Modified to build against Xerces-C 3.1.0
	* Modified the DOM 3 API to only orphan grammars if PSVI is enabled.
	* Fixed computed attribute constructors not to use the default element
	  namespace for names.
	* Modified node serialization to generate prefixes for attributes with
	  no prefix but in a namespace.
	* Modified node serialization to use existing prefixes if possible.
	* Fixed an unknown exception during certain update operations.
	* Build fix for Sun Workshop 6 compiler.
	* Build fix for older GCC.
	* Added maintainer mode (--enable-maintainer-mode) to rebuild build
	  related files.

version 2.2.3 (2009.11.12):
	* Work around for a Xerces-C bug in DOMDocument::importNode() that
	  resulted in badly copied prefixes using XQuery Update.
	* Fixed a segfault in the DOM 3 API by orphaning Xerces-C Grammar
	  correctly.
	* Fixed optimization of count(), exists(), and empty() based on static
	  type if the argument uses doc() or collection().
	* Fixed a bug that caused a crash when using "order by" in some
	  circumstances.
	* Fixed query/module static-typing to also (re-)static type the modules
	  it imports.
	* Fixed a bug in fn:codepoint-equal().

version 2.2.2 (2009.07.02):
	* Fixed XQillaDocumentImpl::cloneNode() to return an instance of
	  XQillaDocumentImpl.
	* Fixed XPath 2.0 so that it doesn't recognize entities in
	  string literals.
	* Fixed a bug in the constant folding identity transforms for
	  arithmetic expressions.
	* Fixed a bug in the undefined context item check.
	* Fixed the transform expression to copy document nodes rather than
	  dissolving them.
	* Fixed a bug in the static typing of external functions.
	* Fixed a bug in fn:matches()with a zero-length string as the first
	  argument.
	* Fixed a couple of bugs in the debug API, and made it report exit() and
	  end() events correctly.
	* Fixed variable inlining so that variables aren't inlined into loops.
	* Fixed a segfault when parsing a document from a memory buffer.
	* Fixed a bug in XQC_Implementation->parse_document_file() that
	  caused parsing to always fail.
	* Workaround a bug in Xerces-C that can cause corrupted memory when
	  deleting a mutex.
	* Fixed a bug related to unsigned int/XMLSize_t type difference between
	  Xerces-C 2.8 and 3.0.
	* Fixed alignment on sparc architectures that could cause a SIGBUS
	  crash.
	* Fixed a Windows memory bug involving the URI used in resolving a
	  document or collection.
	* Fixed Windows compile warnings related to Xerces-C types.
	* Updated libtool version to 2.2.6.
	* Fixed some compiler issues related to the xlC compiler.

version 2.2.0 (2009.01.05):
	* Added a debugging API, and a command line debugger invoked by passing
	  a "-d" flag to the command line tool.
	* Added a partial implementation of XSLT 2.0. This should currently be
	  considered alpha quality.
	* Added an implementation of the current draft of XQC, a standard C API
	  for accessing XQuery implementations.
	* Added a prototype implementation of higher order functions for XQuery.
	* Added the ExternalFunctionResolver API to resolve implementations for
	  external functions that are unknown before compile time.
	* Added the xqilla:analyze-string() extension function for performing
	  complex regular expression analysis.
	* Added query options for controlling schema validation, document
	  projection and lint warnings.
	* Added a --disable-rpath configure option for maintainers.
	* Implemented function and variable inlining, and other partial
	  evaluation optimizations.
	* Implemented tail recursion optimization.
	* Modified XQilla to compile against Xerces-C 3.0. A source installation
	  of Xerces-C is no longer necessary for compilation.
	* Improved static typing with cardinality information.
	* Fixed a bug in schema validation of a document in no namespace.
	* Fixed schema validation to check ID/IDREF constraints correctly.
	* Fixed a bug in validation of SequenceTypes like
	  document-node(schema-element(XX)).
	* Fixed a bug in re-writing documents to disk after updating them, when
	  they have a space in their document URIs.

version 2.1.4 (2008.07.31):
	* Fixed a bug in XQTreatAs that removed type checking under
	  circumstances where it was still needed.

version 2.1.3 (2008.07.29):
	* Modified the StaticAnalysis class in order to reduce the memory
	  footprint of a prepared query by at least 50%.
	* Changed the code so that compilation against a patched version of
	  Xerces-C 2.8 is no longer required. XQilla will build with reduced
	  functionality without the patches.
	* Workaround a Windows optimizer issue that caused instance of
	  queries to fail in a release build on Windows.
	* Fixed another Solaris compilation bug.

version 2.1.2 (2008.04.28):
	* Fixed a bug in static resolution of replace expressions
	* Fixed the Xerces-C data model layer to work correctly with DOM Level 1
	  elements and attributes.
	* Worked around a Xerces-C bug that resulted in exceptions when using
	  the DOM 3 API with certain schemas.
	* Fixed a 64 bit compilation problem.
	* Fixed a Solaris compilation problem.

version 2.1.1 (2008.04.08):
	* Added the xqilla:parse-json() and xqilla:serialize-json() extension
	  functions to parse and serialize JSON.
	* Added the xqilla:parse-html() function which uses HTML Tidy to parse
	  HTML into XML. The function will not be compiled if TidyLib is not
	  found.
	* Added fn:unparsed-text(), a function from XSLT 2.0 which can fetch a
	  URL and return it as a string.
	* Added an xqilla:time() function which outputs the time taken to
	  evaluate it's argument.
	* Added src/xercesc_content_type.patch which should be applied
	  against Xerces-C 2.8 to fix an HTTP connection bug.
	* Added src/xercesc_regex.patch which should be applied against Xerces-C
	  2.8 to fix a regular expression bug in fn:replace().
	* Added project files for Visual C++ 8, including 64 bit build
	  targets.
	* Changed the default XQuery Update revalidation mode to LAX.
	* Fixed a bug in the lexing of element and attribute content in
	  queries that incorrectly rejected certain Unicode characters.
	* Fixed a bug in external functions when used with modules.
	* Fixed a memory leak in the FastXDMURIResolver.
	* Fixed a segfault in XPath2ResultImpl if the results were only
	  partially navigated.
	* Fixed a bug in XPath2ResultImpl where XQExceptions weren't being
	  turned into XQillaExceptions.
	* Fixed XQilla to compile using Visual C++ 6.
	* Fixed compilation flags to work under HPUX.

version 2.0.0 (2007.12.12):
	* Changed the license for XQilla to the Apache License v2, a more
	  permissive open-source licence.
	* Implemented document projection, an optimisation technique that prunes
	  sub-trees of documents not needed for the query at parse time. This is
	  enabled by default.
	* Added a new extension function xqilla:parse-xml() which takes a string
	  and parses it as an XML document.
	* Added optional support for using the FAXPP XML parser instead of the
	  Xerces-C parser.
	* Added a command line option to the "xqilla" utility for binding
	  external variables from the command line.
	* Implemented better error messages for type errors.
	* Modified the embedded MAPM library so we are now using it under the
	  terms of the MIT licence.
	* Fixed miscellaneous bugs in the XQuery Update implementation.
	* Fixed a bug with the algorithm to add and subtract an
	  xs:dayTimeDuration to or from an xs:date.
	* Fixed a bug in XercesNodeImpl which caused a segfault if the node was
	  created as a value of a global variable in another module.

version 1.1.0 (2007.08.31):
	* Added support for XQuery Update (Last Call Working Draft, 28 August
	  2007).
	* Added XQillaConfiguration, which encapsulates everything needed to
	  create or use a new data model.
	* Implemented a new data model called FastXDM. It places nodes in a
	  sequential array, and is much faster and more memory efficient than
	  the DOM based data model. This is now the default data model.
	* Implemented XercesConfiguration, to enable use of the Xerces-C DOM
	  based data model.
	* Implemented EventHandler, an event based execution interface. This is
	  used primarily for efficient evaluation of constructed nodes. This can
	  be invoked using XQQuery::execute(EventHandler*,DynamicContext*).
	* Added the ExternalFunction class, to allow users to easily implement
	  XQuery external functions.
	* Added the MessageListener interface, to allow users to easily receive
	  warning and trace messages.
	* Implemented closures, to enable the efficient and lazy execution of
	  "let" expressions.
	* Implemented more lazy execution code for "order by" expressions
	* Added better error messages for sequence type checking errors.
	* Removed the XQDebugCallback API.
	* Rewrote the lexer and parser to be more memory efficient.
	* Rewrote "validate" expressions to be more memory efficient.
	* Modified the XQuery Test Suite runner to run the forthcoming XQuery
	  Update test suite.
	* Made minor changes to allow compilation against the Xerces-C 2.8
	  release candidate.
	* Fixed a bug in the limit checking of the seconds field in the time
	  when parsing.
	* Fixed modules so that the correct language is used to parse the
	  module.
	* Fixed a bug in the code to create a new dynamic context for a
	  module.
	* Fixed possible segmentation faults and memory leaks when using the
	  DOM3 API
	* A number of other miscellaneous minor bug fixes.

version 1.0.1 (2007.02.12):
	* Fixed fn:concat() to accept more than 51 arguments.
	* Fixed module parsing, to use the correct language enumeration when
	  parsing. Output modules in the query plan.
	* Fixed a race condition in the parsing of function signatures.
	* Fixed parse errors in the DOM3 API, which were being thrown as
	  XQException instead of XQillaException. [1626534]
	* Fixed the building of shared libraries under Cygwin, by adding
	  -no-undefined to the libtool line in the Makefile. [1639669]
	* Fixed a bug in the static typing of user defined functions, that could
	  result in incorrect errors.
