Chapter 8 Release Notes
8.1 Galax 1.0 (March 2008)
Galax version 1.0 implements the XQuery 1.0 Recommendation from
January, 2007 (http://www.w3c.org/TR/xquery) and the XQuery Update Facility 1.0 from
August, 2007 (http://www.w3.org/TR/xquery-update-10/). It also implements XQueryP, an imperative
scripting language that extends XQuery with updates with mutable
variables, while loops, and sequential expressions (http://www.ximep-2006.org/papers/Paper-Chamberlin-Carey.pdf).
-
Galax 1.0 must be built with O’Caml 3.10
- Implementation of the latest XQuery Update Facility 1.0
(http://www.w3.org/TR/xquery-update-10/), including static typing.
- Improved implementation of XQueryP.
-
Re-implementation of while loops.
- Fixed issues with scoping.
- Improved support for modules.
-
Properly implemented nested imports.
- Added support for module interfaces.
- Support for XQueryX trivial embedding.
- Bug fixes:
-
Fixed problems with support for in-scope namespaces.
- Fixed problems with checking of cyclic variable declarations.
- Fixed several problems with the parser, using wrong lexical states inside constructors.
- Small bug fixes in support for the prolog.
- Conformance results on XQTS 1.0.2:
Feature | Pass | Fail | Total | Percent |
Minimal Conformance | 14555 | 69 | 14637 | (99.4%)
Optional Features |
Static Typing Feature | 46 | 0 | 46 |
Full Axis Feature | 130 | 0 | 130 |
Module Feature | 32 | 0 | 32 |
8.2 Galax 0.7.2 (February 2007)
Galax version 0.7.2 is a minor release, and should be considered as a
beta release. Galax 0.7.2 implements the XQuery 1.0 Recommendation
from January, 2007.
This is a development release. Notably static typing and
some of the new compiler optimizations are not fully tested.
-
Compiler:
-
We’re still working on Join detection...A never-ending saga.
- Current testing results on XQTS 1.0.2:
Feature | Galax Pass | Fail | Total | Percent |
Minimal Conformance | 14514 | 110 | 14637 | (99.1%) |
Optional Features | |
Schema Import Feature | 0 | 0 | 174 |
Schema Validation Feature | 0 | 0 | 25 |
Static Typing Feature | 46 | 0 | 46 |
Full Axis Feature | 130 | 0 | 130 |
Module Feature | 0 | 0 | 32 |
Trivial XML Embedding Feature | 0 | 0 | 4 |
8.3 Galax 0.6.8 (August 2006)
Galax version 0.6.8 is a minor release, and should be considered as a
beta release. Galax 0.6.8 implements the XQuery 1.0 candidate
recommendation working drafts from January, 2007.
This is a development source-only release. Notably static typing and
some of the new compiler optimizations are not fully tested.
-
Language:
- Compiler:
-
Join detection is back! Some bug fixes and improvements to the
robustness of the optimizer in the presence of rewritings.
8.4 Galax 0.6.5 (May 2006)
Galax version 0.6.5 is a major release, and should be considered as an
alpha release. Galax 0.6.5 implements the XQuery 1.0 candidate
recommendation working drafts from January, 2007.
This is a development source-only release. Notably static typing and
some of the new compiler optimizations are not fully tested.
-
Language:
-
Alignment with the January, 2007CR working drafts.
- Support for XML updates based on the XQuery! language [Alpha]
(See http://xquerybang.cs.washington.edu/).
- Support for both strong and weak typing. [Alpha].
- Complete implementation of XQuery 1.0 Functions and Operators,
notably full support for date and time, URI, and QName operations.
- Countless bug fixes...
- Environment:
-
New configure script for automated configuration, compilation,
and installation.
- Galax is now a GODI package(http://godi.ocaml-programming.de/).
- Added test harness for the W3C XQuery test-suite.
Galax passes 7852 out of 7917 tests on version
1.0.2 of the XQuery 1.0 Test Suite. The test
suite contains a total of 10,055 tests.
- Compiler:
-
Support for a variety of physical algorithms for evaluating
path expressions, including twig joins, staircase joins, and
one-pass evaluation over XML token streams. [Alpha]
- Known problems: Support for hash/sort joins is temporarily disabled.
8.5 Galax 0.5.0 (February 2005)
Galax version 0.5 is a major release, and should be considered as an
alpha release. Galax 0.5.0 implements the XQuery 1.0 working draft
published in October 2004.
Among the most noticeable changes:
-
Alignment with the XQuery 1.0, October 2004 working drafts.
- A much faster XML parser, based on Gerd Stolpmann’s PXP, fixing
many XML 1.0 conformance bugs as well.
- A completely new compiler, including a query optimizer that
supports join optimizations and should deliver much better
performances than the previous versions of Galax.
- “Document projection” is finally part of the main release,
allowing to process queries over large documents. (see the
galax-project command-line tool).
- Improved support for sorting by document order and duplicate
removal in the compiler.
- The Windows port is back, based on the MinGW compilers.
- New port for MacOS X.
Have contributed to this release:
Mary Fernández, Nicola Onose, Philippe Michiels, Christopher Ré,
Jérôme Siméon, Michael Stark.
8.6 Galax 0.4.0 (August 2004)
Galax version 0.4 is a major release, and should be considered as an
alpha release. Galax 0.4.0 implements the latest XQuery 1.0 working
draft published in July 2004. It contains many improvements from the
previous version, as well as new features.
Among the most noticeable improvements and new features: Galax now
comes bundled with Jungle, a simple native XML store. It now supports
XML Schema and "named typing". Finally, it contains some prototype
support for Web services.
Have contributed to this release:
Mary Fernández, Vladimir Gapeyev, Nicola Onose, Philippe Michiels,
Doug Petkanics, Christopher Ré, Jérôme Siméon, Avinash Vyas.
Main changes over the previous version are listed below.
Language changes:
-
Support for the latest XQuery 1.0’s specifications (July 2004
Working Drafts).
- Support for XML Schema 1.0: schema import, validate, named typing,
sequence types and type tests.
- Preliminary support for modules. Import module statements without
recursion are supported. Details of the semantics will be fixed when
issues around modules are addressed by the XML Query working group.
- Support for dates and time.
- Support for string regular expressions.
Environment changes:
-
A new set of command-line tools replace the old ones:
galax-run: The XQuery execution engine
galax-parse: XML parsing and XML Schema validation
galax-project: To apply XML document projection
galax-mapschema: To map XML Schema to the XQuery type system
ocaml-galax: The OCaml interpretor bundled with Galax
- New command-line tools for Web services:
galax-mapwsdl: To map WSDL interfaces to an XQuery module
xquery2soap: To deploy an XQuery module as an apache Web
service.
- Revisions to the Caml, C, C++ and Java APIs.
Architectural changes:
-
A new extensible data model, making Galax easy to use over ’virtual’
XML documents.
- A completely new query compiler and evaluation engine that supports
an hybrid SAX-tuple-tree algebra. The new compilation infrastructure
should already show improved performances, although it performs
little optimizations yet. Expect more work in this area in future
versions of the system
New features:
-
Alpha support for native XML storage with Jungle (on top of
Sleepycat’s BerkeleyDB).
- Alpha support for calling Web services from within XQuery.
Portability:
-
Added Makefile for Mac OSX in config/Makefile.osx.
- Fixed numerous problems with Win32.
8.7 Galax 0.3.5 (December 2003)
This is a bug-fix release:
-
Now compiles with OCaml 3.07.
- Numerous bug fixes to the XML updates support.
- Added glx:document-save() function allowing to save the result of a
query (notably useful in the case of an existing document that has
been updated).
- Fixed bug in the release of Caml values in the C-API.
- Fixed bug in pretty-printing of function application, and added
pretty-printing for the query prolog.
- Fixed index bug in fn:substring and fn:translate.
- Fixed serialization in canonical form.
- Fixed bug in parsing of PIs in the document root.
- Fixed bug in validation/casting of atomic values not dealing with
whitespace properly.
- Fixed bug in key/keyref support introduced with the new API.
- Fixed bug in parsing of DTD declarations with the PUBLIC keyword.
8.8 Galax 0.3.1 (June 2003)
Language extensions:
-
Alpha support for XML updates!
Command line:
-
External variables and context items can be bound from the
command-line.
API:
-
Brand new, hopefully complete Caml, C, and Java APIs.
Check them out!
Parsing:
-
Switched for good to the SAX parser. glx:document-sax is removed.
- Complete new support for character encodings. Now detects encoding
in XML declaration properly. Support for UTF-16.
8.9 Galax 0.3.0 (January 2003)
Bugs
-
All reported and fixed bugs are documented in ’Bugs’ file.
Language:
Numerous changes to align with Nov. 2002 and upcoming Feb 2003 WDs.
-
Grammar alignment:
’as’ SequenceType in type declarations, function signatures, typeswitch
- Implements element & attribute constructor semantics of Nov. 2002 WDs.
- Added positional variables to FLWOR
- Added support for order-by in FLWOR
- Implemented complete semantics of path expressions, including
document order and removing duplicates.
- Implemented dynamic function dispatch, promotion of arguments to
arithmetic operators
- Transitive ’eq’ operators
Galax features:
-
Command-line options for monitoring memory and CPU usage.
Data model:
-
Updated terminology to align with WDs.
Function library:
-
Changed xf: to fn: prefix
- Added fn:error()
- Added support for fn:base-uri() and fn:lang()
- New semantics for fn:data() and fn:boolean()
8.10 Galax 0.2.0 (October 2002)
Parsing
-
Fixed very large number of bugs. Support for entities and DTDs is
still missing.
- Support for ISO-8859-1 and UTF-8 character encodings.
- Factorized XML and XQuery parsers. Results in more compact code,
easier to improve and maintain.
- Updated XQuery parser to align with latest grammar.
- Alpha support for SAX-based parsing.
Data model:
-
Support for node identity.
- Fixed support for text nodes.
Language:
-
Major revision based on August 16th 2002 working drafts.
- Full support for XPath expressions. Notably XPath parent, ancestor,
ancestor-or-self axis. See STATUS for some remaining deviations.
- Support for node-identity related operations (is, isnot
distinct-nodes, union, intersect, except, etc.).
- Support for type promotion in function calls, arithmetics, etc.
- Fixed many bugs in the semantics, through normalization.
- Added dynamic semantics for type operations through (simplified)
form of matching. Still some bugs there.
Namespaces:
-
Fixed many bugs in namespace support and printing of namespaces.
- Implemented support for default function namespace.
XML Schema:
-
*Very* alpha support for XML Schema import and validation. Basic
datatypes are now supported.
Type system:
-
Updated type inference with the new language.
- Made sure all expressions are type checked, necessary for
optimization.
- Fixed bugs in typing for typeswitch.
Function library:
-
Most of F&O functions are now implemented. Some limitations apply to
XML Schema types not yet supported (notably date and time).
Optimizer:
-
Support for simple query simplification.
Compilation:
-
Removed dependency to the stdlib file.
- Removed dependency to anything but OCaml compilers and standard unix
tools.
- Fixed compilation for both Cygwin and MinGW.
Tests:
-
Added large number of regression tests.
Tools and interfaces:
-
Removed Java API for now. Will be back soon.
- Added very limited user-level api (Galapi) in Caml.
- Changed galax command-lined interpretor. See the new syntax and
options in ./README
- Major revision of the pretty-printer for types and XQuery
expressions. Added support for precedence in both cases.
Documentation:
-
Added examples of calls to the Caml and C API’s in ./example.