Metakit 2.3.3 final release candidate

Sources, and binaries for Linux, Macintosh, and Windows are at:

    https://www.equi4.com/pub/mk/

The binaries include libs for C++, and extensions for Python and Tcl.

A detailed change log is part of the source archive, it's also at:

    https://www.equi4.com/metakit/CHANGES

The most recent entries are:

2000-11-03 MK 2.3.3 First final release candidate

    Yes, there will probably be a second one as well...

2000-10-31 Improved error handling

    More logic added to catch errors in flush and streams.
    This affects the C++ core as well as Mk4py and Mk4tcl.
    API of c4_Stream::Write changed to return success flag.

2000-10-30 Added autocommit call to Mk4tcl

    To better support VFS, Mk4tcl now has a new command
    "mk::file autocommit <db>" to force commit on close.

2000-10-26 Changes to compile with Borland C++

    Minor tweaks to compile with Borland C++ Builder 4.0,
    which does not support "long long".  A new KitViewer
    has been built (new code to replace c4_View::Describe).

2000-10-03 Fixes for Alpha Unix

    Moved _item in column.h up to fix alignment sensitivity.
    Config.h did not get SIZE_LONG right on Alpha Unix (0?).

2000-09-27 Contributed fixes and Python 2.0b2

    Adjusted makefile to build with Python 2.0b2 release.
    Source code tweaks to avoid DEC CXX 5.7 compiler errors.
    Add no-inherit flags for Win32 to not leak file handles.

2000-08-27 Allow derived row deletes in Mk4py

    Added code to PyView.cpp to handle deletes (and slice
    deletes) in derived views, see "examples/derived.py".

2000-07-30 Major auto-convert 1.8.6 file bug

    Bug in on-the-fly conversion of bytes properties ('B')
    in pre-2.0 datafiles (i.e. 1.8.6 and earlier) resolved.
    Unfortunately, this bug can not be 100% unambiguously
    fixed.  The new code *will* properly detect most cases,
    and convert both 1.8.6 and 2.0 datafiles on the fly, but
    especially for views with only a few rows and at most a
    few bytes of data per row - the conversion *might* fail.
    In this case, MK will have to be compiled with a define
    to force it to either assume all old datafiles are 1.8.6
    (-Dq4_OLD_IS_PRE_V2), or to assume that they are always
    2.0 (-Dq4_OLD_IS_ALWAYS_V2).  If you are currently using
    MK 1.8.6, then you should *skip* the update to 2.01, and
    consider updating to 2.3.x.  This way you never have any
    2.0 files around, and can force all your code to handle
    1.8.6 files properly (by using "-Dq4_OLD_IS_PRE_V2").
    See src/format.cpp, c4_FormatB::OldDefine for details.
    This bug *only* applies to bytes properties in pre-2.0
    data files.  Conversion of 2.0x files is unaffected.

2000-07-25 Fixed new self-referential views

    The new recursive / self-referential view definition
    style has been fixed, e.g. "view[data:S,self[^]]" will
    now let you store a tree of arbitrary depth, with each
    'self' subview having data and self properties.  See the
    demo in "examples/selfref.py" to see how this all works.

2000-07-22 Fixed bug in double restructuring

    Solved a very long-standing bug in restructuring, which
    caused incorrect (non-zero, small) default values when a
    c4_DoubleProp was added to a view which already had rows.

2000-07-18 Added remapwith and pair to Mk4py

    Exposed C++'s c4_View::RemapWith as v1.remapwith(v2), and
    c4_View::Pair as v1.pair(v2) in the Mk4py Python binding.
    Added pair.py, remap.py, and wrap.py in "examples/" dir.

2000-07-12 Added metakit.py wrapper

    Added "metakit.py" script to wrap Mk4py, including a new
    metakit.dump() to pretty-print views.  More utility code
    will be added over time.  The preferred way to use Metakit
    from Python is now "import metakit".

2000-07-06 Conversion fix, warning cleanup

    Fixed on-the fly conversion of old datafiles.  The free
    space was not managed properly - changed to never touch
    any data inside the file during conversion.
    Some source code change to get the compile through gcc
    flags "-fguiding-decls -Wall -pedantic -Wno-unused".
    The only remaining complaint is about using "long long".

2000-07-04 MkSQL subtree, "indexed" mapped viewer

    Added the sql and mksql subtrees to the distribution, with
    Gordon McMillan's MkSQL engine, written in Python.  The
    "isql.py" script is a simple interactive shell around it.
    Started work on a new viewer which maintains a persistent
    index (as a one-int-prop permutation), see src/remap.cpp.

2000-07-03 Mk4tcl fixes

    Fixed view rename problem and "delete end" (Matt Newman).
    Adjusted the tests in tcl/test/mk5object.tcl accordingly.

2000-06-30 Tequila fixes

    Close fix and failure handler (Steve Landers).

2000-06-29 MK 2.3.2 First beta release