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