From miked@nag.co.ukWed Oct 18 18:52:37 1995
Date: Wed, 18 Oct 1995 14:23:18 +0000 (BST)
From: Mike Dewar <miked@nag.co.uk>
To: acn1 <acn1%cam.ac.uk@maths.bath.ac.uk>
Subject: Interface for dynamic opening and closing of libraries
Arthur:
I've discussed the specification of the "dynamic libraries" interface with
Barry and this is what we think we need. For a user's own code, we will
always know the full pathname of the library it is in, so we can load the
module explicitly.
1. A function that loads a particular module from a particular library, e.g.
(load-module <module> <pathname>)
The library need not be open for input. You might wish to have separate
open-library, load-module, and close-library operations if that is more
efficient.
2. A function that opens a library for output, e.g.
(open-library <pathname>)
The function need not be responsible for checking if the library is open
already.
3. A function that reads a lisp source file, translates it into byte codes,
and writes the results into a named library, e.g.
(fasl-out <filename> <library>)
This could either:
(a) Overwrite an existing module with the same name (our preferred option),
or
(b) replace the entire library if it already exists.
4. A function that closes an open library and, if option 3a above is
implemented, does all the necessary tidying-up, compaction etc, e.g.
(close-library <pathname>)
5. Facilities for setting the library search path from within Lisp:
(a) deleting a library from the search path;
(b) adding a new library to the front of the search path;
(c) adding a new library to the end of the search path.
Let me know what you think of this. I had trouble sending email to you
yesterday and today, so please let me know when/if this message arrives!
Regards, Mike.
--
---------------------------------------------------------------------------
Mike Dewar email: miked@nag.co.uk
AXIOM System Coordinator phone: (+44) 1865 511245
NAG Ltd. fax: (+44) 1865 311205
Wilkinson House, Jordan Hill Rd, Oxford, OX2 8DR
---------------------------------------------------------------------------