1.3 File Organization
The source files for WB are written in the SCM dialect of Scheme:
- SCM configuration definitions.
- SCM code for WB-trees.
- wimpy POSIX interface to the disk. Replace this if you have a more
direct interface to the disk.
These files are translated into the C, C#, and Java targets by SCM
scripts named scm2c, scm2cs, and scm2java
respectively. The function and variable data types in the target
languages are determined by pattern-matching the first-element strings
in the associations scm2c.typ, scm2cs.typ, and
Files translated to C are put into the wb/ directory.
Files translated to Java are put into the wb/java/ directory.
Files translated to C# are concatenated with wb/csharp/Cssys.cs
and wb/csharp/SchlepRT.cs and written to wb/csharp/Wb.cs.
In the Makefile:
- Derived *.h files for C.
- Derived *.c files for C.
- Derived java/*.java files for Java.
- Single derived source file for C#.
WB comes with a C utility program for database files stored on disk.
— Program: wbcheck path
Checks the structure of the database named by path and reclaims
temporary trees to the freelist.
- documents the theory, data formats, and algorithms; the C and SCM
interfaces to WB-tree.
- documents changes to the WB.
- example program using WB-tree in SCM.
- The primary C include file for using the WB layer is is wbsys.h,
which includes several other files from the directory. wbsys.h
also defines WB's internal data types.
- Shared data and low-level C accessors.
- Shared data and low-level accessors for debugging in SCM.
- C code for the SCM interface to WB-trees.
- code for SCM interface when debugging in SCM.
- SCM code which translates SCM code into C.
- rules relating variable names to types in generated C.
- SCM code which translates SCM code into C#.
- rules relating variable names to types in generated C#.
- SCM code which translates SCM code into Java.
- rules relating variable names to types in generated Java.
- file for testing WB-tree system.
- more tests for WB-tree system.
- Unix makefile
- command script for compiling under VMS.
- loads all the SCM files for debugging.
- SCM code allowing WB to implement SLIB relational databases.
- SCM code allowing WB to implement SLIB relational databases with
numerical and lexicographic key collations.
- program for checking, repairing, and garbage collecting WB-tree
- SCM script for displaying low-level WB database associations.