[Ericsson AB]

1 Mnemosyne - Release Notes

This document describes the changes made to the Mnemosyne application. The intention of this document is to list all incompatibilities as well as all the enhancements, bugs and adjustments that have been noted for each previous release of Mnemosyne. Each release thus constitutes one section in this document. The title of each section is the Mnemosyne version number.

1.1 Mnemosyne 1.2.5.1

1.1.1 Improvements and New Features

1.2 Mnemosyne 1.2.5

1.2.1 Improvements and new features

None.

1.2.2 Fixed Bugs and malfunctions

1.3 Mnemosyne 1.2.4

1.3.1 Improvements and new features

None.

1.3.2 Fixed Bugs and malfunctions

1.4 Mnemosyne 1.2.3

1.4.1 Improvements and new features

None.

1.4.2 Fixed Bugs and malfunctions

1.5 Mnemosyne 1.2.2

1.5.1 Improvements and new features

None.

1.5.2 Fixed Bugs and malfunctions

1.6 Mnemosyne 1.2.1

1.6.1 Improvements and new features

None.

1.6.2 Fixed Bugs and malfunctions

Mnemosyne have been modified to handle the new exit codes introduced in OTP-R5C.

1.7 Mnemosyne 1.1

Some internal things have changed (see below) as well as some new functionality. This means that the queries have to be recompiled.

1.7.1 Improvements and new features

1.7.2 Fixed Bugs and malfunctions

1.7.3 Incompatibilities

Some incorrect queries are detected in Erlang compile time rather then during setup / execution in runtime.

The negation operator, not, that was present in earlier versions has been removed. The main reason is that the semantics is unclear in many cases, and almost all questions have no need for a negation. The typical use of negation was something like the following code fragment:

        query [ X ||
                X <- table (employee),
            not X <- rule (chiefs) ] end
        

Here, the query variable, X, is first bound and then a negation is applied. Usages such as these can often be rewritten by first evaluating the negation in a separate query and then the rest of the query. Asuming the query is evaluated using eval the above could be written:

        NegQ = query [ X || X <- rule (chiefs) ] end,
        NegAns = mnemosyne:eval (NegQ),
        Q = query [ X || X <- table(tab),
                         not lists:member (X, NegAns) ],
        Ans = mnemosyne:eval (Q)
        

Note that the not used above is Erlangs own not, not the (old) mnemosyne not.

Also note that the above code is not less efficient then the previous versions (that used not) since the whole negation has to be evaluated.

1.7.4 Known bugs and problems

No new ones. See earlier release notes.

1.8 Mnemosyne 1.0.1

This release is a minor release and the release notes describes the difference between version 1.0.1 and version 1.0 of Mnemosyne.

1.8.1 Improvements and new features

1.8.2 Fixed Bugs and malfunctions

No serious ones.

1.8.3 Incompatibilities

None.

1.8.4 Known bugs and problems

No new ones. See earlier release notes.

1.9 Mnemosyne 1.0

This is the first release of Mnemosyne as an own application, separate from the Mnesia DBMS Engine. The Mnemosyne application must be used in conjunction with Mnesia 3.0 or later.

1.9.1 Improvements and new features

N.A.

1.9.2 Fixed Bugs and malfunctions

N.A.

1.9.3 Incompatibilities

Mnemosyne has been separated from the Mnesia application and this has some minor implications:

1.9.4 Known bugs and problems


Copyright © 1991-2005 Ericsson AB