Release Notes

# Chapter 9 Release Notes

## 9.1 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 Fernandez, Vladimir Gapeyev, Nicola Onose, Philippe Michiels, Doug Petkanics, Christopher Re, Jerome Simeon, 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.

## 9.2 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.

## 9.3 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.

## 9.4 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()

## 9.5 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.