VERSION 9.4.5 (November 24, 2020) --------------------------------------

 - Minor bug fixes

VERSION 9.4.4 (November 6, 2020) ---------------------------------------

 - Performance tweaks, minor bug fixes

VERSION 9.4.3 (September 11, 2020) -------------------------------------

 - New compile-time optimizations and performance tweaks

VERSION 9.4.2 (August 21, 2020) ----------------------------------------

 - Performance tweaks, bug fixes

VERSION 9.4.1 (July 26, 2020) ------------------------------------------

 - Minor bug fixes and performance tweaks

VERSION 9.4 (July 14, 2020) --------------------------------------------

 WEB APPLICATIONS
 - DBA: support for millions of log entries
 - LOGTRACE option: write trace output to logs or STDERR
 - rest:init: Full or partial initialization of RESTXQ cache
 - basexhttp: register job services
 
 GUI
 - result view: show number of results and result size
 - Shift F4-F7: toggle search options (case, regeex, ..)
 - Ctrl-Shift-B: jump to matching bracket
 
 XQUERY LOCKING
 - single lock option for reading and updating queries
 - Java bindings: annotation added for updating functions
 
 XQUERY FUNCTIONS
 - convenience functions: json:doc, csv:doc, html:doc
 - element names: convert:encode-key, convert:decode-key
 - jobs:eval: option added for writing log entries
 - session module: only create new sessions if required
 
 XQUERY PERFORMANCE
 - boolean comparisons: flatten nested expressions
 - boolean expressions: merge conjunctions
 - comparisons: simplify operands with if expression
 - database functions: always open at compile time
 - databases: propagate to more expressions at compile time
 - filters: inline context for single items
 - filters: rewrite to simple maps
 - FLWOR: inline where clauses into let clauses
 - FLWOR: merge last with return clause, rewrite to simple map
 - FLWOR: rewrite "return if ..." to "where ... return"
 - fn:for-each, fn:filter: rewrite to FLWORs and filters
 - if expression, EBV tests: simplify boolean tests
 - lists, sets, logical expressions: flatten expressions
 - lists: rewrite to union expressions
 - logical expressions: apply more boolean algebra rules
 - paths: remove redundant predicates
 - predicates with name functions: rewrite to name tests
 - predicates: merge expressions, discard redundant tests
 - predicates: remove of superfluous and redundant tests
 - set expressions: merge operands
 - simple map: inline cast expressions
 - simple maps: faster evaluation
 - simple maps: merge operands
 - simple maps: rewrite to paths, optimize for index access
 - switch: rewrite to if expression
 - types: skip redundant checks, promotions  and conversions

VERSION 9.3.3 (May 15, 2020) -------------------------------------------

 - Minor bug fixes, performance tweaks, new query optimizations

VERSION 9.3.2 (March 10, 2020) -----------------------------------------

 - Minor bug fixes, numerous performance tweaks

VERSION 9.3.1 (December 19, 2019) --------------------------------------

 - Minor bug fixes and performance tweaks

VERSION 9.3 (November 29, 2019) ----------------------------------------

 RESTXQ
 - seamless streaming of custom responses to the client
 - Request Module: bind attributes to current request
 - better support for the OPTIONS and HEAD methods
 - enforce premature HTTP response with web:error
 - optional GZIP compression of HTTP responses
 - trace output is now stored in database logs
 - server-side forwarding with web:forward
 
 USER INTERFACES
 - GUI: project view: skip directories with .ignore file
 - GUI: project view: do now follow symbolic links
 - DBA: user panel updated to show user info
 - DBA: faster processing of log entries
 
 STORAGE
 - hot fix for replacing single documents with namespaces
 - improved XQuery processing of binary resources
 - ADDCACHE: faster caching of single documents
 - WITHDB: less locking when using fn:doc
 
 XQUERY FUNCTIONS
 - user:info/user:update-info: process user-specific data
 - db:open-id, db:open-pre: support for multiple ids
 - file:descendants: return descendant file paths
 - inspect:type: return type of a value as string
 - db:alter-backup: rename database backups
 - xsl:transform: support for catalog files
 
 XQUERY PERFORMANCE
 - merge of adjacent/redundant steps in paths and predicates
 - removal of redundant switch, typeswitch and catch clauses
 - interruption of side-effecting code (Files Modul etc.)
 - fn:count: pre-evaluation of zero-or-one arguments
 - faster processing of alternative steps: a/(b,c)
 - rewriting of paths to simple map expressions
 - inlining of values in simple map expressions
 - flattening of nested simple map expressions
 - rewriting of lists to union expressions
 - removal of superfluous predicates

VERSION 9.2.4 (July 26, 2019) ------------------------------------------

 - Minor bug fixes
 - Preview implementations of new 9.3 features

VERSION 9.2.3 (July 5, 2019) -------------------------------------------

 - Numerous query optimization tweaks (paths, simple maps, try/catch)
 - Minor bug fixes

VERSION 9.2.2 (May 21, 2019) -------------------------------------------

 - Windows installer: Shortcuts fixed
 - Bug fixes (Unit tests; sessions:ids; status code from XQuery error)
 - Web Module: Anchor arguments added
 - WITHDB option: fn:doc, consider or exclude database documents

VERSION 9.2.1 (May 7, 2019) --------------------------------------------

 - GUI: faster and smarter parsing of project files
 - RESTXQ: custom reponses are now sent as streams
 - Performance tweaks (static typing: typeswitch, instance of)
 - Minor bug fixes

VERSION 9.2 (April 16, 2019) -------------------------------------------

 XQUERY PERFORMANCE
 - comparisons will more often be rewritten to hash joins
 - optimized access to subsequences and single sequence items
 - consistent propagation of static types to evaluation results
 - improved static typing of function items (maps, arrays)
 - more aggressive pre-evaluation at compile time

 STORAGE PERFORMANCE
 - large databases will be opened faster
 - regular storage offset will be computed at runtime

 GENERAL XQUERY FEATURES
 - no need to import basex-api modules anymore!
 - Archive Module: archive:create-from, new options
 - Database Module: directory-based access via db:dir
 - Profiling Module: new functions (prof:gc, prof:runtime)
 - Validation Module: assign XSD validation features
 - WebSocket Module: query scheduling via ws:eval
 - Utility Module: various new helper functions
 - XSLT Module: support for XML Catalogs (thank you Liam)

 NEW OPTIONS
 - RESTXQERRORS: Suppress parsing errors at runtime
 - FULLPLAN: comprehensive query plan information

 FULLTEXT FEATURES
 - stemmer for Arabic texts added

 USER INTERFACES
 - GUI: better support for latest JDK versions (incl. OpenJDK)
 - DBA: revised search features in log panel

VERSION 9.1.2 (January 22, 2019) ---------------------------------------

 Minor bug fixes; performance tweaks (faster WebDAV access).

VERSION 9.1.1 (December 14, 2018) --------------------------------------

 XQuery:
 - Comprehensive rewritings of positional predicates and functions
 - Higher-order functions: Improved type inference
 - Improved rewriting of context-based and/or nested predicates

 Java Bindings:
 - Faster access to and evaluation of Java functions and variables
 - Improved pre-selection of function candidates at compile time
 - Better error messages (incl. function arity and similar names)

 DBA:
 - Settings: user-defined pattern for ignoring log entries
 - Login: pass on URL query strings

 Minor improvements:
 - Import: detect epub files as ZIP archives
 - Digest Authentication: No delay after first request
 - GUI, Preferences: user-defined choice of XML suffixes

VERSION 9.1 (October 31, 2018) -----------------------------------------

 WebSockets:
 - New web service for full-duplex client/server communication
 - WebSocket Module: functions for organizing WebSocket connections
 - Embedded sample chat application

 XQuery:
 - syntax extensions: Elvis operator, ternary if, if without else
 - local locks via pragmas and function annotations
 - Jobs Module: record and return registration times
 - Database Module: faster processing of value index functions
 - Update Module, update:output: support for caching maps and arrays
 - ENFORCEINDEX option: support for predicates with dynamic values
 
 GUI:
 - Mac, Windows: Improved rendering support for latest Java versions
 - Choose and display context for XQuery editor expressions

VERSION 9.0.2 (May 31, 2018) -------------------------------------------

 Critical bug fixes:
 - XQuery: Node ordering of mixed database/fragment instances
 - XQuery: Index rewritings of paths with nested positional predicates

 Improvements:
 - WebDAV: Much faster locking of database resources
 - XQuery: Enable ENFORCEINDEX for variable predicate arguments
 - GUI: Larger interaction components, unified font sizes

 Minor Bug fixes:
 - DBA: Suppress menu on login page
 - Commands: Nested evaluation with variable bindings
 - XQuery: Static typing of lookup expressions

VERSION 9.0.1 (April 24, 2018) -----------------------------------------

 Critical bug fixes:
 - Storage: Short strings with extended Unicode characters fixed
 - XQuery: Nested path optimizations reenabled (e.g. in functions)
 - XQuery: map:merge, size computation fixed
 - XQuery: node ordering across multiple database instances fixed

 Improvements:
 - GUI: Better Java 9 support (DPI scaling, font rendering)
 - XQuery, collections: faster document root tests
 - New R client. Thanks Ben Engbers!
 - Linux: exec command used in startup scripts

 Minor Bug fixes:
 - XQuery: Allow interruption of tail-call function calls
 - XQuery, HTTP parsing of content-type parameters
 - XQuery, restrict rewriting of filter to path expression
 - GUI: progress feedback when creating databases via double-click

VERSION 9.0 (March 23, 2018) -------------------------------------------
 
 XQUERY
 - Comprehensive extensions in the internal XQuery optimizer framework
 - Dynamic hash joins rewritings of general comparisons
 - Register query jobs as persistent services
 - Process very large CSV files via the new CSV 'xquery' format
 - Update Module: higher-order functions for performing updates
 - Unified static typing, including maps, arrays and function items
 - COPYNODE: Lightweight copying of XML fragments
 - ENFORCEINDEX: Enforce rewriting for index access
 
 STORAGE
 - Improved database compression (short strings, whitespaces)
 
 WEB APPLICATIONS
 - Permissions layer: Unified definition of RESTXQ access patterns
 - RESTXQ: Full support for client- and server-side quality factors
 - REST: Run BaseX command scripts
 - Web server upgrade to Jetty 9
 
 REPOSITORIES
 - Combined packaging mechanism (XQuery and Java)
 - Java Packaging: Bundling of additional libraries
 
 DISTRIBUTIONS
 - Revised detection and configuration of BaseX home directory
 - Windows executable: better detection of Java libraries
 
 DBA: BASEX DATABASE ADMINISTRATION
 - Improved editing and evaluation of XQuery modules
 - Revised file, session and job management
 
 MINOR UPDATES
 - NEW: convert:binary-to-integers: return binary data as octets
 - NEW: db:option: return value of system option
 - NEW: fetch:xml-binary: retrieve XML from binary data
 - NEW: jobs:invoke: schedule job based on input file
 - NEW: out:cr: return carriage return
 - NEW: proc:fork: execute command in separate thread
 - NEW: prof:track: measure runtime and memory
 - NEW: util:replicate: return results multiple times
 - NEW: IGNOREHOSTNAME (certificates verification)
 - UPDATE: convert:integers-to-(base64|hex) renamed
 - UPDATE: file:read-text-lines: new $offset/$length arguments
 - UPDATE: fn:put: specify serialization parameters
 - UPDATE: http:send-request: support for compressed responses
 - UPDATE: proc:system, new input option: pass on stdin
 - UPDATE: prof:time, prof:memory: signatures updated
 - UPDATE: sql:execute(-prepared) returns update count
 - UPDATE: update:output(-cache) renamed; before: db:output(-cache)
 - UPDATE: web:response-header: status/message attributes
 - UPDATE: xquery:eval: new pass option (pass on error info)
 - UPDATE: xquery:eval-update renamed; before: xquery:update
 - UPDATE: xquery:parse(-uri): base-uri option added
 - UPDATE: xslt:transform(-text): cache XSLT transformer
 - UPDATE: JSON Module, 'xquery' format renamed; before: 'map'
 - UPDATE: Lazy Module renamed; before: Streaming Module
 - UPDATE: GUI: serialization parameters for result output
 - UPDATE: XQuery: numeric errors replaced with descriptive names
 - UPDATE: BaseXServer option -c accepts URLs and file references

VERSION 8.6.7 (September 21, 2017) -------------------------------------

 Bug fixes, performance (fn:tail, static typing in group by clauses).

VERSION 8.6.6 (August 24, 2017) ----------------------------------------

 Bug fixes (map:merge, where clauses), performance tweaks.

VERSION 8.6.5 (July 28, 2017) ------------------------------------------

 Various performance tweaks, minor fixes.

VERSION 8.6.4 (May 18, 2017) -------------------------------------------

 Bug fixes (one critical), various performance tweaks.

VERSION 8.6.3 (April 6, 2017) ------------------------------------------

 Bug fixes, performance enhancements.

VERSION 8.6.2 (March 13, 2017) -----------------------------------------

 Minor bug fixes and performance tweaks.

VERSION 8.6.1 (February 24, 2017) --------------------------------------

 Minor bug fixes and improvements:
 - Core, locking: revised locking of jobs exceeding PARALLEL limit
 - Client/Server: improved logging of unexpected exceptions
 - XQuery optimization: faster iteration of atomized values
 - GUI, Project View: only repaint relevant sub tree after updates
 - GUI, Project View: improved file search
 - GUI, Editor: revised rendering of whitespaces and long strings
 - GUI, Info View: limit size of evaluation cache

VERSION 8.6 (January 24, 2017) -----------------------------------------

 LOCKING
 - jobs without database access will never be locked
 - read transactions are now favored (adjustable via FAIRLOCK)

 RESTXQ
 - file monitoring was improved (adjustable via PARSERESTXQ)
 - authentication was reintroduced (no passwords anymore in web.xml)
 - id session attributes will show up in log data

 DBA
 - always accessible, even if job queue is full
 - pagination of table results

 INDEXING
 - path index improved: distinct values storage for numeric types

 XQUERY
 - aligned with latest version of XQuery 3.1
 - updated functions: map:find, map:merge, fn:sort, array:sort, ...
 - enhancements in User, Process, Jobs, REST and Database Module

 CSV DATA
 - improved import/export compatibility with Excel data 

VERSION 8.5.3 (August 15, 2016) ----------------------------------------

 Minor bug fixes, improved thread-safety.

VERSION 8.5.2 (July 21, 2016) ------------------------------------------

 Minor bug fixes and performance tweaks.

VERSION 8.5.1 (July 11, 2016) ------------------------------------------

 Bug fixes, experimental 8.6 features.

VERSION 8.5 (July 4, 2016) ---------------------------------------------

 DATABASE JOBS
 - all registered database jobs are now centrally administered
 - jobs can be scheduled (periodical execution, start/end time)
 - job results can be cached and retrieved later on
 - new Jobs Module: XQuery functions for managing jobs
 - new commands: JOBS [LIST|RESULT|STOP]
 - DBA: visualization of currently registered jobs

 XQUERY
 - parallel execution via xquery:fork-join (thank you, James Wright!)
 - alignments with the latest changes in the XQuery 3.1 specification
 - easy chaining of update operations with the 'update' keyword
 - numerous optimizations, smarter rewritings and heuristics

 XQUERY MODULES
 - File, Conversion, Fetch Module: handling of invalid XML characters
 - Inspection Module: inspect:function-annotations added

 OPTIONS
 - LOGPATH: custom path for logging data
 - CACHETIMEOUT: timeout for dropping cached job results
 - AUTHMETHOD: `custom` added to skip authentication 

VERSION 8.4.4 (May 3, 2016) --------------------------------------------

 Minor bug fixes and tweaks.

VERSION 8.4.3 (April 13, 2016) -----------------------------------------

 Minor bug fixes, experimental 8.5 features.

VERSION 8.4.2 (March 30, 2016) -----------------------------------------

 Minor bug fixes, performance tweaks, experimental 8.5 features.

VERSION 8.4.1 (March 3, 2016) ------------------------------------------

 Minor bug fixes, experimental support for 8.5 features.

VERSION 8.4 (February 8, 2016) -----------------------------------------

 GUI
 - Project View: parse all modules in a project in the background
 - Create Database, Properties: access to advanced database options
 - Sort Dialog: order by column positions and locale collation

 INDEXING
 - New Token Index: speedy token lookups in DITA and HTML documents 
 - Including full support for incremental and main-memory databases
 - XQuery optimizations for fn:contains-token, fn:tokenize, fn:idref

 WEB APPLICATIONS
 - Cancel server-side queries via %rest:single annotation
 - DBA query editor: faster querying, better responsivity
 
 XQUERY
 - Database Module: ADDCACHE support (caching of large results)
 - Direct output of binary data with new 'basex' serialization method
 - Better XQuery 3.1 compliance: string constructors, new functions
 - Java bindings: address specific Java function signatures
 - User Module: create users and grant permissions in one step

 DOCUMENTATION
 - Many Wiki articles have been revised and updated

VERSION 8.3.1 (October 29, 2015) ---------------------------------------

 - XQuery 3.1: alignments with latest spec
 - Bug fixes (GUI errors, XPath optimizations)

VERSION 8.3 (September 23, 2015) ---------------------------------------

 SELECTIVE INDEXING
 - restrict value indexing to given elements and attributes
 - support extended to updatable and main-memory databases

 VALIDATION
 - support for RelaxNG validation (XML and compact syntax)
 - optional XML Schema 1.1 support
 - new function for creating validation reports

 XQUERY MODULES
 - Strings Module: Levenshtein, Soundex, Cologne Phonetic
 - updates in the Archive, Database, Admin and Process modules

 DBA
 - File panel: upload and download files

 BUG FIXES
 - automatic database optimization if node id turns negative
 - XQuery optimizations, performance tweaks, WebDAV issues

VERSION 8.2.3 (July 14, 2015) ------------------------------------------

 Bug fixes (DBA, admin:write-log; namespaces)

VERSION 8.2.2 (July 6, 2015) -------------------------------------------

 Various bug fixes (all minor)

VERSION 8.2.1 (June 9, 2015) -------------------------------------------

 DBA
 - code highlighting (thanks, James Ball!)
 - new panel for up- and downloading files
 - queries and files are now stored in a temporary directory

 GENERAL
 - various bug fixes

VERSION 8.2 (May 21, 2015) ---------------------------------------------

 XQUERY
 - much faster sequence modification via finger trees
 - improved compliance with XQuery 3.1

 DBA
 - open, save and delete queries
 - better Tomcat support

 STORAGE
 - updatable index structures: reduced disk space consumption

 XQUERY FUNCTIONS
 - Standard Module: fn:json-to-xml, fn:xml-to-json
 - Web Module: web:encode-url, web:decode-url
 - File Module: file:is-absolute, file:resolve-path
 - Admin Module: admin:delete-logs
 - Database Module: db:output-cache

 BUG FIXES
 - locking, full-text requests, stemming

 REMOVED FEATURES
 - event handling (will be replaced by database triggers)

VERSION 8.1.1 (April 16, 2015) -----------------------------------------

 Various bug fixes (all minor)

VERSION 8.1 (March 28, 2015) -------------------------------------------

 XQUERY
 - efficient Finger Tree algorithm for arrays
 - prof:variables() outputs list of currently bound variables
 - new higher-order functions: hof:scan-left, hof:take-while

 WEB APPLICATIONS
 - Web Module offers convenience functions for building web apps
 - RESTXQ: %input annotation; input-specific content-type parameters

 OPTIONS
 - RESTPATH: specify server path for queries and command scripts
 - IGNORECERT: ignore untrusted certificates when connecting to servers

 COMMAND-LINE
 - Bind input strings to the query context with -I

VERSION 8.0.3 (March 19, 2015) -----------------------------------------

 Various bug fixes (all minor)

VERSION 8.0.2 (March 9, 2015) ------------------------------------------

 REST
 - Better support for concurrent read and write operations

 XQUERY
 - Speed up wildcard queries without wildcards
 - XQUnit: compare error codes as QNames
 - Fix: process each single flwor clause when removing variables
 - Fix: consider xml:space='preserve' during serialization

 CORE
 - Fix: consider case when pinning databases

 HTTP:
 - Fix: digest authentication, correct quoting

VERSION 8.0.1 (February 22, 2015) --------------------------------------

 XQUERY
 - Faster execution of single, index-based results
 - Iterative evaluation of steps with multiple predicates

 Minor bug fixes:
 - WebDAV locking
 - Archive Module
 - Adaptive serialization of arrays and maps
 - Digest Authentication
 - Save command-line history

VERSION 8.0 (February 9, 2015) -----------------------------------------

 XQUERY
 - Support for XQuery 3.1 (nearly complete)
 - New default serialization ("adaptive")
 - MIXUPDATES option: update items and return results at the same time
 - Improved index rewritings, more precise cost estimations
 - New modules: Array and User Module
 - New annotations: %basex:inline, %basex:lazy
 - 13 of our modules were updated and extended

 STORAGE
 - Existing documents will be overwritten in-place whenever possible
 - Updatable index structures now take much less space
 - Faster document index (storing paths to all XML documents)
 - AUTOOPTIMIZE option: optimize after each update
 - XINCLUDE option: resolve or ignore XInclude tags

 SECURITY
 - Revised user management; users are stored as XML
 - Digest authentication, Salted SHA256
 - Language bindings updated

 WEB APPLICATIONS
 - Integrated application: DBA, Database Administration
 - AUTHMETHOD option: Basic vs. Digest authentication
 - RESTXQ: regular expressions in paths, quality factor support

 GUI
 - Better code completions

VERSION 7.9 (June 27, 2014) --------------------------------------------

 XQUNIT
 - Unit testing has been improved a lot. All test functions will now be
   evaluated separately; this way, updates can be performed within test.
 - with the new TEST command, all test modules in a specified directory
   can be evaluated.
 - tests can be invoked from within the GUI editor and project view.
 - on command-line, the -t flag can be used for the same purpose.

 RESTXQ
 - Custom HTTP methods can be defined via %rest:method
 - Error handling has been improved and aligned with try/catch

 XQUERY MODULES
 - Database Module: parsing options for db:create/db:add

 REST
 - The "run" operation allows execution of server-side command scripts

VERSION 7.8.2 (April 4, 2014) ------------------------------------------

 GUI
 - Ctrl-U: efficiently sort large texts
 - Ctrl-H, Ctrl-J: context-sensitive behavior
 - tweaked code automatisms

 STORAGE, UPDATES
 - faster processing of documents with namespaces

 XQUERY MODULES
 - Database Module: alter, copy, create-backup, drop-backup, restore
 - Admin Module: new merge option, existing functions revised
 - XQuery Module: new evaluation options (memory, timeout, permissions)

 XQUERY OPTIMIZATIONS
 - always show full stack trace (enforce it with INLINELIMIT=0)
 - show stack trace again
 - better error messages
 - improved function inlining
 - prevent pre-evaluation of try/catch
 - Easter egg: partial sums (little Gauss) calculation

 API
 - WebDAV: improved password processing
 - Client/Server: reduce waiting time if password is wrong

VERSION 7.8.1 (February 26, 2014) --------------------------------------

 ADDED
 - Editor, Ctrl-H: filter by opened file type and selected text
 - XML Parsing: support for TAR & TGZ

 UPDATED
 - XQuery errors: function not found -> suggest similar one
 - Commands: improved parsing (allow more whitespaces)
 - French translation (thanks to Maud Ingarao!)

 FIXED
 - XQuery Update: nested transform expressions
 - XQuery: always return boolean when calling doc-available()
 - XQuery: disallow impossible casts before removing variables
 - Binary Module: iterative evaluation of bin:octets()
 - Commands, REPO INSTALL: install packages in same directory
 - CSV/JSON: serialization of underscores

VERSION 7.8 (February 12, 2014) ----------------------------------------

 GUI
 - new project view for organizing and opening project files
 - realtime search of project files and contents
 - various new editor shortcuts and code completions, code formatting

 UPDATES
 - improved performance of delete and insert operations
 - faster in-place value updates
 - 'update': convenience keyword for transform expressions

 XQUERY OPTIMIZATIONS
 - XQuery functions are now inlined and further optimized
 - closure optimizations, better static typing
 - improved detection and rewriting of tail calls
 - faster processing of (sub)sequences

 XQUERY MODULES
 - JSON and CSV Module: updated and enhanced conversion rules
 - Unit Module: enhanced test report output
 - Map Module: map:serialize added; syntax aligned with latest spec.
 - File Module: aligned with changes in EXPath spec.
 - XQuery Module: xquery:evaluate (operates on opened databases)
 - Full-Text Module: ft:contains added, ft:search: more options
 - EXPath Binary Module added
 - Java modules: support for locking annotations

 API
 - New options: INLINELIMIT, TAILCALLS, DEFAULTDB, RUNQUERY
 - New command-line flag: -R only parse query
 - Russian translation added (thanks to Oleksandr Shpak!)
 - Spanish translation added (thanks to Carlos Marcos!)

VERSION 7.7.2 (October 7, 2013) ----------------------------------------

 XQUERY
 - CSV Module and serialization added
 - JSON serializer updated (more to follow)
 - update checks in modify clause fixed
 - parsing of new map syntax fixed (ignoring spaces)
 - tail call handling in built-in higher order functions fixed

 API
 - Russian translation added (thanks to Oleksandr Shpak, Max Shamaev)
 - command-line arguments starting with '<' are interpreted as XQuery

 INDEXING
 - bug fixed in updatable index structure

VERSION 7.7.1 (September 16, 2013) -------------------------------------

 XQUERY
 - new map syntax: { 'key' : 'value' }
 - tail call optimization for dynamic functions
 - optimize fn:subsequence() calls and sequence casts
 - db:optimize(): original options are preserved

 WEBDAV
 - return non-breakable spaces as &#xA0;

 CORE
 - avoid OutOfMemory exception when building large databases

VERSION 7.7 (August 7, 2013) -------------------------------------------

 XQUERY
 - Our XQuery 3.0 support is now complete!
   http://docs.basex.org/wiki/XQuery_3.0
 - the Unit Module allows standardized testing of XQuery applications
   http://docs.basex.org/wiki/Unit_Module
 - the Streaming Module speeds up operations on large files
   http://docs.basex.org/wiki/Streaming_Module
 - the Inspection Module provides reflection and documentation features
   http://docs.basex.org/wiki/Inspection_Module
 - we have added support for XQuery collations
   http://docs.basex.org/wiki/Full-Text#Collations
 - we have extended the Database, Archive, File and other Modules
   http://docs.basex.org/wiki/Module_Library

 COMMANDS
 - database names have got more flexible
   http://docs.basex.org/wiki/Commands#Valid_Names
 - we have new options for simplifying the creation of large databases
   http://docs.basex.org/wiki/Options

 WEB/HTTP SERVICES
 - WebDAV has been enriched with locking features (sponsored feature!)
   http://docs.basex.org/wiki/WebDAV#Locking
 - RESTXQ has been improved and extended:
   http://docs.basex.org/wiki/RESTXQ

VERSION 7.6 (February 5, 2013) -----------------------------------------

 DATABASE LOCKING:
 - updates on different databases can now be executed in parallel and
   won't lock your read-only queries anymore:
   http://docs.basex.org/wiki/Transaction_Management

 XQUERY
 - when errors are raised, the full stack trace is now returned
 - the EXPath Geo Module, Fetch Module and HTML Module have been added:
   http://docs.basex.org/wiki/Module_Library
 - the Validation, XSLT, Database and Profiling Module have been updated

 GUI
 - error messages are now clickable and linked with the text editor
 - trace/profiling output is redirected to the info view in realtime

VERSION 7.5 (December 21, 2012) ----------------------------------------

  XQUERY UPDATE
  - bulk updates are now much faster than before
  - insert and replace operations take much less memory
  - databases can now be created via XQuery and db:create()

  GUI TEXT EDITOR
  - a fast and flexible search/replace panel has been added
  - error highlighting has been extended to XML files
  - the editor was improved for editing arbitrary text files

  XQUERY 3.0
  - the code has been aligned with latest changes in the specs
  - HTML5 support has been updated

  WEB APPLICATIONS
  - new modules have been added: Request, Session, Sessions
  - logging has been revised and extended to HTTP requests
  - SSL support added, switched to Jetty 8
  - all operation modes have been unified and simplified
  - RESTXQ elements added to simplify forwarding and redirects

  CORE FEATURES
  - improved stability of concurrent read/write operations
  - the INSPECT command performs database sanity checks
  - EXECUTE triggers the execution of command scripts

VERSION 7.3 (June 18, 2012) --------------------------------------------

  - Many new internal XQuery Modules have been added, and existing
    ones have been revised to ensure long-term stability of your future
    XQuery applications: http://docs.basex.org/wiki/Module_Library
  - A new powerful Command API is provided to specify BaseX commands
    and scripts as XML: http://docs.basex.org/wiki/Commands#Basics
  - The full-text fuzzy index was extended to also support wildcard
    queries: http://docs.basex.org/wiki/Full-Text
  - The XQuery 3.0 simple map operator gives you a compact syntax to
    process items of sequences: http://docs.basex.org/wiki/XQuery_3.0
  - BaseX as Web Application can now start its own server instance:
    http://docs.basex.org/wiki/Web_Application
  - All command-line options will now be executed in the given order:
    http://docs.basex.org/wiki/Startup_Options
  - Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
    Update and Full Text extensions: http://xqj.net/basex/

VERSION 7.2.1 (April 27, 2012) -----------------------------------------

  - Our value indexes now support string-based range queries:
    http://docs.basex.org/wiki/Indexes#Value_Indexes
  - Our new XQJ API is based on Charles Foster's implementation.
    It fully utilizes the client/server architecture:
    http://xqj.net/basex
  - Import of XQuery modules has been simplified:
    http://docs.basex.org/wiki/Repository
  - Better Java code integration:
    http://docs.basex.org/wiki/Java_Bindings
  - Full support for the XQuery 3.0 Regular Expressions syntax:
    http://www.w3.org/TR/xpath-functions-30/#regex-syntax
  - Updating functions can now return values:
    http://docs.basex.org/wiki/Database_Module#db:output
  - Unified handling of document and database URIs:
    http://docs.basex.org/wiki/Databases#Access_Resources
  - Pinning of opened database replaced by filesystem locking:
    http://docs.basex.org/wiki/Transaction_Management#Locking
  - REST, RESTXQ, WebDav: concurrency issues fixed

VERSION 7.2 (March 24, 2012) -------------------------------------------

  - support for the new RESTXQ API for building XQuery web services
  - improved support for running BaseX as web application
  - XQuery: higher order functions added to speed up Top-K queries
  - proxy server settings added
  - advanced TagSoup options added for importing HTML files
  - XQuery: faster traversal of full-text index entries: ft:tokens()
  - Command-line: embedded readline and history support via JLine
  - XQuery 3.0: annotation added, updated EQName syntax (Q{uri}name)
  - opened databases are now pinned OS-wide to reduce write conflicts
  - HTML5 serialization of query results
  - a printable version of our Wiki documentation

VERSION 7.1.1 (February 19, 2012) --------------------------------------

  GUI:
  - new "Package" dialog: to list, install and delete XQuery Packages
  - "New/Add" dialog: "RAW" input format allows import of raw files;
    automatic detection of input formats, increased usability
  - "Export" dialog enhanced to support other methods like JSON,
    and various serialization parameters

  Command-Line:
  - new option -L: add trailing newline after query result
  - new option -C: execute commands from batch script

  REST:
  - new "option" parameter: set options before executing request

  Full-Text:
  - Indonesian Stemmer (thanks Andria Arisal!)

  IO:
  - faster read/write access to byte arrays

VERSION 7.1 (February 8, 2012) -----------------------------------------

  GUI
  - improved document management: hierarchical view of db resources
  - easier index creation/removal and database optimization
  - JSON/JsonML parser added
  - editor: updated and reopened files are reverted from disk

  REST
  - automatic XML conversion of popular content types
    (JSON/JsonML, CSV, HTML)

  XQUERY
  - new index module for directly accessing database index structures
  - new repository module to manage EXPath packages via XQuery
  - db:list-details() returns information on the database resources
  - db:content-type() retrieves content-type of a specific resource
  - ft:tokens() returns full-text tokens stored in the index
  - ft:tokenize() tokenizes a given input string
  - util:path() returns the path to the executed query file
  - util:time() prints the time needed to evaluate a given expression
  - util:mem() prints allocated memory for evaluating an expression
  - expanded QNames, computed namespace constructors

  COMMAND-LINE
  - multiple query files and -c/-i/-q flags can now be specified

  INDEXING
  - ID/Pre mapping, incremental indexing of value index structures
  - document index fix: correct replacement of existing documents
  - document index: faster updates

  OPTIONS
  - ADDRAW: add raw files if not filtered by CREATEFILTER
  - MAXLEN: max. length of strings to be added to the index structures
  - MAXCATS: max. number of distinct values stored in statistics
  - UPDINDEX: turn on incremental index updates for value indexes
  - improved BINDINGS option

  CLIENT/SERVER
  - improved log output if query iterator is used
  - new ActionScript API (thanks to Manfred Knobloch!)

  SERIALIZATION
  - "newline" parameter specifies the type of newline to be used

  COMMANDS
  - KILL command accepts IP:port combination to specify target

  TRANSLATIONS
  - Bahasa Indonesian: thanks to Andria Arisal!
  - Mongolian: thanks to Tuguldur Jamiyansharav!

VERSION 7.0.2 (November 11, 2011) --------------------------------------

  FULL TEXT
  - Stemming support for Japanese text corpora
    (thanks to Toshio HIRAI!)

  STARTUP
  - Updated start scripts (thanks to Ralf Jung!)
  - System property "org.basex.path" added to specify
    project's home directory (thanks to malamut2!)

  XQUERY
  - Numerous minor XQuery 3.0 enhancements and fixes
  - Fix for db:optimize() calls (thanks to Martin Hillert!)

  STORAGE
  - Fix to retain newly introduced namespaces
    (thanks to Laurent Chevalier!)

  USERS
  - Default privileges for new users set to "none"
    (thanks to Pascal Heus!)

  REST
  - query base URI for evaluated queries is now $HTTPPATH
    (thanks to Florent Georges!)

VERSION 7.0.1 (October 23, 2011) ---------------------------------------

  DISTRIBUTIONS
  - Windows installer was updated to support latest features
  - ZIP file was updated (initial config & directories added)
  - Short directory names are chosen if config file resides in app.dir.
  - Start scripts have been improved

  XQUERY
  - much faster execution of count() when applied to opened databases

  SERVER
  - Flag -c connects to an existing database server
  - Flag -s specifies a port for stopping the HTTP server (Jetty)
  - Flag -S starts the HTTP server as a service
  - running write operations will be completed before server is stopped

  API
  - Ruby, Python, PHP, Java: clients updated

VERSION 7.0 (October 14, 2010) TEI EDITION -----------------------------

  API
  - Native and tightly integrated REST implementation replaces JAXRX
  - WebDAV provides a file system like access to BaseX databases

  XQUERY
  - Parsing and serializing JSON documents
  - SQL module builds a JDBC bridge to access relational databases
  - EXPath Cryptographic Module for encryption and XML Signatures
  - Full text engine tokenizes Japanese texts (thx to Toshio Hirai!)
  - db:retrieve() and db:store() handle raw data
  - util:uuid() to create random universally unique identifier
  - db:content-type() retrieves the content type of a resource
  - db:exists() checks if the specified database or resource exists
  - db:is-raw(), db:is-xml() check existence and type of a resource
  - db:list(), db:open() uses two separate arguments to specify
    database and resource path
  - further modifications: db:add(),

  SERVER
  - BaseX HTTP Server activates the REST and WebDAV services
  - ITER command returns all results in one go and the client
    handles the iterative execution

  COMMANDS
  - FLUSH command to write all database buffers to disk
  - STORE command to store raw data in a database
  - RETRIEVE command to get raw data from the database
  - modified ADD command

  OPTIONS
  - SERVERHOST: to specify a server
  - KEEPALIVE: optional timeout to close inactive client sessions
  - AUTOFLUSH database buffers
  - QUERYPATH: path to executed query

VERSION 6.7.1 (July 28, 2011) BALISAGE EDITION -------------------------

  XQuery:
  - New database functions for adding, deleting, renaming
    and replacing documents, and optimizing databases:
    http://docs.basex.org/wiki/Database_Functions
  - XSLT transformations via Java or Saxon:
    http://docs.basex.org/wiki/XSLT_Functions
  - All XQuery 3.0 functions are now supported:
    http://docs.basex.org/wiki/XQuery_3.0
  - Tail-call optimizations to speed up recursive functions

  Storage:
  - Use ADDARCHIVES to parse files within archives
  - Use SKIPCORRUPT to skip non-well-formed files when
    creating a database: http://docs.basex.org/wiki/Options
  - Max. level depth limit (256) removed
  - The document index is now incrementally updated

  GUI:
  - "Manage Database" dialog now supports operations on
    multiple databases and the command-line glob syntax:
    http://docs.basex.org/wiki/Commands#Glob_Syntax
  - Drag and drop operations introduced for opening new files
    and copying file paths

  Client/Server:
  - Delay clients that repeatedly fail to login
  - All remaining plain-text password operations now use
    MD5 to send and log passwords

VERSION 6.7 (June 30, 2011) --------------------------------------------

  Main Features:
  [ADD] Native support for the EXPath Packaging system:
        http://docs.basex.org/wiki/Packaging
  [ADD] Client/server event notification:
        http://docs.basex.org/wiki/Events
  [ADD] Persistent document index added to speed up
        access to large collections

  XQuery:
  [ADD] New database and full-text functions:
        http://docs.basex.org/wiki/Database_Functions
        http://docs.basex.org/wiki/Full-Text_Functions
  [ADD] Event function added to fire events
  [MOD] Index optimizations, better cost estimations

  Commands:
  [ADD] Glob syntax introduced to database commands:
        http://docs.basex.org/wiki/Commands
  [ADD] New commands added: REPLACE, RENAME,
        REPO DELETE/INSTALL/LIST, CREATE/DROP EVENT
  [MOD] BACKUP optimized, renamed to CREATE BACKUP

VERSION 6.6.2 (May 13, 2011) LINUXTAG RELEASE --------------------------

  API:
  [ADD] JAX-RX API now supports basic user authentication:
        http://docs.basex.org/wiki/JAX-RX_API
  [ADD] The COPY creates identical database copies:
        http://docs.basex.org/wiki/Commands#COPY
  [ADD] The OPTIMIZE ALL command minimizes all database structures:
        http://docs.basex.org/wiki/Commands#OPTIMIZE

  XQuery:
  [ADD] map expressions and functions added:
        http://docs.basex.org/wiki/Map_Functions
  [MOD] File module aligned with latest EXPath specification:
        http://docs.basex.org/wiki/File_Functions
  [MOD] Speedup of full-text queries with keyword lists.
        Example: $x contains text { 'a', 'b', 'c', ...}
  [MOD] XQuery Update optimizations for replacing nodes;
        tree-aware updates.
  [MOD] XQuery optimizations to avoid materialization of sequences.

  GUI:
  [ADD] Multiple editor tabs added
  [ADD] Database management: copy databases

  Core:
  [ADD] Internal XML parser: HTML entities added
  [FIX] Glob syntax: support for multiple file suffixes

VERSION 6.6.1 (March 30, 2011) XML PRAGUE RELEASE ----------------------

  XQuery:
  [ADD] index rewritings added for .../text()[. = ..] syntax
  [ADD] optimizations of mixed axis path expressions, e.g.: //x/name()
  [MOD] index rewritings on collections fixed and generalized
  [MOD] faster evaluation of filters with pos. predicates, e.g.: $x[5]
  [FIX] fixed relocation of let clauses in GFLWOR expressions
  [FIX] trace function returned wrong original results
  [FIX] variables in catch clauses were discarded
  [FIX] HOF optimizations and fixes

  GUI:
  [FIX] language option (for Japanese, German, etc. interface) fixed

VERSION 6.6 (March 23, 2011) -------------------------------------------

  [ADD] XQuery 3.0: Full support of Higher Order Functions
        (dynamic function invocation, inlined functions, etc.)
  [ADD] XQuery: Full support of the EXPath ZIP and HTTP modules
  [MOD] XQuery Update: numerous speedups, memory consumption reduced
  [ADD] Commands: COPY command added to clone existing databases
  [ADD] CSV/Test importers revised, ENCODING option added to CSV/Text
        parsers
  [ADD] XQuery utility functions added:
        util:format(), util:crc32(), util:md5(), util:sha1(), etc.
  [ADD] XQuery 3.0: context item and decimal-format declarations
  [FIX] Storage and update features revised, bugs fixed

VERSION 6.5 (November 17, 2010) ----------------------------------------

  [ADD] Commands: LIST extended by optional database [path] argument
  [ADD] JAX-RX: full database path is now used to list documents within
        a database. Use "query" parameter to show document contents
  [ADD] JAX-RX: bind external variables to query and run parameter
  [ADD] Windows Installer: creates startmenu entries,
        sets file associations and path environment entries
  [ADD] GUI/Create: support different input formats: XML, HTML, Text, ..
  [MOD] Commands: Allow hierarchical paths in OPEN command
  [MOD] APIs: UTF-8 encoding added to Java binding
  [FIX] Storage: text decompression synchronized
  [FIX] XQuery: context choice in filter predicates
  [MOD] JavaDoc: package.html files added and updated
