Google
 

Trailing-Edge - PDP-10 Archives - tops10and20_integ_tools_v9_3-aug-86 - tools/crc/browse/lbr.rno
There are no other files named lbr.rno in the archive.
.SPACING 1
.TAB STOPS 8,16,24,32,40,48,56,64,72
^^
.ps 66,80
.no paging
.LEFT MARGIN 16
&L&B&R& &-& &a& &p&r&o&g&r&a&m& &t&o& &s&a&v&e& &s&p&a&c&e& &u&s&e&d& &b&y& &s&m&a&l&l& &f&i&l&e&s
.SKIP 2
.LEFT MARGIN 0
.INDENT 8
The LBR program was produced in an effort to save the considerable
quantities of disk space that are wasted in TOPS-20 by small one or two page
files. Such files, especially files containing only a few hundred characters,
consume an amount of disk space out of all proportion to their real size. What
is more, they often contain such things as command files for the EXEC or for
a program such as a statistical package, which are only needed infrequently,
and clutter up a directory listing at other times. Each of these files actually
uses at least two pages of disk space - one in the users directory (or 2 or 3)
and one from system overhead (incurred with all files). The LBR program will
compress groups of these files into one file, while still allowing them to be
retrieved or updated individually. Thus, only one page of overhead is used for
the entire collection (instead of one page per file) and no space is wasted
using an entire page for each file.
.SKIP 1
.LEFT MARGIN 0
.INDENT 9
LBR has been tried out on a number of
likely looking directories at our site, and has proved to save up to 90% of the
space consumed by a set of little-used command files, for instance, and
frequently produces space savings of the order of 50% to 60%. These are worth
having, both for the individual who now has more space to play with in his
directory, and for the system, which now has a smaller directory to search, and
more space freed from the system overhead space of index blocks, etc. Although
the gains seen by each user are unlikely to be impressive ( of the order of
10s or perhaps one or two hundred pages) they accumulate very quickly over the
whole system to free a couple of thousand pages.
.SKIP 1
.LEFT MARGIN 0
.INDENT 16
Usually, you will want to use LBR to collect files, such as
command files, batch control files, data files or the like, which you have
a number of (say at least 5 or 10) and most of which you do not need at any one
time. LBR will make a "universal library" with the files - a special format
file, rather like a library produced by MAKLIB, which contains all the files
within it, plus  a sort of directory to allow you to find individual files.
Having made the library, you can add new files to it, delete files from within
it, type them, copy them out to temporary files for use by you or another
program, and also update them in place with new versions of them which you
have created. Meanwhile, the files may only be taking up 10% of the space they
consumed while you had them all as separate files.
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
All the commands in LBR follow the standard for TOPS-20 in allowing you
to use question mark and escape characters freely to complete commands. LBR has
extensive HELP, with individual help messages for each command, rather than one 
enormous help message describing everything. You can use wildcards (* and % 
characters) in filenames wherever necessary and meaningful. Most of the commands
that have a parallel with real files have the same name. Thus, you use TYPE to
type a file contained in a library, DIRECTORY to get a listing of library files,
and COPY to copy files from the library to normal disk files. The new commands
are REPLACE and UPDATE, to place new copies of files in the library when an
old copy is already there, and INSERT, to place a totally new file into the
library.
.SKIP 1
.LEFT MARGIN 8
EXAMPLE
.SKIP 1
.LEFT MARGIN 0
.note
Note that LBR refers to files contained in the library as "modules"
rather than as "files". This avoids some semantic confusion in certain areas,
and follows usual practice for referring to the contents of a library.
.end note
.SKIP 1

.BREAK
.LEFT MARGIN 0
.no fill
@LBR			!First we run the program
LBR>CREATE (library name) MYCOMMANDS.LBR
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
Here the user has given a commands to create a new library for his
input files to GLIM, probably containing GLIM command sequences.
.SKIP 1
.LEFT MARGIN 0
LBR>INSERT (files) *.GLM
A102.GLM [OK]
A403.GLM [OK]
EXACT.GLM [OK]
.LEFT MARGIN 0
_.
_.
_.
ZAP.GLM [OK]
.SKIP 1
.LEFT MARGIN 0
.fill
.INDENT 8
The user has now decided to place all his or her GLIN files in
the library, and having done so, could safely delete them once they exited
LBR, as they are no longer needed in his or her directory. If it was necessary
to get a listing of the library, they would type
.SKIP 1
.LEFT MARGIN 0
.no fill
LBR>DIRECTORY (of modules)
.SKIP 1
.LEFT MARGIN 8
Listing of library MYCOMMANDS.LBR ON 21-JUL-82 ....
.SKIP 1
.LEFT MARGIN 0
Number of modules: 28
.LEFT MARGIN 0
_...
_...
.SKIP 1

.BREAK
.LEFT MARGIN 0
A102					20-Jul-82 11:34

.BREAK
.LEFT MARGIN 0
A403					20=Jul-82 11:34
.LEFT MARGIN 0
_.
_.
_.

.BREAK
.LEFT MARGIN 0
ZAP					20-Jul-82 11:36
LBR>
.SKIP 1
.LEFT MARGIN 0
.INDENT 16
A listing of the library is produced, with the insert
date and time of each file.
.SKIP 1
.LEFT MARGIN 0
LBR>COPY ZAP (to) ZAP.GLM
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
.fill
This gets a copy of ZAP into an ordinary file for use by GLIM.
The file remains in the library, and the copy being extracted is temporary,
and will be expunged when the user logs out.
.SKIP 2
.LEFT MARGIN 16
&C&H&A&R&A&C&T&E&R&I&S&T&I&C&S& &a&n&d& &R&E&S&T&R&I&C&T&I&O&N&S
.SKIP 2
.LEFT MARGIN 0
.INDENT 8
LBR assumes that all files in a library have the same file type.
Thus, neither the byte size nor the file extension is remembered when the file
goes into the library. It is expected that you would one library for data files,
one for command files, etc. Files in a library do not have to be text files.
They can be binary, of any description. You can specify the byte size and
extension to be used when you create the library. If you do not, it is assumed
that the library is to be used to contain text files, and the extension for 
all files in the library is set up by the first file inserted.
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
LBR takes great pains to prevent your library being corrupted. While
writing to the library, it does not allow you to control-c the program. If you
type control-c, it takes effect as soon as LBR has placed the library in a 
consistent state, so that it can be used again. If the system crashes while a
library is being updated, LBR will usually be able to read the library, but
will not be able to add to it without risk of corrupting it. It will be
able to detect this, and will warn you that you shold rebuild the library.
Either restore it from a system dump, or extract all files and then create a
new library and insert them all again.
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
To prevent some problems, LBR will expunge your directory automatically
whenever it runs out of space writing to a library. It informs you when it does
this. You can prevent this happening if you wish, in which case the program
pauses when there is no more disk space, and asks you to delete and expunge
some files, and then continue it. If you do not allow the program to continue,
the library may become corrupted.
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
Empty space accumulates eventually in a library file. This is removed
by SQUEEZing the library, a process that creates a new generation of the library
with no empty space in it. This will be performed automatically by LBR if it
detects that the library is more than 10% empty space, although you may
prevent this occurring if you wish.
.SKIP 1
.LEFT MARGIN 0
.INDENT 8
Output files produced by LBR are temporary, that is they are files which
are expunged by TOPS-20 when you log out. It is assumed that when you extract a 
file from a library, you do not want to keep it outside the library for long.
You can prevent files becoming temporary with the SET NO TEMPORARY command
to LBR.
.SKIP 1
.LEFT MARGIN 0
.INDENT 16
All questions and suggestions regarding LBR should be directed
to KEVIN via the computer mailing system.
.SKIP 1
.LEFT MARGIN 0