                             Muldis::D::Manual
---------------------------------------------------------------------------

Following is a summary of things that still need doing.  It is specific to
the Muldis D language and implementations manual distribution only, and
doesn't talk about things that would go in other distributions.

The following list is loosely ordered by priority, but list items may
actually be addressed in a different order.  There is no specific time
table for these items; they are simply to be done "as soon as possible".

* Generally speaking, make a new release to CPAN once every week, assuming
the progress is non-trivial, so there are regular public snapshots with
nicely rendered documentation.

* IN PROGRESS ...
Start this distribution, which collects miscellaneous and large
documentation associated with the Muldis D language but isn't part of the
spec itself, with the main focus on showing reams of Muldis D example code
or how-tos or comparisons with SQL etc.  A main reason to be separate is so
that examples can be updated and expanded at a natural pace without having
to increment the language spec version number in the process, and to keep
the actual spec distro slimmer.  When this distro is started,
its initial content can include updated versions of what was in archives/
of the spec distro, along with copies of static historical versions and
announcements etc.  Early Muldis D examples to write should focus on tasks
that are difficult to do in SQL that are easier in Muldis D.  For example
recursive operations (note, SQL has the term "Common Table Expressions" to
mean the WITH clause), such as something genealogy or a nested hierarchy of
locations with points of interest in them.  Also the examples in David
Fetter's FOSDEM 2009 talk (see
http://wiki.postgresql.org/images/c/c1/Trees_and_More_FOSDEM_2009.pdf )
would be good examples to translate to Muldis D.  Also implement the
common standby that Perl ORM docs like to use, about artist/song/album/etc,
and maybe look at the Songbird database format.  Or perhaps among the top
of the list for new examples should be a Muldis D implementation of Hugh
Darwen's course assignment "CS252 - Fundamentals of Relational Databases -
Module Assignment 2007" at the University of Warwick, described as "Your
task is to design a relational database to record information concerning
personal bank accounts: details about the customers holding these accounts
and details of individual payments of money into and out of these
accounts."  Maybe that actually will be the best first non-trivial example,
since it was designed with some strengths of D languages vs SQL in mind.
In general just the PTMD_STD dialect will be used for all examples, though
in some cases parallel examples in a HDMD_PerlN_STD dialect may be used.
Side note: Postgres 8.4 is apparently the first version of Pg to have CTE.
See also the entire database constraint set from the example database in
the book "Applied Mathematics for Database Professionals" (which SIRA_PRISE
is stated to enforce efficiently). Including stuff like "Every trainer
should be giving trainings in the location of his own department for at
least half of the total time that he is giving trainings." and "You can
only be assigned as a trainer for some course if either you have been
employed for over a year or else you have yourself attended another session
of that same course, and the trainer who gave that session that you
attended attends as a participant the training you give." (which the book
labeled the "pièce de résistance").
Note: Pg 8.5 as of Week-of2009Oct10 now has named argument syntax: "Support
use of function argument names to identify which actual arguments match
which function parameters.  The syntax uses AS, for example funcname(value
AS arg1, anothervalue AS arg2).  Pavel Stehule."

* Whatever else needs doing, such as, fixing bugs.
