gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] make-databases


From: root
Subject: [Gcl-devel] make-databases
Date: Thu, 30 Oct 2003 22:43:41 -0500

Camm,

First, move to where the .NRLIB files are.
The databases are built using the *.NRLIB/info files.

  cd int/algebra

Then start interpsys and give it the lisp command:

  )lisp (make-databases "" nil) | (yourpath)/obj/bin/interpsys

I'm still pondering your "split" request for database file loads.

In more detail: 

The make-databases function walks across the NRLIB/info files 
extracting information for documentation (e.g. the browse.daase)
or other uses. So, in the case of browse.daase, it extracts
documentation strings, compresses them (see src/interp/daase.lisp),
and writes them out into a random access file format. 

The random access file format has 3 parts: 

an initial pair, 
a sequence of s-expressions, 
a list of lists. 

The list of lists is the index. To look something up in one of these
files you read the first number (N), seek N bytes into the file, and
do a (read). Read will return the list of lists.  For each domain
there is a list. 

Each list consists of indexes into the file (any non-negative number)
or immediate data (a symbol, a string, or a negative number). If the
list item is a number (M) you start from the top of the file, seek M
bytes into the file and call (uncompress (read)).

I'm sure there are more details I missed but the src/interp/daase.lisp
has the actual code.

The split request is going to be a challenge. I think I need to figure
out how to dynamically add one file to the databases. Once I can do
this I can split the database build into any convenient step size.

Tim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]