Software and data version confusion

The bad news is: there are a few versions of TclKit around and several versions of WiKit, scripted documents, the MetaKit core, and Python/Tcl wrappers.

The worst news is: it's a rough ride, and it will remain so for a while.

The good news is: this situation is improving right now. The 2.3.1 alpha release can read older file formats (both MK itself and scripted docs).

The best news is: you don't have to worry about your datafiles, neither pure MK datasets nor scripted documents. MK will open and convert it all.

First an overview of the exact situation today:

What's this "VFS" thing?

VFS stands for Virtual File System, and was designed by Matt Newman <[email protected]> to fully encapsulate Tcl's file I/O and allow various drivers to implement file system functionality. Matt has written drivers for ZIP archives (for read-only use) and for MetaKit (fully transacted).

The model of VFS is a file system with mount points. A new file system can be mounted in any position, each such file system will switch to whatever driver has been defined for it. Tclkit itself now uses the *executable* as a mount point for an appended MK file system, containing all of the usual runtime script support needed for a full-scale Tcl/Tk system. That is how TclKit can be a single file yet act like a complete installation of Tcl/Tk - including compiled extensions (this requires a bit of trickery).

VFS is growing steadily, to the point that the current implementation included in recent TclKit releases is able to almost complete fool Tcl scripts into thinking they are accessing a file system, while in reality they are reading/writing a MetaKit database. VFS continues to evolve. It is not tied to TclKit or MetaKit, it just works really well with them.

Apart from being single-file, and eminently suitable for scripted docs, the current VFS driver for MK supports transparent compression of "files".

Scripted documents, as presented in Feb 2000 at the Tcl2k conference

At the time of the conference, all public versions of Mk4tcl, TclKit, and scripted documents such as WiKit, were non-VFS aware.

Before VFS came about, scripted documents used a simpler, but far more cumbersome way to store scripts and other "files" in a MK database. The design was essentially a table with filename, date, and contents fields.

This is still used for most of today's scripted documents (June 2000).

Eventually, all scripted documents will benefit from being converted to the new VFS-aware format. The big gain in Tcl, is that you can simply open, read, glob, delete, and otherwise manage "files". No API, no new concepts.

But it will happen in a few stages. First, MK 2.3 needs to become stable enough to be used for serious work (it's getting there). There is a new page on the MetaKit wiki, describing how to move an old MK-2.0 format scripted doc to the new 2.3 format (see Converting old-style scripted docs). Keep in mind that this is still a non-VFS-aware structure. The second step is to work out all details of VFS-based scripted documents. Several new-style scripted documents have already been created, and they seem to work fine (see https://www.equi4.com/previews/ for details).

Stay tuned...

-jcw


October 2000 - I've added a page on how the new VFS-style about TclKit and scripted document startup ...


Updated 17 Oct 2000, 18:38 GMT  -  Edit Software and data version confusion
Search - Recent Changes - About WiKit - Go to The MetaKit Wiki - Help