Muldis::DB
---------------------------------------------------------------------------

2007-07-20   Darren Duncan <perl@DarrenDuncan.net>

    * Muldis::DB version 0.2.0 for Perl 5 is released on CPAN as
    Muldis-DB-0.2.0.tar.gz.  Muldis::DB version 0.2.0 for Perl 6 is not
    released at this time, if ever, since it is currently released only as
    part of the Perl6-Pugs project (in its ext/Muldis-DB/ subdirectory),
    which sets its own less frequent release schedule.  The rest of this
    Changes entry refers only to the Perl 5 version.

    * Renamed AST.pm to Literal.pm, and split up DB.pm into DB.pod and
    Interface.pm.  Any code that used to be spelled Muldis::DB::AST or
    Muldis::DB is now spelled Muldis::DB::Literal and
    Muldis::DB::Interface.  Following these changes, lib/Muldis/DB.pod is
    still the "main" file for documentation purposes, but for code
    purposes, both Literal.pm and Interface.pm are now used directly.

    * New file versions are: DB.pod and Literal.pm and Interface.pm and
    Language.pod and Validator.pm and Example.pm 0.2.0.

    * Updated the TRANSACTIONS AND CONCURRENCY section of Language.pod in
    regards to how the scope of explicit transactions is specified, and
    where implicit transactions occur.  Also, Muldis D now no longer has
    language for non-scope-attached transactions, and any concept of
    distinct transaction initiation or termination statements will be
    hoisted to the host language (presumably as methods of ::DBMS objects).

    * Updated Core.pod to add the scalar type 'PInt2_36', and to replace
    the pseudo-type 'Any' with the pseudo-type 'Some.Universal', and added
    'Some.Ordinal'.

    * Updated Grammar.pod concerning integer literals; they can be
    represented with any of base-2 thru base-36 now.

    * Updated Grammar.pod and Core.pod concerning enumerated types, such as
    Bool and Order; individual values are now specified using eg
    [Bool:true] rather than [Bool.True], which then makes them more like
    literals of other simple types, and less like data type names.

    * Updated Core.pod to add definitions for the generic operators common
    to all ordinal types: compare, reverse_compare, is_increase,
    is_decrease, min, max.  Added 'reverse' operator for the Order type.
    Added or replaced a bunch of operators for the Int|Blob|Text types.
    Other small changes.

    * Updated Core.pod to add an initial complement of common tuple and
    relation operators (such as project, join, union), perhaps most of
    them.  These are a large part of what makes Muldis D a relational
    language at all.

    * Updated Catalog.pod to add new core data types: Cat.ShortNameSet,
    Cat.AttrRenameMap.

    * Updated Literal.pm to remove all exported functions that trivially
    wrap an object constructor, updated any uses in other files to call
    constructors directly.  Also renamed ::(Bool|Order|Int|Blob|Text)Lit to
    remove the "Lit", and ::(|Quasi)(Tuple|Relation)Sel to remove the
    "Sel", and likewise updated any refs to said.

    * In both Literal.pm and PhysType.pm, renamed any classes named
    (TypeInvo|TypeDict|ExprDict|ValueDict)(|NQ|AQ) to (_\1|\1|Quasi\1)
    respectively, and refs to said.

2007-07-11   Darren Duncan <perl@DarrenDuncan.net>

    * Muldis::DB version 0.1.0 for Perl 5 is released on CPAN as
    Muldis-DB-0.1.0.tar.gz.  Muldis::DB version 0.1.0 for Perl 6 is not
    released at all.  The rest of this Changes entry refers only to the
    Perl 5 version.

    * This is a major release that focuses on overhauling or defining part
    of the Muldis D meta-model / system catalog, which is essential for
    supporting any user-defined DBMS entities, that is, for doing anything
    remotely useful.  Said overhaul is expected to be staged over 3-4
    consecutive releases, of which the current one is essentially just
    updating documentation; not much code was changed by this release.

    * New code file versions are: DB.pm and AST.pm and Validator.pm and
    Example.pm 0.1.0.

    * As of this release, all pod-only files now also have version numbers,
    shown in the VERSION docs by NAME, like code-containing modules do; the
    initial version numbers are all 0.1.0.  Moreover, from now on, the
    version number of Language.pod will expressly be kept equal to that of
    DB.pm, just as AST.pm and Validator.pm and Example.pm are.

    * Muldis D now has 2 representation formats (Concrete Muldis D,
    Abstract Muldis D) rather than 3 (relations, ASTs, strings).

    * Updated SeeAlso.pod to remove the proposal for a separately
    distributed Muldis::DB::AST::StringRepr module; instead,
    Muldis::DB::AST will parse and generate Concrete Muldis D by itself.

    * Rearranged any relevant docs and code so that the most important core
    scalar types are now in the order [Bool, Int, Blob, Text] and the
    relation type factory Maybe now appears after Set.

    * Muldis D now has a new scalar data type, "Order", which is an
    enumeration (like "Bool" is) of 3 values: [Increase, Same, Decrease];
    it is the result type of any binary comparison operator that underlies
    the likes of less|greater-than or min|max or sorting operations.  Both
    the language documentation as well as AST.pm and PhysType.pm were
    updated to include this type.

    * Muldis D now has the new scalar types "Cat.ShortName" and
    "Cat.LongName", which replace the also removed "Cat.EntityName" and its
    (as yet unused) system-defined subtypes.  Only the language docs were
    updated; any code (eg, AST.pm) still refers to the old types.

    * Split up Language.pod 6 ways, into itself and
    Language/(Core|Catalog).pod and
    Language/Ext/(Num|Temporal|Spatial).pod.  For the most part, the only
    initial content of the 5 new files are corresponding portions of what
    used to be the SYSTEM-DEFINED DATA TYPES and (actually empty)
    SYSTEM-DEFINED ROUTINES main documentation sections of Language.pod,
    but that the CATALOGS main section was also moved to Catalog.pod;
    Language.pod retained all the other documentation sections that it
    previously had.  (Language.pod retained about 75% of its previous
    content; about 25% was moved out.)

    * Further updated the 5 language files with type definitions, to update
    some definitions, and also to add a small TYPE SUMMARY main doc section
    to each file.

    * Updated Core.pod to add several main doc sections that have an
    initial complement of system-defined routines.  In particular, the
    equal|not_equal|assign routines that all types have are now defined,
    and all the common boolean and integer operators were added, and some
    converter routines such as int-from-text et al, were all added.  Many
    other operator definitions are pending, especially the relational ones.

    * Added new file lib/Muldis/DB/Language/Grammar.pod, which describes
    Concrete Muldis D details that aren't applicable to Abstract Muldis D.

2007-06-29   Darren Duncan <perl@DarrenDuncan.net>

    * Muldis::DB version 0.0.1 for Perl 5 is released on CPAN as
    Muldis-DB-0.0.1.tar.gz.  Muldis::DB version 0.0.1 for Perl 6 is not
    released at all.  The rest of this Changes entry refers only to the
    Perl 5 version.

    * New code file versions are: DB.pm and AST.pm and Validator.pm and
    Example.pm 0.0.1.

    * The primary purpose of this release is to re-license Muldis::DB under
    actual free software licenses, specifically version 3 of the GPL family
    of licenses, which the Free Software Foundation formally published on
    2007 June 29th.  By contrast, the previous Muldis::DB releases were
    under an expiring proprietary license, with just the promise of a free
    re-license to come.  Accordingly, the file LICENSE/GPL was added to
    this distro, which contains the text of the GPL version 3.0.

    * This release also includes a collection of small documentation
    updates and fixes, such as the following:  We now use the official
    typography for the names 'TTM' and 'D' and such.  Added a DOCUMENTATION
    READING ORDER section to the README file.  Added the 2007 June 4th
    Muldis::DB namespace registration (to the official CPAN module list)
    notice to the Changes file.  Updated parts of DB.pm and Copying.pod
    concerning licensing matters.  This release has no code changes.

2007-06-20   Darren Duncan <perl@DarrenDuncan.net>

    * Muldis::DB version 0.0.0 for Perl 5 is released on CPAN as
    Muldis-DB-0.0.0.tar.gz.  Muldis::DB version 0.0.0 for Perl 6 is not
    released at all.  The rest of this Changes entry refers only to the
    Perl 5 version.

    * This is the first release of the Perl 5 Muldis-DB distribution, and
    the first release of any distribution to contain Perl 5 modules named
    Muldis::DB::\w+.

    * This is the initial file manifest:

        archives/OSCON2005LightningTalk.txt
        archives/OSCON2006SessionProposal.txt
        Changes
        INSTALL
        lib/Muldis/DB.pm
        lib/Muldis/DB/AST.pm
        lib/Muldis/DB/Copying.pod
        lib/Muldis/DB/Engine/Example.pm
        lib/Muldis/DB/Engine/Example/Operators.pm
        lib/Muldis/DB/Engine/Example/PhysType.pm
        lib/Muldis/DB/Language.pod
        lib/Muldis/DB/SeeAlso.pod
        lib/Muldis/DB/Validator.pm
        Makefile.PL
        MANIFEST			This list of files
        MANIFEST.SKIP
        META.yml
        README
        t/MDB_00_Compile.t
        t/MDB_10_AST_Literals.t
        t/MDB_50_Validate_Example.t
        TODO

    * Initial code file versions are: DB.pm and AST.pm and Validator.pm and
    Example.pm and PhysType.pm and Operators.pm 0.0.0.

    * As of this release, Muldis-DB is officially in pre-alpha development
    status.  A lot of documentation and functionality is present, but a lot
    isn't.  What is mostly done is the higher level documentation plus an
    alpha-quality but fundamentally stable public API implementation.  What
    is mostly undone is the reference engine implementation, the test
    suite, and documentation of the API details.  What is already present
    should be sufficient to begin study of Muldis-DB such that it can
    actually be put to use within the next few weeks or months as Muldis-DB
    is fleshed out.  Also, it should be possible now to start writing code
    that uses or extends it.

2007-06-04   Darren Duncan <perl@DarrenDuncan.net>

    The next version of the Module List will list the following module:

      modid:       Muldis::DB
      DSLIP:       cmpOg
      description: Full-featured truly relational DBMS in Perl
      userid:      DUNCAND (Darren Duncan)
      chapterid:   7 (Database_Interfaces)
      enteredby:   ADAMK (Adam Kennedy)
      enteredon:   Tue Jun  5 01:20:11 2007 GMT

    The resulting entry will be:

    Muldis::
    ::DB         cmpOg Full-featured truly relational DBMS in Perl  DUNCAND