Coronita

Announcement
htld


Selene

Announcement


Malete

DownLoad
Status
OverView
Usage
Structures
Protocol
Query
MultiProcess


formats

FileFormats
character sets
... and converting
CDS/ISIS
IIF/ISO2709


misc

changes from earlier versions
tag numbers


drafts (partly obsolete)

MetaData
object model
Tcl
Diff09
  • the core API is fully decapsulated (i.e. entirely open, fast, flexible and delicate) while the patchwork API is as encapsulated as possible providing only a single dispatcher function. All functions of core are in the public interface core.h
  • shared library support is dropped
    because they are not needed (thus no -fPIC, no -init...)
  • we don't build libraries at all,
    rather every module creating a binary compiles all objects from ../core/*.c by including ../core/core.mk and so on so you always have up-to-date objects compiled with the proper flags
  • the semi-modifiable type Rec is replaced by the immutable Fld array (sometimes called Rec) and the fully dynamic List; standard embedded records are modelled as valid Fld arrays. The List itself resembles much a masterfile/pointerfile pair, especially the field data buffer is strictly append only.
  • the List is the universal data type, serving also as general purpose string buffer and output stream (backed by some flusher function). Thus 98% of mallocs should ask for list blocks, which can be managed efficiently in free block lists for some powers of 2 starting from 8K.
  • options are usually packed in one field instead of several. There is a getopt-style function vGet
  • error code/loglevel handling is simplified using 0..-15
  • the system file interface is used for seekable disk files only, not for stream-like ressources like sockets. It's therefore much simpler and the file type does no longer carry various flags, but rather is a true system file descriptor.
  • the former "Session" now is an Env carrying only the generally needed attributes. Only the server may want to bind environments to sessions or threads and therefore should do its own maintenance as required. All other applications will use the single constant Env model.
  • the db supports text masterfiles only.
  • the L-B-Tree index is much unchanged, but access is unified to a single xLoop function using a callback for every key with all its values at once (unless they span blocks). Compiling the values into lists of terms or hits withj or w/o position and applying AND,OR,NEAR all is left to the callback, which will be implemented in the patchwork's term, search and query handlers.