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

FILES as a file package command



I wasn't going to document this before the manual went out, to save you some
trouble and becasue it wasn't very well defined. I have since been using it for a
while and think it is clean enough to let others use it; however I think it is still
reasonable to leave this out of the manual and just distribute the documentation
informally. 

There is a new file package command FILES, which specifies that certain files
are to be loaded with the given file is loaded.

(FILES FOO FUM) dumps on the file

(LOAD? (QUOTE FOO.COM) LDFLG)
(LOAD? (QUOTE FUM.COM) LDFLG)

The elements of the FILES command are the (namefield) of the files to load.
There are actually several other ways to load in files; the FILES? command
interprets LISTP elements of the commands as a series of tokens which change its
state. Those tokens can be:

to change aspects of the file loaded:
(FROM directory)    -- pack the given directory onto the beginning of the
		file, e.g. (FILES (FROM LISPUSERS) CJSYS)
(SOURCE)	-- load source version rather than compiled
(COMPILED)	-- load the compiled version (default)

to change the loading function:
(LOADCOMP)	-- use LOADCOMP? rather than LOAD?; automatically
			implies SOURCE
(LOAD)		-- use LOAD? (default)
(LOADFROM)	-- use LOADFROM 

to change the value of LDFLG in the call:
(SYSLOAD) -- use (QUOTE SYSLOAD) as the value of LDFLG
(PROP)
(ALLPROP) 

These tokens can actually be joined together in a single list, e.g. an actual
command in the FTP package is:

(DECLARE: EVAL@COMPILE DONTCOPY
	(FILES (LOADCOMP) NET (SYSLOAD FROM LISPUSERS) CJSYS))


Future extensions might include: allowing a list of directories in the FROM
specification; changing the implementation of the command so that the
COMPILE.EXT used when loading compiled files is determined at load time rather
than at makefile time.

Larry